Executable code defines runtime behavior. This document formally defines:
- The structural baseline of version series 2.x.
- The bounded evolution permitted within 2.x.
JSON Flow SHALL operate as:
- Deterministic.
- Single-file scoped.
- Graph viewer only.
The following layout rules are mandatory:
- Layout execution SHALL occur exclusively inside a Web Worker.
- The UI thread SHALL NOT execute any layout logic.
- The Worker SHALL use
entitree-flexas the layout engine when applicable. LARGE_GRAPH_THRESHOLDSHALL equal 2000.- If node count ≤ 2000 →
entitree-flexSHALL be used. - If node count > 2000 → linear breadth-first layout SHALL be used.
- Identical input SHALL produce identical layout output.
- The Worker SHALL be stateless between requests.
- No layout fallback mechanism SHALL exist.
- No incremental layout mechanism SHALL exist.
- Layout results SHALL be committed atomically.
Two identity domains SHALL exist and SHALL remain disjoint:
GRAPH_ROOT_ID- RFC 6901 JSON Pointer node IDs
The following identity constraints SHALL apply:
- Node IDs SHALL begin with
/. buildPointer()SHALL be the sole constructor for pointers.- Manual pointer concatenation SHALL NOT occur.
GRAPH_ROOT_IDSHALL exist outside pointer space.- Identity SHALL be deterministic for identical document content.
- Identity SHALL NOT mutate during interaction.
The following scope constraints SHALL apply:
- Graph mode SHALL be single-file only.
- No cross-file graph model SHALL exist.
- No cross-file synchronization SHALL exist.
- No structural filtering SHALL occur inside the Worker.
- No persistent Worker state SHALL exist.
- Worker messages SHALL include correlation identifiers.
- Stale Worker responses SHALL be ignored.
- File switching SHALL invalidate prior requests safely.
The following Live Sync rules SHALL apply:
-
Live Sync SHALL be disabled by default.
-
Live Sync SHALL require explicit activation.
-
Live Sync SHALL be single-file only.
-
Only the following formats SHALL be whitelisted:
- json
- jsonc
- json5
- yaml
- yml
-
No filename heuristics SHALL be used.
-
The Worker SHALL NOT participate in selection mapping.
-
Identity rules SHALL remain unchanged.
The 2.6.x baseline SHALL be considered mechanically complete. Version series 2.x SHALL NOT include stabilization-only releases. Version series 2.x SHALL NOT include hardening-only releases.
The following properties SHALL remain unchanged throughout the entire 2.x series:
- Layout authority SHALL remain exclusively in the Worker.
- Identity construction rules SHALL remain unchanged.
- Adaptive threshold behavior SHALL remain unchanged.
- Worker protocol shape SHALL remain unchanged.
- Single-file scope SHALL remain unchanged.
- No additional layout engines SHALL be introduced.
- No incremental layout SHALL be introduced.
- No structural pruning SHALL occur inside the Worker.
- No persistent Worker cache SHALL be introduced.
- No cross-file behavior SHALL be introduced.
Minor versions SHALL introduce observable behavior changes. Such changes SHALL remain within the existing structure.
Minor versions SHALL NOT modify:
- Layout authority.
- Identity rules.
- Threshold behavior.
- Protocol shape.
- Single-file scope.
Version 2.7.0 provides the following behaviors:
- Refined search highlight clarity.
- Clear visual distinction between selection and search matches.
- Indication of matches located inside collapsed subtrees.
- Improved keyboard navigation.
- Optional, non-destructive UI-level filtering.
The following invariants apply to filtering:
- Filtering SHALL NOT mutate graph data.
- Filtering SHALL NOT modify Worker output.
- Filtering SHALL NOT change layout ordering.
- Filtering SHALL NOT alter identity values.
- No layout recalculation SHALL occur outside the existing pipeline.
- No structural pruning SHALL occur inside the Worker.
- Identity SHALL NOT mutate.
- No new persistent state domains SHALL be introduced.
- No multi-file behavior SHALL be introduced.
Version 2.8.0 SHALL introduce controlled editing under the following rules:
- Editing SHALL be mediated exclusively through the Extension Host.
- Changes SHALL be applied using
WorkspaceEdit. - Document version validation SHALL be required.
The following actions SHALL be supported:
- Add node.
- Remove node.
- Update value.
- Rename key.
- Deterministic sibling reordering.
Post-mutation processing SHALL follow these rules:
- After mutation, the document SHALL be fully reprocessed through the existing pipeline.
- No incremental layout SHALL be introduced.
- The Worker SHALL remain uninvolved in mutation logic.
buildPointer()SHALL remain the sole pointer constructor.- No new identity domains SHALL be introduced.
- No cross-file editing SHALL be allowed.
- No layout algorithm modification SHALL occur.
- No adaptive threshold modification SHALL occur.
- No persistent Worker state SHALL be introduced.
- No protocol redesign SHALL occur.
Version 2.9.0 SHALL introduce an isolated Webview localization mechanism under the following rules:
- Localization within the Webview SHALL be independent.
vscode.l10nSHALL NOT be imported inside the Webview.- No shared translation schema SHALL exist.
- No runtime bridge SHALL exist between localization systems.
- A dictionary-based mapping mechanism SHALL be used.
- Fallback behavior SHALL be supported.
- The Worker SHALL NOT be involved in localization.
- No protocol changes SHALL occur.
- At least one additional functional locale SHALL be provided.
- No host ↔ webview localization contract SHALL exist.
- No runtime translation engines SHALL be introduced.
- No dynamic remote translation loading SHALL occur.
- No structural changes SHALL occur to layout.
- No structural changes SHALL occur to identity.
- No heavy i18n frameworks SHALL be introduced.