diff --git a/.github/workflows/correctness.yml b/.github/workflows/correctness.yml index 4626687..8590600 100644 --- a/.github/workflows/correctness.yml +++ b/.github/workflows/correctness.yml @@ -64,6 +64,14 @@ jobs: echo "Runtime files contain an external URL." exit 1 fi + if grep -REn '\bfetch\(|new XMLHttpRequest|new WebSocket|navigator\.sendBeacon' index.html src dist; then + echo "Runtime files contain a network submission API." + exit 1 + fi + if grep -REn 'localStorage' src --include=*.ts | grep -v 'src/workspace.ts'; then + echo "Browser storage is only touched by the opt-in persistence module (src/workspace.ts)." + exit 1 + fi - name: Start static test server shell: bash diff --git a/README.md b/README.md index b942cfe..382f478 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,8 @@ For the first stable release, see [RELEASE_NOTE_v1.4.0.md](docs/RELEASE_NOTE_v1.4.0.md). For the v1.5.0 release, see [RELEASE_NOTE_v1.5.0.md](docs/RELEASE_NOTE_v1.5.0.md). For the v1.6.0 release, see [RELEASE_NOTE_v1.6.0.md](docs/RELEASE_NOTE_v1.6.0.md). For the v1.7.0 release, see -[RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). +[RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). For the v1.8.0 release, see +[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). ## Start here @@ -66,7 +67,7 @@ For the first stable release, see ## 60-second quick start -1. Download the `v1.7.0` archive from +1. Download the `v1.8.0` archive from [GitHub Releases](https://github.com/ikelaiah/ProcFlow/releases) or clone this repository. 2. Extract the complete archive. Keep `index.html`, `styles.css`, `dist/`, and @@ -133,7 +134,7 @@ statements. analysis to another engineer. ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on -the roadmap; for v1.7.0, paste or export the dataset SQL itself. +the roadmap; for v1.8.0, paste or export the dataset SQL itself. ## What ProcFlow can show @@ -214,7 +215,7 @@ than silently disappearing from the diagram. ## Supported SQL -ProcFlow v1.7.0 recognises: +ProcFlow v1.8.0 recognises: - Microsoft T-SQL - IBM DB2 SQL PL @@ -225,7 +226,7 @@ Supported inputs include procedures, functions, triggers, views, plain SQL statements, report dataset queries, and multi-object scripts where those object types apply to the selected dialect. -Dialect-specific v1.7.0 coverage includes: +Dialect-specific v1.8.0 coverage includes: - **T-SQL:** mixed one-line and block `IF`/`WHILE` control flow (single statement and `BEGIN`/`END` bodies in one AST), labelled `GOTO` and labels @@ -260,13 +261,40 @@ low-confidence warning. ## Importing SQL **Import SQL files** accepts multiple `.sql`, `.ddl`, and `.txt` files. Files -are read into memory by the current browser tab; they are not uploaded or -persisted. +are read into memory by the current browser tab; they are not uploaded and are +not persisted automatically. Multi-object scripts are split into selectable objects. If the split cannot be made confidently, ProcFlow keeps the input as one script and reports the uncertainty. +## Workspace + +The **Workspace** menu keeps your work usable across sessions, entirely on your +terms: + +- **Save to this browser** persists the current workspace (files plus analysis + options) to this browser's `localStorage`. This is strictly opt-in — nothing + is written or restored on load. +- **Restore saved workspace** replays the saved files and options into an + identical analysis. +- **Export workspace file** / **Import workspace file** transfer a workspace as + portable JSON. +- **Forget saved workspace** removes the local copy explicitly. + +Saved workspaces are versioned (so future releases can migrate them) and, if +corrupt or unreadable, are recovered by starting fresh rather than crashing. + +## Dependency filtering + +In **Object dependencies** scope, the **Filter dependencies** menu offers +presentation-only filters over the estate diagram: show/hide **Reads**, +**Writes**, and **Calls** edges; show/hide **External objects** and **Temp +tables** nodes; and a **Focus** box that keeps an object and its direct +neighbours. Filtering derives a filtered view at render time and never changes +the underlying analysis graph, so confidence, coverage, diagnostics, and the +reported stats stay exactly as analysed. + ## Exporting and sharing The **Export** menu provides: @@ -291,7 +319,7 @@ endorsed by draw.io. ### Quick answers -| Question | ProcFlow v1.7.0 behavior | +| Question | ProcFlow v1.8.0 behavior | |---|---| | Is SQL uploaded? | No. Analysis and rendering happen in the browser tab. | | Does it connect to a database? | No. There is no driver, connection string, or query execution. | @@ -299,7 +327,8 @@ endorsed by draw.io. | Is there analytics or telemetry? | No. | | Is internet access required? | No for local or internally hosted use. | | Are imported files uploaded? | No. The browser File API reads them into the current tab. | -| Is SQL retained after closing the tab? | No. ProcFlow does not use cookies, `localStorage`, `sessionStorage`, or IndexedDB. | +| Is SQL retained after closing the tab? | No by default. ProcFlow does not use cookies, `sessionStorage`, or IndexedDB, and does not write to `localStorage` on load. A workspace is kept across sessions only when you explicitly choose **Save to this browser** in the Workspace menu. | +| Is a saved workspace stored on this computer? | Only if you choose **Save to this browser**. It is written to this browser's `localStorage`, is local-only, versioned, exportable to a JSON file, and removed by **Forget saved workspace** or by clearing browser site data. | | Does ProcFlow write to the clipboard automatically? | No. Clipboard writes follow an explicit copy action. | | Are exports local? | Yes. SVG and draw.io files are generated in memory and downloaded by the browser. | | Does it call an AI service? | No. It can copy a narration prompt but never submits it. | @@ -316,6 +345,7 @@ dist/src/dialects.js dist/src/lineage.js dist/src/ir.js dist/src/exporters.js +dist/src/workspace.js dist/src/app.js vendor/mermaid/mermaid.min.js ``` @@ -325,7 +355,13 @@ network-submission code. The only bundled third-party runtime is the pinned Mermaid 10.9.1 renderer. Its MIT licence is stored at `vendor/mermaid/LICENSE`. -The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.7.0 is: +The opt-in persistence module (`dist/src/workspace.js`) is the only runtime +that touches browser storage, and it does so only through explicit +**Workspace** menu actions (Save / Restore / Forget) — never on load. Its +import/export uses the browser download API, which also requires an explicit +action. + +The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.8.0 is: ```text 61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6 @@ -336,7 +372,7 @@ so the release checksum remains reproducible across operating systems. ### Guidance for security review -1. Review and pin the `v1.7.0` tag or its exact commit. +1. Review and pin the `v1.8.0` tag or its exact commit. 2. Verify the vendored Mermaid checksum. 3. Review the runtime files listed above. 4. Open the reviewed files locally or serve them from an approved internal @@ -374,7 +410,7 @@ and contains no automatic data-submission path. - Some vendor-specific table expressions might not be detected. - Temporary-table data flow is shown within one object; cross-object temp flow, synonym, linked-server, and cross-database resolution is lightweight. -- SSRS/RDL files are not imported in v1.7.0. +- SSRS/RDL files are not imported in v1.8.0. - draw.io layout is deterministic for the documented graph classes at documented size limits; very large or non-planar graphs are laid out without overlapping boxes and reported honestly rather than claimed crossing-free. @@ -442,27 +478,32 @@ Then open: - `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime tests -The v1.7.0 baseline is: +The v1.8.0 baseline is: -- 206 golden and boundary assertions +- 207 golden and boundary assertions - 400 deterministic mutation cases -- 16 browser interaction tests +- 20 browser interaction tests - 20 export-parity checks (10 fixtures × TD + LR), 11 layout-budget fixtures, and 100 % export-traceability on the export fixtures +- 13 workspace-persistence and dependency-filtering fixtures (save→reload + identity, schema migration, corrupt recovery, explicit clear, non-mutating + filters) Fixture-corpus accuracy metrics (attribution, unresolved-token, tail-unconsumed, fallback, opaque-dynamic, semantic-edge coverage, provenance, -region-diagnostic-to-span, export-parity, export-traceability, and -layout-budget ratios) are published from the checked-in golden -corpus in [docs/metrics-v1.7.0.json](docs/metrics-v1.7.0.json). Generation is +region-diagnostic-to-span, export-parity, export-traceability, layout-budget, +and workspace pass-rate ratios) are published from the checked-in golden +corpus in [docs/metrics-v1.8.0.json](docs/metrics-v1.8.0.json). Generation is deterministic and fixture-only — no user inputs or runtime telemetry are collected — and CI refuses to merge when the snapshot is stale. Regenerate with `npm run metrics:write`. GitHub Actions installs dependencies, type-checks, builds, verifies generated -files, runs the local-file smoke test, checks that the runtime remains -local-only, verifies the metric snapshot, and runs all three served browser -suites on every push and pull request. +files, runs the local-file smoke test (including the opt-in workspace +assertion), checks that the runtime remains local-only (no external URLs or +network APIs, and browser storage confined to the opt-in persistence module), +verifies the metric snapshot, and runs all three served browser suites on every +push and pull request. ### Project structure @@ -488,6 +529,7 @@ docs/ ├── PR_NOTE_1.5.0.md ├── PR_NOTE_1.6.0.md ├── PR_NOTE_1.7.0.md +├── PR_NOTE_1.8.0.md ├── RELEASE_NOTE_1.1.0.md ├── RELEASE_NOTE_1.2.0.md ├── RELEASE_NOTE_1.3.0.md @@ -499,7 +541,8 @@ docs/ ├── RELEASE_NOTE_v1.5.0.md ├── RELEASE_NOTE_v1.6.0.md ├── RELEASE_NOTE_v1.7.0.md -└── metrics-v1.7.0.json # deterministic fixture-only accuracy metrics snapshot +├── RELEASE_NOTE_v1.8.0.md +└── metrics-v1.8.0.json # deterministic fixture-only accuracy metrics snapshot examples/ ├── dbo.v110_demo.sql # per-release outcome demos ├── dbo.v120_demo.sql @@ -507,7 +550,8 @@ examples/ ├── dbo.v140_demo.sql ├── dbo.v150_demo.sql ├── dbo.v160_demo.sql -└── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo +├── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo +└── dbo.v180_demo.sql # v1.8.0: usable local workspace demo scripts/ ├── file-smoke.mjs # dependency-free local-file release smoke test └── metrics.mjs # generate/verify the fixture-corpus metric snapshot @@ -518,6 +562,7 @@ src/ ├── lineage.ts # CTE and query dependency extraction ├── ir.ts # graphs, diagnostics, confidence, and estate analysis ├── exporters.ts # Mermaid, draw.io, and narration output +├── workspace.ts # opt-in persistence + presentation-only dependency filtering └── app.ts # browser UI and workspace interaction dist/ # generated JavaScript and source maps ├── src/ @@ -531,6 +576,7 @@ tests/ ├── tsql-fixtures.ts ├── boundary.ts ├── parity.ts +├── workspace.ts ├── tests.ts ├── fuzz.ts ├── ui-tests.ts @@ -569,12 +615,13 @@ Then verify: 3. Generated `dist/` files match their TypeScript sources. 4. The Mermaid SHA-256 matches the value in this README and the workflow. 5. `npm run metrics` reports the metric snapshot is current. -6. `RELEASE_NOTE_v1.7.0.md` matches the final tag contents. -7. The complete archive opens locally with `index.html`. -8. The tag is named `v1.7.0`. +6. `RELEASE_NOTE_v1.8.0.md` matches the final tag contents. +7. The complete archive opens locally with `index.html`, and the local-file + smoke test reports the opt-in workspace assertion. +8. The tag is named `v1.8.0`. -The release can then be created manually from the `v1.7.0` tag using -[RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). +The release can then be created manually from the `v1.8.0` tag using +[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). ## Roadmap after v1.0.0 @@ -585,6 +632,7 @@ The release can then be created manually from the `v1.7.0` tag using 5. Accept database catalogue metadata for more accurate object resolution. 6. Add column-level lineage where it can be resolved safely. 7. Add optional local workspace persistence and dependency filtering. + **Delivered in v1.8.0.** 8. Separate graph, transaction, and estate-analysis internals while preserving the v1.0.0 behavior through golden tests. **Delivered in v1.1.0.** diff --git a/dist/src/app.js b/dist/src/app.js index ad76a79..8636550 100644 --- a/dist/src/app.js +++ b/dist/src/app.js @@ -258,6 +258,66 @@ fanIn: $('opt-fanin').checked, sources: $('opt-sources').checked }; } + /* v1.8.0 dependency filtering — presentation only. currentFilter() reads the + filter panel and run() derives a filtered view at render time; the + underlying estate graph is never mutated. */ + function currentFilter() { + return { + reads: $('f-r').checked, + writes: $('f-w').checked, + calls: $('f-c').checked, + external: $('f-e').checked, + temp: $('f-t').checked, + focus: $('f-focus').value + }; + } + /* v1.8.0 workspace persistence — opt-in, versioned, exportable. Every input + that can change the analysis is captured so Restore reproduces an + identical analysis. */ + function snapshotOptions() { + var o = analysisOptions(); + return { + dialect: $('opt-dialect').value, + scope: $('opt-scope').value, + view: o.mode, + detail: o.detail, + dir: o.dir, + group: o.group, + number: o.number, + fanIn: o.fanIn, + sources: o.sources + }; + } + function applySnapshot(snap) { + var o = snap.options; + $('opt-dialect').value = o.dialect; + $('opt-scope').value = o.scope; + $('opt-view').value = o.view; + $('opt-detail').value = o.detail; + $('opt-dir').value = o.dir; + $('opt-group').checked = !!o.group; + $('opt-number').checked = !!o.number; + $('opt-fanin').checked = !!o.fanIn; + $('opt-sources').checked = !!o.sources; + workspaceFiles = (snap.files && snap.files.length) ? snap.files.slice() : null; + estate = null; + activeObjectId = snap.activeObjectId; + if (workspaceFiles && workspaceFiles.length) + sql.value = workspaceFiles[0].text; + drawGutter(); + run(); + } + function updateWsStatus() { + var el = $('ws-status'); + if (hasSavedWorkspace()) { + el.textContent = 'A workspace is saved in this browser. Use Restore to load it, Export to download it, or Forget to remove it.'; + el.classList.add('has'); + } + else { + el.textContent = 'No workspace is saved in this browser. Save is opt-in and local-only.'; + el.classList.remove('has'); + } + } function showDiagnostics(list, extra) { var lines = (list || []).map(function (d) { return d.message; }); if (extra) @@ -365,6 +425,8 @@ return; } var opts = analysisOptions(), object, result, scope = $('opt-scope').value; + /* v1.8.0: the dependency filter panel is only relevant in dependency scope. */ + $('filter-menu').style.display = scope === 'dependencies' ? '' : 'none'; try { if (!workspaceFiles) workspaceFiles = [{ name: 'Pasted SQL', text: text }]; @@ -381,7 +443,11 @@ return; } if (scope === 'dependencies') { - var dependencyCode = toMermaid(estate.graph, opts.dir || 'TD'); + /* v1.8.0 dependency filtering (presentation-only): derive a filtered + view at render time without touching estate.graph, so toggling a + filter or clearing the focus never changes the analysis. */ + var filtered = filterDependencyGraph(estate.graph, currentFilter()); + var dependencyCode = toMermaid(filtered, opts.dir || 'TD'); $('opt-view').disabled = true; $('lbl-group').style.display = 'none'; $('lbl-number').style.display = 'none'; @@ -399,11 +465,11 @@ showDiagnostics(estate.diagnostics); out.textContent = dependencyCode; lastCode = dependencyCode; - lastGraph = estate.graph; + lastGraph = filtered; lastResult = null; lastTitle = 'procflow-estate'; lastDirection = opts.dir || 'TD'; - render(dependencyCode, estate.graph); + render(dependencyCode, filtered); return; } $('opt-view').disabled = false; @@ -630,6 +696,23 @@ $('opt-number').onchange = run; $('opt-fanin').onchange = run; $('opt-scope').onchange = run; + /* v1.8.0 dependency filter controls (presentation-only; re-run derives a + new filtered view without touching estate.graph). */ + $('f-r').onchange = run; + $('f-w').onchange = run; + $('f-c').onchange = run; + $('f-e').onchange = run; + $('f-t').onchange = run; + $('f-focus').addEventListener('input', schedule); + $('btn-filter-reset').onclick = function () { + $('f-r').checked = true; + $('f-w').checked = true; + $('f-c').checked = true; + $('f-e').checked = true; + $('f-t').checked = true; + $('f-focus').value = ''; + run(); + }; $('object-select').onchange = function () { activeObjectId = this.value; loadObjectSource(activeObject()); @@ -685,6 +768,58 @@ a.click(); setTimeout(function () { URL.revokeObjectURL(a.href); }, 2000); }; + /* v1.8.0 workspace persistence — every action below is an explicit, opt-in + user action. Nothing is ever written to or read from storage on load. */ + $('btn-ws-save').onclick = function () { + var files = workspaceFiles || [{ name: 'Pasted SQL', text: sql.value }]; + var snap = buildWorkspaceSnapshot({ files: files, options: snapshotOptions(), + activeObjectId: activeObjectId }); + var ok = writeWorkspace(snap); + updateWsStatus(); + flash($('btn-ws-save'), ok ? 'Saved' : 'Save failed'); + }; + $('btn-ws-restore').onclick = function () { + var snap = readWorkspace(); + if (!snap) { + flash($('btn-ws-restore'), 'None saved'); + return; + } + applySnapshot(snap); + }; + $('btn-ws-export').onclick = function () { + var snap = readWorkspace(); + if (!snap) { + flash($('btn-ws-export'), 'Nothing saved'); + return; + } + var blob = new Blob([serializeWorkspace(snap)], { type: 'application/json' }); + var a = document.createElement('a'); + a.href = URL.createObjectURL(blob); + a.download = 'procflow-workspace.json'; + a.click(); + setTimeout(function () { URL.revokeObjectURL(a.href); }, 2000); + }; + $('btn-ws-forget').onclick = function () { + clearWorkspace(); + updateWsStatus(); + flash($('btn-ws-forget'), 'Forgotten'); + }; + $('btn-ws-import').onclick = function () { $('ws-file-input').click(); }; + $('ws-file-input').onchange = function () { + var file = (this.files && this.files[0]); + if (!file) + return; + file.text().then(function (text) { + var parsed = parseWorkspace(text); + if (parsed.error || !parsed.snapshot) { + showMsg('That file is not a valid ProcFlow workspace export.'); + return; + } + applySnapshot(parsed.snapshot); + updateWsStatus(); + }).catch(function (err) { showMsg('Could not read that workspace file: ' + err.message); }); + this.value = ''; + }; if (typeof mermaid !== 'undefined') { mermaid.initialize({ startOnLoad: false, theme: 'base', securityLevel: 'strict', @@ -697,10 +832,17 @@ }); } drawGutter(); + updateWsStatus(); + /* Local-only guarantee (v1.8.0): persistence is opt-in only — nothing is + written to or restored from storage on load. This attribute lets the + release smoke test assert the app initialises local-only. */ + document.documentElement.setAttribute('data-workspace-optin', '1'); document.documentElement.setAttribute('data-procflow-ready', String(typeof mermaid !== 'undefined' && typeof tokenize === 'function' && typeof detectDialect === 'function' && typeof analyse === 'function' && - typeof toDrawio === 'function')); + typeof toDrawio === 'function' && + typeof buildWorkspaceSnapshot === 'function' && + typeof filterDependencyGraph === 'function')); })(); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/dist/src/app.js.map b/dist/src/app.js.map index 57ff37f..d7beaa8 100644 --- a/dist/src/app.js.map +++ b/dist/src/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/workspace.js b/dist/src/workspace.js new file mode 100644 index 0000000..0a7b45c --- /dev/null +++ b/dist/src/workspace.js @@ -0,0 +1,243 @@ +"use strict"; +/* ===== v1.8.0 Usable local workspace (README post-v1.0.0 item 7) ===== + Optional local workspace persistence and dependency filtering. + + Persistence is opt-in: nothing is ever written to storage automatically. + Save, Restore, Export, Import, and Forget all require an explicit user + action. A saved snapshot is versioned (WORKSPACE_SCHEMA_VERSION) so a future + release can migrate it, and exportable so it never becomes locked to a + browser. Corrupt or malformed stored data is recovered rather than crashing + the app: parseWorkspace returns an error so the caller can drop it and + start clean. + + Dependency filtering is presentation-only: filterDependencyGraph derives a + filtered copy at render time and never mutates the underlying estate graph. + Disabling a filter changes the view only — never the analysis result. +*/ +var WORKSPACE_SCHEMA_VERSION = 1; +var WORKSPACE_STORAGE_KEY = 'procflow.workspace'; /* schema base key; versioned payload */ +var DIALECT_SELECT_ORDER = ['auto', 'tsql', 'db2', 'plpgsql', 'sqlite']; +function defaultWorkspaceOptions() { + return { + dialect: 'auto', + scope: 'internal', + view: 'auto', + detail: 'summary', + dir: 'TD', + group: true, + number: false, + fanIn: false, + sources: true + }; +} +/* Serialize the current in-memory workspace into a plain, JSON-safe, versioned + snapshot. The files array carries every source the estate needs, and options + carry every control that influences analysis, so an identical analysis is + guaranteed on Restore. */ +function buildWorkspaceSnapshot(state) { + var opt = { + dialect: String(state.options.dialect == null ? 'auto' : state.options.dialect), + scope: String(state.options.scope == null ? 'internal' : state.options.scope), + view: String(state.options.view == null ? 'auto' : state.options.view), + detail: String(state.options.detail == null ? 'summary' : state.options.detail), + dir: String(state.options.dir == null ? 'TD' : state.options.dir), + group: !!state.options.group, + number: !!state.options.number, + fanIn: !!state.options.fanIn, + sources: !!state.options.sources + }; + return { + version: WORKSPACE_SCHEMA_VERSION, + savedAt: new Date().toISOString(), + files: (state.files || []).map(function (f) { + return { name: String(f.name || ''), text: String(f.text == null ? '' : f.text) }; + }), + options: opt, + activeObjectId: state.activeObjectId || null + }; +} +function serializeWorkspace(snapshot) { + return JSON.stringify(snapshot); +} +/* Migrate an older-version payload forward to the current schema. Currently + only the initial schema exists, so migration is structural: repair missing + or wrong-shaped fields to current defaults. Future schema versions add their + step here (and bump WORKSPACE_SCHEMA_VERSION). */ +function migrateWorkspace(raw) { + var migrated = { + version: WORKSPACE_SCHEMA_VERSION, + savedAt: raw && raw.savedAt ? String(raw.savedAt) : new Date().toISOString(), + files: Array.isArray(raw && raw.files) ? raw.files.filter(function (f) { + return f && (typeof f.name === 'string') && f.text !== undefined; + }).map(function (f) { return { name: String(f.name), text: String(f.text) }; }) : [], + options: {} + }; + var d = defaultWorkspaceOptions(); + var src = raw && raw.options ? raw.options : {}; + migrated.options = { + dialect: DIALECT_SELECT_ORDER.indexOf(String(src.dialect)) >= 0 ? String(src.dialect) : d.dialect, + scope: ['internal', 'dependencies'].indexOf(String(src.scope)) >= 0 ? String(src.scope) : d.scope, + view: ['auto', 'flow', 'query'].indexOf(String(src.view)) >= 0 ? String(src.view) : d.view, + detail: ['summary', 'full'].indexOf(String(src.detail)) >= 0 ? String(src.detail) : d.detail, + dir: ['TD', 'LR'].indexOf(String(src.dir)) >= 0 ? String(src.dir) : d.dir, + group: src.group === undefined ? d.group : !!src.group, + number: src.number === undefined ? d.number : !!src.number, + fanIn: src.fanIn === undefined ? d.fanIn : !!src.fanIn, + sources: src.sources === undefined ? d.sources : !!src.sources + }; + migrated.activeObjectId = raw && raw.activeObjectId ? String(raw.activeObjectId) : null; + return migrated; +} +/* Parse a serialized or exported workspace string with corrupt-state recovery. + Returns {snapshot} on success, or {error} on corrupt/malformed input so the + caller can drop the bad state and start clean instead of crashing. */ +function parseWorkspace(json) { + var raw; + try { + raw = JSON.parse(String(json == null ? '' : json)); + } + catch (e) { + return { snapshot: null, migrated: false, error: 'corrupt_json' }; + } + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) + return { snapshot: null, migrated: false, error: 'not_workspace' }; + var version = typeof raw.version === 'number' ? raw.version : 0; + var migrated = version !== WORKSPACE_SCHEMA_VERSION; + var snapshot = migrateWorkspace(raw); + if (!snapshot.files.length && !snapshot.activeObjectId) + return { snapshot: null, migrated: false, error: 'empty_workspace' }; + snapshot.version = WORKSPACE_SCHEMA_VERSION; + return { snapshot: snapshot, migrated: migrated }; +} +/* ---- local-only storage (opt-in, versioned) ---- */ +function readWorkspace() { + try { + var raw = window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + if (!raw) + return null; + var parsed = parseWorkspace(raw); + if (parsed.error || !parsed.snapshot) { + try { + window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); + } + catch (e) { } + return null; + } + return parsed.snapshot; + } + catch (e) { + return null; + } +} +function hasSavedWorkspace() { + try { + return !!window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + } + catch (e) { + return false; + } +} +function writeWorkspace(snapshot) { + try { + window.localStorage.setItem(WORKSPACE_STORAGE_KEY, serializeWorkspace(snapshot)); + return true; + } + catch (e) { + return false; + } +} +function clearWorkspace() { + try { + window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); + } + catch (e) { } +} +function workspaceExportText() { + var snap = readWorkspace(); + return snap ? serializeWorkspace(snap) : ''; +} +/* ===== v1.8.0 dependency filtering (presentation-only) ===== */ +function defaultWorkspaceFilter() { + return { reads: true, writes: true, calls: true, external: true, temp: true, focus: '' }; +} +/* Derive a filtered view of the dependency graph. Never mutates the input: + the returned object contains fresh node/edge arrays (shallow-cloned nodes), + so toggling a filter cannot change the underlying estate graph or any later + export. An edge is shown only when its semantic kind passes the matching + toggle and both endpoints survive node-kind filtering. A non-empty focus + keeps matching nodes plus their immediate neighbours (one hop). */ +function filterDependencyGraph(graph, filter) { + var f = { + reads: filter && filter.reads !== undefined ? filter.reads : true, + writes: filter && filter.writes !== undefined ? filter.writes : true, + calls: filter && filter.calls !== undefined ? filter.calls : true, + external: filter && filter.external !== undefined ? filter.external : true, + temp: filter && filter.temp !== undefined ? filter.temp : true, + focus: filter && filter.focus ? String(filter.focus) : '' + }; + if (!graph || !graph.nodes || !graph.nodes.length) + return { nodes: [], edges: [], stats: graph && graph.stats || {} }; + var keep = {}; + graph.nodes.forEach(function (n) { + if (n.provenance === 'external' && !f.external) + return; + if (n.provenance === 'synthetic' && !f.temp) + return; + keep[n.id] = 1; + }); + var focus = String(f.focus || '').trim().toUpperCase(); + if (focus) { + var matched = {}; + var neighbour = {}; + graph.nodes.forEach(function (n) { + if (keep[n.id] && (String(n.text || '').toUpperCase().indexOf(focus) >= 0 || + String(n.objectId || '').toUpperCase().indexOf(focus) >= 0)) + matched[n.id] = 1; + }); + if (focus && !Object.keys(matched).length) { + /* A focus that matches nothing shows no neighbourhood. */ + return { nodes: [], edges: [], stats: graph.stats, empty: true }; + } + graph.edges.forEach(function (e) { + if (matched[e.from]) + neighbour[e.to] = 1; + if (matched[e.to]) + neighbour[e.from] = 1; + }); + var narrowed = {}; + graph.nodes.forEach(function (n) { + if (keep[n.id] && (matched[n.id] || neighbour[n.id])) + narrowed[n.id] = 1; + }); + keep = narrowed; + } + var nodes = (graph.nodes || []).filter(function (n) { + return keep[n.id] === 1; + }).map(function (n) { + var c = {}; + for (var k in n) + c[k] = n[k]; + return c; + }); + function edgePass(e) { + if (e.kind === 'data') + return !!f.writes; + if (e.kind === 'call') + return !!f.calls; + if (e.kind === 'dependency') + return !!f.reads; + return true; + } + var edges = (graph.edges || []).filter(function (e) { + return keep[e.from] === 1 && keep[e.to] === 1 && edgePass(e); + }).map(function (e) { + var c = {}; + for (var k in e) + c[k] = e[k]; + return c; + }); + /* Stats are presentation-independent: keep the original estate stats so a + filter never changes what the analysis reports, only what the view draws. */ + return { nodes: nodes, edges: edges, stats: graph.stats }; +} +//# sourceMappingURL=workspace.js.map \ No newline at end of file diff --git a/dist/src/workspace.js.map b/dist/src/workspace.js.map new file mode 100644 index 0000000..4dc770d --- /dev/null +++ b/dist/src/workspace.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/workspace.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js index 388dffe..f2afc31 100644 --- a/dist/tests/metrics.js +++ b/dist/tests/metrics.js @@ -1,11 +1,12 @@ "use strict"; -/* v1.7.0 — fixture-corpus metric publishing. +/* v1.8.0 — fixture-corpus metric publishing. Aggregates the "Metrics that matter" over the checked-in golden corpus, including the v1.7.0 export-parity, export-traceability, and layout-budget - pass rates reported by tests/parity.ts. + pass rates reported by tests/parity.ts, plus the v1.8.0 workspace + persistence/dependency-filtering pass rate from tests/workspace.ts. Purely deterministic and fixture-only: no user inputs and no runtime telemetry are ever collected. scripts/metrics.mjs drives this page to - produce or verify docs/metrics-v1.7.0.json. */ + produce or verify docs/metrics-v1.8.0.json. */ (function () { var corpus = PROCFLOW_FIXTURES || []; var totalTokens = 0, attributedAll = 0, unresolvedTokens = 0, opaqueTokens = 0, tailUnconsumed = 0; @@ -84,9 +85,11 @@ `npm run metrics:write`; CI then refuses to merge a stale snapshot. */ golden: corpus.length, fuzz: 400, - ui: 16, + ui: 20, parity: window.PROCFLOW_PARITY_RESULT ? window.PROCFLOW_PARITY_RESULT.total / 2 : 0, - layout: window.PROCFLOW_LAYOUT_RESULT ? window.PROCFLOW_LAYOUT_RESULT.total : 0 + layout: window.PROCFLOW_LAYOUT_RESULT ? window.PROCFLOW_LAYOUT_RESULT.total : 0, + workspace: window.PROCFLOW_WORKSPACE_RESULT + ? window.PROCFLOW_WORKSPACE_RESULT.total : 0 }, attributionRate: rate(attributedAll, totalTokens), unresolvedTokenRate: rate(unresolvedTokens, totalTokens), @@ -109,6 +112,12 @@ layoutBudgetPassRate: window.PROCFLOW_LAYOUT_RESULT ? rate(window.PROCFLOW_LAYOUT_RESULT.passed, window.PROCFLOW_LAYOUT_RESULT.total) : 0, + /* v1.8.0 usable local workspace: persistence round-trip, migration, + corrupt recovery, explicit clearing, and presentation-only dependency + filtering all pass on the checked-in fixture corpus. */ + workspacePassRate: window.PROCFLOW_WORKSPACE_RESULT + ? rate(window.PROCFLOW_WORKSPACE_RESULT.passed, window.PROCFLOW_WORKSPACE_RESULT.total) + : 0, aggregate: { totalTokens: totalTokens, accountedTokens: attributedAll, diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map index 51fea1c..265f07a 100644 --- a/dist/tests/metrics.js.map +++ b/dist/tests/metrics.js.map @@ -1 +1 @@ -{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/tests.js b/dist/tests/tests.js index 3c71615..708e997 100644 --- a/dist/tests/tests.js +++ b/dist/tests/tests.js @@ -781,6 +781,18 @@ record('v1.7.0 export-parity fixtures round-trip from both exporters', false, String(err && err.stack || err)); record('v1.7.0 layout budget fixtures (deterministic, no overlap, budgets)', false, String(err && err.stack || err)); } + /* v1.8.0: usable local workspace — persistence round-trip, migration, + corrupt recovery, explicit clearing, and presentation-only dependency + filtering run ahead in tests/workspace.ts; gate the whole golden page on + them. */ + try { + record('v1.8.0 workspace persistence, migration, clear, and filter fixtures', window.PROCFLOW_WORKSPACE_PASS === true && + !!window.PROCFLOW_WORKSPACE_RESULT && + window.PROCFLOW_WORKSPACE_RESULT.passed === window.PROCFLOW_WORKSPACE_RESULT.total, window.PROCFLOW_WORKSPACE_RESULT); + } + catch (err) { + record('v1.8.0 workspace persistence, migration, clear, and filter fixtures', false, String(err && err.stack || err)); + } var passed = results.filter(function (r) { return r.pass; }).length; document.body.className = passed === results.length ? 'pass' : 'fail'; document.getElementById('summary').textContent = passed + '/' + results.length + ' tests passed'; diff --git a/dist/tests/tests.js.map b/dist/tests/tests.js.map index be6d6f4..3343591 100644 --- a/dist/tests/tests.js.map +++ b/dist/tests/tests.js.map @@ -1 +1 @@ -{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/ui-tests.js b/dist/tests/ui-tests.js index 2e24fe9..0daf171 100644 --- a/dist/tests/ui-tests.js +++ b/dist/tests/ui-tests.js @@ -136,6 +136,68 @@ pass: !!w.mermaid && !Array.prototype.some.call(d.scripts, function (s) { return /^https?:/i.test(s.getAttribute('src') || ''); }) }); + /* v1.8.0 usable local workspace — dependency filtering and opt-in + persistence (save → restore identical, explicit clear). */ + w.clearWorkspace(); + var depSource = [ + 'CREATE VIEW dbo.dep_view AS SELECT id FROM dbo.student;', + 'GO', + 'CREATE PROC dbo.dep_proc AS', + 'BEGIN', + ' EXEC dbo.dep_callee;', + ' UPDATE dbo.student SET x = 1;', + ' SELECT id FROM dbo.dep_view;', + 'END' + ].join('\n'); + get('sql').value = depSource; + get('sql').dispatchEvent(new Event('input')); + get('btn-draw').click(); + get('object-select').options.length; /* analyse estate */ + get('opt-scope').value = 'dependencies'; + get('opt-scope').dispatchEvent(new Event('change')); + var filterShown = get('filter-menu').style.display !== 'none'; + var fullDep = get('mermaid-out').textContent; + get('f-w').checked = false; + get('f-w').dispatchEvent(new Event('change')); + var filteredDep = get('mermaid-out').textContent; + get('btn-filter-reset').click(); + var resetDep = get('mermaid-out').textContent; + results.push({ name: 'dependency filter panel shows only in dependency scope', + pass: filterShown && fullDep.length > 0, + detail: { shown: filterShown, full: fullDep.slice(0, 80) } }); + results.push({ name: 'dependency filtering is presentation-only in the UI', + pass: fullDep !== filteredDep && filteredDep.length < fullDep.length && + resetDep === fullDep, + detail: { full: fullDep.slice(0, 120), filtered: filteredDep.slice(0, 120), + reset: resetDep.slice(0, 120) } }); + var persistenceSource = [ + 'CREATE PROC dbo.ws_persist AS', + 'BEGIN', + ' SELECT 1;', + 'END' + ].join('\n'); + get('opt-scope').value = 'internal'; + get('opt-scope').dispatchEvent(new Event('change')); + get('opt-dialect').value = 'tsql'; + get('sql').value = persistenceSource; + get('sql').dispatchEvent(new Event('input')); + get('btn-draw').click(); + var capturedCode = get('mermaid-out').textContent; + get('btn-ws-save').click(); + get('sql').value = 'SELECT changed;'; + get('sql').dispatchEvent(new Event('input')); + get('btn-draw').click(); + get('btn-ws-restore').click(); + var restoredCode = get('mermaid-out').textContent; + results.push({ name: 'opt-in save then restore reproduces identical analysis', + pass: get('sql').value.indexOf('ws_persist') >= 0 && capturedCode === restoredCode, + detail: { captured: capturedCode.slice(0, 80), restored: restoredCode.slice(0, 80), + sql: get('sql').value.slice(0, 60) } }); + get('btn-ws-forget').click(); + results.push({ name: 'forgetting a saved workspace is explicit', + pass: w.hasSavedWorkspace() === false && + /No workspace is saved/i.test(get('ws-status').textContent || ''), + detail: { saved: w.hasSavedWorkspace(), status: get('ws-status').textContent } }); finish(results); }, 1200); }); diff --git a/dist/tests/ui-tests.js.map b/dist/tests/ui-tests.js.map index a149c6e..3dc5048 100644 --- a/dist/tests/ui-tests.js.map +++ b/dist/tests/ui-tests.js.map @@ -1 +1 @@ -{"version":3,"file":"ui-tests.js","sourceRoot":"","sources":["../../tests/ui-tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ui-tests.js","sourceRoot":"","sources":["../../tests/ui-tests.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/workspace.js b/dist/tests/workspace.js new file mode 100644 index 0000000..7e5cf9b --- /dev/null +++ b/dist/tests/workspace.js @@ -0,0 +1,214 @@ +"use strict"; +/* proc>flow v1.8.0 — usable local workspace (README post-v1.0.0 item 7). + Fixtures for the two v1.8.0 features: + 1. Persistence — opt-in, versioned, exportable. Save → reload reproduces + an identical analysis; schema-version migration and corrupt-state + recovery behave; clearing is explicit. + 2. Dependency filtering — presentation-only. A filter derives a filtered + view at render time and never mutates the underlying analysis graph. + The pure serialization, migration, and filtering logic is unit-tested here; + browser-storage round-trips (write/read/clear) are exercised when the test + page runs in a browser that provides localStorage. + + After this suite runs, PROCFLOW_WORKSPACE_PASS and PROCFLOW_WORKSPACE_RESULT + gate the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */ +(function () { + var results = []; + function record(name, pass, detail) { + results.push({ name: name, pass: pass, detail: pass ? '' : detail }); + } + function clone(o) { return JSON.parse(JSON.stringify(o)); } + var src = [ + 'CREATE VIEW dbo.export_students AS SELECT id FROM dbo.student;', + 'GO', + 'CREATE PROCEDURE dbo.refresh_students AS', + 'BEGIN', + ' EXEC dbo.audit_refresh;', + ' UPDATE dbo.student SET refreshed = 1;', + ' SELECT id FROM dbo.export_students;', + 'END' + ].join('\n'); + var files = [{ name: 'report.sql', text: src }]; + var optionsRecord = { + dialect: 'tsql', scope: 'dependencies', view: 'flow', detail: 'full', + dir: 'LR', group: true, number: true, fanIn: true, sources: true + }; + var activeObjectId = 'object-2'; + /* optsFromSnapshot mirrors app.ts's analysisOptions() so a restored snapshot + can be re-analysed identically. */ + function optsFromSnapshot(snap) { + var o = snap.options; + return { dialect: o.dialect, mode: o.view, + dir: o.dir, detail: o.detail, + group: o.group, number: o.number, fanIn: o.fanIn, sources: o.sources }; + } + function graphKey(graph) { + return JSON.stringify([graph.nodes, graph.edges]); + } + try { + var snap = buildWorkspaceSnapshot({ files: files, options: optionsRecord, + activeObjectId: activeObjectId }); + var serialized = serializeWorkspace(snap); + var parsed = parseWorkspace(serialized); + record('v1.8.0 snapshot round-trip preserves every field', parsed.snapshot !== null && !parsed.error && parsed.migrated === false && + parsed.snapshot.version === snap.version && + parsed.snapshot.files.length === 1 && + parsed.snapshot.files[0].name === 'report.sql' && + parsed.snapshot.files[0].text === src && + parsed.snapshot.options.dialect === 'tsql' && + parsed.snapshot.options.scope === 'dependencies' && + parsed.snapshot.options.view === 'flow' && + parsed.snapshot.options.detail === 'full' && + parsed.snapshot.options.dir === 'LR' && + parsed.snapshot.options.group === true && + parsed.snapshot.options.number === true && + parsed.snapshot.options.fanIn === true && + parsed.snapshot.options.sources === true && + parsed.snapshot.activeObjectId === 'object-2' && + parsed.snapshot.files[0].text === snap.files[0].text, { serialized: serialized }); + record('v1.8.0 save → reload reproduces an identical analysis', (function () { + var r1 = analyseEstate(files, optsFromSnapshot(snap)); + if (!parsed.error && parsed.snapshot) { + var r2 = analyseEstate(parsed.snapshot.files, optsFromSnapshot(parsed.snapshot)); + return graphKey(r1.graph) === graphKey(r2.graph) && + JSON.stringify(r1.objects) === JSON.stringify(r2.objects) && + JSON.stringify(r1.diagnostics) === JSON.stringify(r2.diagnostics); + } + return false; + })(), { graph: (parsed.snapshot ? graphKey(analyseEstate(parsed.snapshot.files, optsFromSnapshot(parsed.snapshot)).graph) : ''), + graph2: (parsed.snapshot ? graphKey(analyseEstate(files, optsFromSnapshot(snap)).graph) : '') }); + } + catch (err) { + record('v1.8.0 snapshot round-trip preserves every field', false, String(err && err.stack || err)); + record('v1.8.0 save → reload reproduces an identical analysis', false, String(err && err.stack || err)); + } + /* Schema-version migration: older/missing versions + missing option fields + migrate forward to the current schema with safe defaults. */ + try { + var legacyRaw = JSON.stringify({ savedAt: '2026-01-01T00:00:00.000Z', + files: [{ name: 'old.sql', text: 'SELECT 1;' }], + options: { dialect: 'tsql', scope: 'internal' } }); + var legacy = parseWorkspace(legacyRaw); + record('v1.8.0 older-version snapshots migrate forward with defaults', !!legacy.snapshot && legacy.migrated === true && legacy.snapshot.version === WORKSPACE_SCHEMA_VERSION && + legacy.snapshot.options.view === 'auto' && + legacy.snapshot.options.group === true && + legacy.snapshot.options.sources === true && + legacy.snapshot.files[0].name === 'old.sql', legacy); + record('v1.8.0 current-version snapshots are not migrated', (function () { + var cur = parseWorkspace(serializeWorkspace(buildWorkspaceSnapshot({ files: files, options: optionsRecord, activeObjectId: null }))); + return cur.snapshot !== null && cur.migrated === false; + })()); + } + catch (err) { + record('v1.8.0 older-version snapshots migrate forward with defaults', false, String(err && err.stack || err)); + record('v1.8.0 current-version snapshots are not migrated', false, String(err && err.stack || err)); + } + /* Corrupt-state recovery: bad input yields an error and no snapshot. */ + try { + var corruptJson = parseWorkspace('{not valid json'); + var corruptType = parseWorkspace('[1,2,3]'); + var corruptEmpty = parseWorkspace(JSON.stringify({ version: 1, files: [], activeObjectId: null })); + record('v1.8.0 corrupt-state recovery returns an error instead of throwing', corruptJson.error === 'corrupt_json' && corruptJson.snapshot === null && + corruptType.error === 'not_workspace' && corruptType.snapshot === null && + corruptEmpty.error === 'empty_workspace' && corruptEmpty.snapshot === null, { corruptJson: corruptJson, corruptType: corruptType, corruptEmpty: corruptEmpty }); + } + catch (err) { + record('v1.8.0 corrupt-state recovery returns an error instead of throwing', false, String(err && err.stack || err)); + } + /* Browser-storage round-trip (opt-in save/restore), exercised only when the + page runs somewhere localStorage is available. Clearing is explicit. */ + try { + var storageAvailable = true; + try { + var probe = window.localStorage.getItem('procflow.probe'); + } + catch (e) { + storageAvailable = false; + } + if (storageAvailable) { + clearWorkspace(); + var before = hasSavedWorkspace(); + var wrote = writeWorkspace(snap); + var read = readWorkspace(); + var stored = hasSavedWorkspace(); + clearWorkspace(); + var after = hasSavedWorkspace(); + record('v1.8.0 opt-in storage round-trip and explicit clear', wrote === true && before === false && stored === true && + !!read && read.files.length === 1 && read.files[0].name === 'report.sql' && + after === false, { wrote: wrote, before: before, stored: stored, + read: read && read.files && read.files[0] && read.files[0].name, after: after }); + } + else { + record('v1.8.0 opt-in storage round-trip and explicit clear', true, 'localStorage unavailable in this environment; skipped'); + } + } + catch (err) { + record('v1.8.0 opt-in storage round-trip and explicit clear', false, String(err && err.stack || err)); + } + /* Dependency filtering — presentation only. Build a synthetic dependency + graph spanning object (source), external, and temp (synthetic) nodes with + data/dependency/call edges, then assert each toggle and that the input + graph is never mutated. */ + try { + var da = 'da', db = 'db', de = 'de', dt = 'dt'; + var depGraph = { + nodes: [ + { id: da, shape: 'rect', text: 'alpha', cls: 'call', source: null, objectId: 'object-1', provenance: 'source' }, + { id: db, shape: 'rect', text: 'beta', cls: 'call', source: null, objectId: 'object-2', provenance: 'source' }, + { id: de, shape: 'io', text: 'external: server.dbo.t', cls: 'src', source: null, objectId: 'server.dbo.t', provenance: 'external' }, + { id: dt, shape: 'io', text: '#tmp', cls: 'src', source: null, objectId: null, provenance: 'synthetic', reason: 'temporary table placeholder' } + ], + edges: [ + { from: da, to: dt, label: 'writes', style: 'dotted', kind: 'data' }, + { from: dt, to: db, label: 'reads', style: 'solid', kind: 'dependency' }, + { from: da, to: de, label: 'reads', style: 'solid', kind: 'dependency' }, + { from: db, to: de, label: 'calls', style: 'solid', kind: 'call' } + ], + stats: { objects: 2, external: 1, reads: 2, writes: 1, calls: 1 } + }; + var baseline = clone(depGraph); + var allOn = filterDependencyGraph(depGraph, null); + var noWrites = filterDependencyGraph(depGraph, { writes: false }); + var noExternal = filterDependencyGraph(depGraph, { external: false }); + var noTemp = filterDependencyGraph(depGraph, { temp: false }); + var focusAlpha = filterDependencyGraph(depGraph, { focus: 'alpha' }); + var noneMatch = filterDependencyGraph(depGraph, { focus: 'zzz' }); + record('v1.8.0 dependency filter default shows the whole graph', allOn.nodes.length === 4 && allOn.edges.length === 4, { nodes: allOn.nodes.length, edges: allOn.edges.length }); + record('v1.8.0 dependency filter hides write edges without dropping nodes', noWrites.edges.length === 3 && + !noWrites.edges.some(function (e) { return e.kind === 'data'; }) && + noWrites.nodes.length === 4, { nodes: noWrites.nodes.length, edges: noWrites.edges.length, + kinds: noWrites.edges.map(function (e) { return e.kind; }) }); + record('v1.8.0 dependency filter drops external nodes and their incident edges', noExternal.nodes.length === 3 && noExternal.edges.length === 2 && + !noExternal.nodes.some(function (n) { return n.provenance === 'external'; }), { nodes: noExternal.nodes.length, + edges: noExternal.edges.map(function (e) { return e.kind; }) }); + record('v1.8.0 dependency filter drops temp-table nodes and their incident edges', noTemp.nodes.length === 3 && noTemp.edges.length === 2 && + !noTemp.nodes.some(function (n) { return n.provenance === 'synthetic'; }), { nodes: noTemp.nodes.length, + edges: noTemp.edges.map(function (e) { return e.kind; }) }); + record('v1.8.0 dependency filter focus keeps the matching neighbourhood', (function () { + var ids = focusAlpha.nodes.map(function (n) { return n.id; }).sort(); + return focusAlpha.nodes.length === 3 && + ids.indexOf(da) >= 0 && ids.indexOf(de) >= 0 && ids.indexOf(dt) >= 0 && + ids.indexOf(db) < 0 && + focusAlpha.edges.length === 2; + })(), { nodes: focusAlpha.nodes.map(function (n) { return n.id; }).sort(), + edges: focusAlpha.edges }); + record('v1.8.0 a focus matching nothing shows an empty view', noneMatch.nodes.length === 0 && noneMatch.edges.length === 0, { nodes: noneMatch.nodes.length, edges: noneMatch.edges.length }); + record('v1.8.0 dependency filtering never mutates the analysis graph', JSON.stringify(baseline) === JSON.stringify(depGraph) && + allOn.nodes !== depGraph.nodes && allOn.edges !== depGraph.edges, { unchanged: JSON.stringify(baseline) === JSON.stringify(depGraph), + sameNodeRef: allOn.nodes === depGraph.nodes, + sameEdgeRef: allOn.edges === depGraph.edges }); + } + catch (err) { + record('v1.8.0 dependency filter default shows the whole graph', false, String(err && err.stack || err)); + record('v1.8.0 dependency filter hides write edges without dropping nodes', false, String(err && err.stack || err)); + record('v1.8.0 dependency filter drops external nodes and their incident edges', false, String(err && err.stack || err)); + record('v1.8.0 dependency filter drops temp-table nodes and their incident edges', false, String(err && err.stack || err)); + record('v1.8.0 dependency filter focus keeps the matching neighbourhood', false, String(err && err.stack || err)); + record('v1.8.0 a focus matching nothing shows an empty view', false, String(err && err.stack || err)); + record('v1.8.0 dependency filtering never mutates the analysis graph', false, String(err && err.stack || err)); + } + var passed = results.filter(function (r) { return r.pass; }).length; + window.PROCFLOW_WORKSPACE_RESULT = { passed: passed, total: results.length }; + window.PROCFLOW_WORKSPACE_PASS = passed === results.length; +})(); +//# sourceMappingURL=workspace.js.map \ No newline at end of file diff --git a/dist/tests/workspace.js.map b/dist/tests/workspace.js.map new file mode 100644 index 0000000..5dd21f3 --- /dev/null +++ b/dist/tests/workspace.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../tests/workspace.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docs/PR_NOTE_1.8.0.md b/docs/PR_NOTE_1.8.0.md new file mode 100644 index 0000000..848851c --- /dev/null +++ b/docs/PR_NOTE_1.8.0.md @@ -0,0 +1,100 @@ +# PR: v1.8.0 — Usable local workspace + +## Summary + +Implements the **v1.8.0 — Usable local workspace** milestone from `ROADMAP.md` +in full and nothing from v1.9.0 onwards: README post-v1.0.0 item 7 — **optional +local workspace persistence** (opt-in, versioned, exportable) and +**dependency filtering** (presentation-only) — plus the updated +security/privacy documentation and the extended local-only CI check. The golden +suite grows from 206 to 207; fuzz (400) stays green; the UI suite grows from 16 +to 20; workspace fixtures (13) cover save→reload identity, migration, corrupt +recovery, explicit clearing, and non-mutating filters. Catalogue rotation, +column lineage, and RDL remain deferred. + +## What's included + +### Opt-in, versioned, exportable workspace persistence + +`src/workspace.ts` (a new runtime module loaded before `app.js`) adds a +versioned workspace schema (`WORKSPACE_SCHEMA_VERSION = 1`) and the +serialization/migration/storage layer: + +- `buildWorkspaceSnapshot` / `serializeWorkspace` capture every input that can + change the analysis — the workspace files plus the analysis/UI options — so a + Restore reproduces an identical analysis. +- `parseWorkspace` performs corrupt-state recovery: malformed or wrong-shaped + stored data yields an explicit error (never a crash) so the caller drops it + and starts clean. +- `migrateWorkspace` repairs older/missing versions and missing option fields + forward to the current schema with safe defaults. +- `readWorkspace` / `writeWorkspace` / `hasSavedWorkspace` / `clearWorkspace` + confine browser `localStorage` access to this opt-in module — the only place + in the runtime that touches storage. + +The **Workspace** menu in `index.html` exposes Save, Restore, Export file, +Import file, and Forget. Everything is an explicit user action: the app never +writes to or restores from storage on load (verified by the release smoke test +and the extended local-only CI check). + +### Presentation-only dependency filtering + +`filterDependencyGraph` in `src/workspace.ts` derives a filtered copy of the +dependency graph at render time and never mutates the underlying estate graph +(the filtered node/edge arrays are fresh objects, and stats are left intact): + +- edge-kind toggles (Reads / Writes / Calls) by semantic `kind`; +- node-kind toggles (External objects, Temp tables) by provenance; +- a Focus box that keeps a matching node plus its immediate neighbours. + +`app.ts` applies the filter only in the **Object dependencies** scope; the +**Filter dependencies** panel is hidden elsewhere. The export (`Save draw.io` / +`Save SVG`) reflects the currently displayed (filtered) view, while the +analysis graph, confidence, coverage, and diagnostics are unchanged. + +### Security / privacy and local-only documentation + CI + +- The `index.html` privacy disclosure and README security table now describe + opt-in persistence honestly: nothing is saved unless the user chooses Save, + and saved workspaces are local-only, exportable, and clearable. +- `scripts/file-smoke.mjs` (the local-file release smoke test) now additionally + asserts the app initialises with `data-workspace-optin="1"`, i.e. persistence + is declared opt-in on load. +- The CI "Check runtime remains local-only" step is extended to also reject + network-submission APIs and to confirm that `localStorage` is only touched by + `src/workspace.ts`. + +## Fixtures and tests + +- `tests/workspace.ts` (+ `tests/index.html`, `tests/metrics.html` wiring) — 13 + fixture-corpus records covering round-trip fidelity, save→reload identity, + migration (older versions and missing fields), corrupt-state recovery, + opt-in storage round-trip + explicit clear, and non-mutating filters (edge, + external, temp, focus, and no-match). Gates the golden page via + `PROCFLOW_WORKSPACE_PASS`. +- `tests/ui-tests.ts` — 4 new browser tests: the filter panel shows only in + dependency scope, filtering is presentation-only in the UI, opt-in save → + restore reproduces an identical analysis, and forgetting is explicit. +- `tests/metrics.ts` → `docs/metrics-v1.8.0.json` — adds `workspacePassRate` + and the `workspace` corpus count (13/13). +- `examples/dbo.v180_demo.sql` — a multi-object demo exercising both features. + +## Verification + +- `npm run typecheck` — passes +- `npm run build` — passes +- `npm run test:file` — passes (with `CHROME_PATH` set; includes the new + opt-in/local-only assertion) +- Golden suite — 207/207 (was 206) +- Fuzz suite — 400 deterministic mutation cases +- UI suite — 20/20 (was 16) +- `npm run metrics` — snapshot is current; `docs/metrics-v1.8.0.json` committed + (v1.7.0 snapshot renamed) +- Extended local-only check clean; `dist/` committed in sync + +## Not changed / deferred (per roadmap) + +- Everything from v1.9.0 onwards — catalogue resolution, column lineage, and + RDL — is out of scope for this release. +- Existing v1.1.0–v1.7.0 semantics are untouched; all prior fixtures remain + green. diff --git a/docs/RELEASE_NOTE_v1.8.0.md b/docs/RELEASE_NOTE_v1.8.0.md new file mode 100644 index 0000000..a6afc7c --- /dev/null +++ b/docs/RELEASE_NOTE_v1.8.0.md @@ -0,0 +1,95 @@ +# proc>flow v1.8.0 — Usable local workspace + +**Release date:** 2026-08-08 + +ProcFlow v1.8.0 makes the browser workspace usable across sessions. You can +**persist** your work so a reload brings back an identical analysis, and you +can **filter** the object-dependency diagram down to the objects that matter. + +Persistence is optional, opt-in, versioned, and exportable. Nothing is saved +to your browser unless you choose **Save to this browser** in the **Workspace** +menu, and saved workspaces are local-only, clearable, and portable as a JSON +file. Dependency filtering is presentation-only: it changes the view you look +at and export, never the underlying analysis graph or its confidence, coverage, +and diagnostics. + +The release remains local-first: SQL is analysed entirely in the browser and is +not uploaded, executed, or automatically persisted. + +## Highlights + +- **Opt-in workspace persistence.** The **Workspace** menu lets you Save to + this browser, Restore a saved workspace, Export/Import a workspace file, and + Forget a saved workspace. A Restore replays the exact files and analysis + options, so **save → reload produces an identical analysis**. +- **Versioned and migratable.** Stored workspaces carry a schema version; + older or incomplete snapshots migrate forward with safe defaults instead of + being dropped. +- **Corrupt-state recovery.** Malformed or unreadable stored data is recovered + cleanly — ProcFlow starts fresh rather than crashing or misloading. +- **Dependency filtering.** In **Object dependencies** scope, the + **Filter dependencies** panel toggles Reads/Writes/Calls edge kinds and + External/Temp node kinds, plus a Focus box that keeps an object and its + direct neighbours. Filtering is presentation-only — the analysis graph is + never changed. +- **Honest local-only guarantees.** The privacy disclosure, README, release + smoke test, and CI now state and verify that nothing is written to or + restored from storage on load; storage is confined to the opt-in + persistence module. + +## Correctness baseline + +- TypeScript type-checking and a clean generated build; +- 207 golden, graph, dependency, exporter, provenance, boundary, diagnostic, + confidence, export-parity, layout, and workspace tests; +- 400 deterministic mutation cases; +- 20 browser interaction and local-runtime tests; +- workspace persistence/filtering fixtures 13/13, export parity 20/20, layout + budgets 11/11, export traceability 69/69; and +- the fixture-corpus metric snapshot in `docs/metrics-v1.8.0.json`: 100 % + attribution, 100 % semantic-edge coverage, 100 % provenance, 100 % region-span + ratio, 100 % export-parity, 100 % export-traceability, 100 % layout budgets, + and 100 % workspace pass rate. + +GitHub Actions also checks that generated JavaScript is current, the vendored +Mermaid runtime remains pinned, runtime application files contain no external +URLs or network-submission APIs, browser storage is confined to the opt-in +persistence module, the local-file smoke test passes, and the metric snapshot +is current. + +## Compatibility and upgrade notes + +- **No automatic migration of your data — because there wasn't any.** ProcFlow + still does not persist anything unless you opt in. When you next use + **Save to this browser**, a v1.8.0-versioned snapshot is written; earlier + releases never wrote one. +- Exported `.drawio` files from v1.7.0 remain valid; nothing in the export + format changed. +- The local-only browser security model is unchanged. + +## Security and privacy (v1.8.0) + +- Nothing is uploaded, executed, or sent to any API. +- **Workspace persistence is opt-in and local:** a saved workspace lives only + in this browser's `localStorage`, is written only when you choose + **Save to this browser**, and is removed by **Forget saved workspace**. +- Saved workspaces are exportable as a JSON file and importable again, so they + never become locked to a single browser. +- The runtime touches storage in exactly one place — the opt-in persistence + module — and the release smoke test and CI assert that nothing is read or + written on load. + +## Known limitations + +- Parsing is heuristic rather than compiler-grade. +- Dynamic SQL remains opaque. +- Persistence uses the browser's `localStorage`; clearing browser site data + removes a saved workspace, and a saved workspace is not shared across + different browsers, profiles, or machines unless you export/import the file. +- Catalogue resolution, column lineage, and RDL remain scheduled for later + releases. + +Verify critical dependencies, execution paths, transaction behavior, and +security conclusions against the original SQL and target database. + +See [README.md](../README.md) for usage and development guidance. diff --git a/docs/metrics-v1.7.0.json b/docs/metrics-v1.8.0.json similarity index 89% rename from docs/metrics-v1.7.0.json rename to docs/metrics-v1.8.0.json index 590f9ce..92fd7fb 100644 --- a/docs/metrics-v1.7.0.json +++ b/docs/metrics-v1.8.0.json @@ -4,9 +4,10 @@ "corpus": { "golden": 107, "fuzz": 400, - "ui": 16, + "ui": 20, "parity": 10, - "layout": 11 + "layout": 11, + "workspace": 13 }, "attributionRate": 1, "unresolvedTokenRate": 0.04432, @@ -19,6 +20,7 @@ "exportParityPassRate": 1, "exportTraceabilityRate": 1, "layoutBudgetPassRate": 1, + "workspacePassRate": 1, "aggregate": { "totalTokens": 2685, "accountedTokens": 2685, diff --git a/examples/dbo.v180_demo.sql b/examples/dbo.v180_demo.sql new file mode 100644 index 0000000..93aff59 --- /dev/null +++ b/examples/dbo.v180_demo.sql @@ -0,0 +1,62 @@ +/* + v1.8.0 demo — usable local workspace. + + This multi-object script exercises the v1.8.0 territory (README post-v1.0.0 + item 7) in one script so you can try both new features in one pane: + + 1. Dependency filtering. Switch Scope to "Object dependencies", then use + Filter dependencies to inspect the estate: + - toggle Reads / Writes / Calls to hide a whole edge family; + - toggle External objects to hide the unmatched three-part name; + - toggle Temp tables to hide the "#stage" placeholder; + - type "stage" or "export" into Focus to keep only that object and its + direct neighbours. + Filtering is presentation-only: the underlying analysis graph is never + changed, so toggling a filter or clearing the focus never alters the + reported confidence, coverage, or diagnostics for the estate. + + 2. Persistence. Use the Workspace menu (opt-in, versioned, exportable): + - Save to this browser persists this workspace (files + analysis + options) to local storage; + - Restore saved workspace replays it into an identical analysis; + - Export workspace file / Import workspace file transfer it as JSON; + - Forget saved workspace removes it explicitly. + Nothing is written to or restored from storage on load. + + This demo is an illustration, not an input to the fixture-corpus metrics + (docs/metrics-v1.8.0.json). No user input or runtime telemetry is collected. +*/ +CREATE VIEW dbo.v180_export AS +SELECT Id, Name FROM dbo.Student; + +GO + +CREATE PROCEDURE dbo.v180_process @Year INT +AS +BEGIN + SET NOCOUNT ON; + + -- Reads dbo.v180_export, writes #stage (a temp-table placeholder). + SELECT Id INTO #stage FROM dbo.v180_export WHERE SchoolYear = @Year; + + -- Reads #stage, writes dbo.Student. + UPDATE s + SET s.Archived = 1 + FROM #stage st + JOIN dbo.Student s ON s.Id = st.Id; + + -- Calls a known object and an unmatched external three-part name. + EXEC dbo.v180_audit @Year; + SELECT Id FROM remotesrv.salesdb.dbo.SharedTable; + + RETURN 0; +END; + +GO + +CREATE PROCEDURE dbo.v180_audit @Year INT +AS +BEGIN + -- Reads only; no collaborators, so it is an isolated estate node. + SELECT COUNT(*) FROM dbo.Student WHERE SchoolYear = @Year; +END; diff --git a/index.html b/index.html index 6636f85..9371768 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,9 @@