diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d3ae881 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable released ProcFlow changes are recorded here. Detailed verification +evidence belongs in the canonical release note under `docs/releases/`. + +## v2.0.0 — Trustworthy SQL Analysis Contract + +- Added the cross-dialect adversarial semantic qualification matrix and its + fixture-only `dialectAdversarialSemanticAssertionRate` metric. +- Reject newer and corrupt saved workspace schemas without coercion, mutation, + or automatic deletion. +- Finalised the v2 accuracy and compatibility contract. + +## v1.14.1 — Targeted correctness patch + +- Preserved named PL/pgSQL `LATERAL` sources. +- Kept DB2 `PREPARE`/`EXECUTE` dynamic SQL opaque instead of asserting an + object read or procedure call. +- Preserved unique sequential DB2 `SESSION.` temporary-table data flow. + +See [the v1.14.1 release note](docs/releases/v1.14.1.md) and the +[accuracy audit](docs/ACCURACY_GAPS.md) for the reproductions and verification +record. diff --git a/README.md b/README.md index d480cd3..1d5b31a 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ browser: no backend, database connection, sign-in, or installation is required. > database compiler. Treat diagrams as investigation aids and verify important > findings against the source SQL and target database. +> **Trust model:** ProcFlow v2.0.0 asserts semantic relationships only where +> static evidence supports them. Dynamic and ambiguous regions stay explicit. +> See [Accuracy](docs/ACCURACY.md) and the [v2 accuracy contract](docs/V2_ACCURACY_CONTRACT.md). + ## Use cases - **DBAs:** review procedures, functions, triggers, views, transactions, @@ -34,7 +38,7 @@ browser: no backend, database connection, sign-in, or installation is required. ## Quick start -1. Download the `v1.14.1` runtime ZIP from the [GitHub release](https://github.com/ikelaiah/ProcFlow/releases/tag/v1.14.1), or clone this repository. +1. Download the `v2.0.0` runtime ZIP from the [GitHub release](https://github.com/ikelaiah/ProcFlow/releases/tag/v2.0.0), or clone this repository. 2. Open `index.html` in a current Chromium, Firefox, or Edge browser. 3. Paste SQL or import local files, select a dialect or **Auto**, and choose **Refresh**. @@ -66,7 +70,7 @@ in the browser. ## Supported dialects -ProcFlow v1.14.1 supports Microsoft T-SQL, IBM DB2 SQL PL, PostgreSQL +ProcFlow v2.0.0 supports Microsoft T-SQL, IBM DB2 SQL PL, PostgreSQL PL/pgSQL, and SQLite. Detection is automatic but can be overridden. Vendor extensions outside these tested constructs may produce diagnostics or reduced coverage; see [Accuracy](docs/ACCURACY.md). @@ -90,7 +94,11 @@ suite, and hostile labels are escaped for diagram/XML output. Read the full packaging. - [Benchmarks](docs/BENCHMARKS.md) — scale fixtures and indicative observations. - [Release history](docs/RELEASES.md) — versioning and release notes. -- [v1.14.1 release note](docs/releases/v1.14.1.md) — current patch details. +- [Changelog](CHANGELOG.md) — concise release history and current qualification + status. +- [v2.0.0 accuracy contract](docs/V2_ACCURACY_CONTRACT.md) — stable guarantees, + semantics, compatibility, and qualification evidence. +- [v2.0.0 release note](docs/releases/v2.0.0.md) — current release details. - [Roadmap](ROADMAP.md) — planned convergence work. ## Contributing diff --git a/ROADMAP.md b/ROADMAP.md index 1426f8d..4be75ed 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -233,7 +233,7 @@ v1.11.0, item 4 → v1.12.0.** | v1.12.0 | Report import | README 4 (RDL import + dataset linking); E report diagnostics | | v1.13.0 | Report intelligence | report → dataset → object → column views; F report export | | v1.14.0 | Scale and convergence | large-graph layout; full regression; metrics finalization | -| v2.0.0 | Final convergence | accuracy contract; README + release notes; all fixtures green | +| v2.0.0 | Final convergence | final accuracy contract; adversarial semantic matrix + metric; future-schema compatibility; README + release notes | ### v1.1.0 — Trustworthy semantic foundation @@ -421,13 +421,17 @@ v1.11.0, item 4 → v1.12.0.** ### v2.0.0 — Final convergence -- **Ships:** the v2.0.0 accuracy contract; README and release notes updated to - the contract; final verification that workstreams P and A–F and every README - post-v1.0.0 item scheduled here are delivered. -- **Deferred:** nothing — this is the convergence release. -- **Exit criteria:** all unaffected v1.0.0–v1.14.0 fixtures pass unchanged; - intentional corrected goldens are documented with their accuracy rationale; - every roadmap item is delivered and documented; full CI gate green. +**Delivered in v2.0.0.** + +- **Accuracy contract:** finalised in `docs/V2_ACCURACY_CONTRACT.md` with + conservative semantic edge, provenance, diagnostic, confidence, export, and + local-first privacy guarantees. +- **Adversarial qualification:** 15 synthetic cross-dialect cases assert 56 + required and forbidden semantics. The checked-in v2 metric publishes + `dialectAdversarialSemanticAssertionRate = 1.0` with transparent counts. +- **Workspace compatibility:** schema 2 migration remains deterministic for + older snapshots; unsupported future and corrupt saved workspaces are rejected + non-destructively until the user explicitly forgets them. ## Test and verification strategy diff --git a/dist/src/app.js b/dist/src/app.js index 94e7986..9e16a40 100644 --- a/dist/src/app.js +++ b/dist/src/app.js @@ -1001,7 +1001,16 @@ $('btn-ws-restore').onclick = function () { var snap = readWorkspace(); if (!snap) { - flash($('btn-ws-restore'), 'None saved'); + if (workspaceLastError() === 'future_workspace_version') { + showMsg('This workspace was created by a newer unsupported ProcFlow version. It was not changed; upgrade ProcFlow before restoring it.'); + flash($('btn-ws-restore'), 'Newer version'); + } + else if (workspaceLastError()) { + showMsg('The saved workspace could not be read. It was not changed; use Forget only if you want to remove it.'); + flash($('btn-ws-restore'), 'Unreadable'); + } + else + flash($('btn-ws-restore'), 'None saved'); return; } applySnapshot(snap); @@ -1032,7 +1041,9 @@ file.text().then(function (text) { var parsed = parseWorkspace(text); if (parsed.error || !parsed.snapshot) { - showMsg('That file is not a valid ProcFlow workspace export.'); + showMsg(parsed.error === 'future_workspace_version' + ? 'This workspace was created by a newer unsupported ProcFlow version. It was not imported or changed; upgrade ProcFlow before opening it.' + : 'That file is not a valid ProcFlow workspace export.'); return; } applySnapshot(parsed.snapshot); diff --git a/dist/src/app.js.map b/dist/src/app.js.map index e7eafb2..99d70fc 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 index 3af97cf..96c1cc9 100644 --- a/dist/src/workspace.js +++ b/dist/src/workspace.js @@ -7,8 +7,8 @@ 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. + the app. A workspace made by a newer schema is rejected without being + rewritten or deleted; treating it as old data could lose unknown fields. Dependency filtering is presentation-only: filterDependencyGraph derives a filtered copy at render time and never mutates the underlying estate graph. @@ -22,6 +22,7 @@ it. */ var WORKSPACE_SCHEMA_VERSION = 2; var WORKSPACE_STORAGE_KEY = 'procflow.workspace'; /* schema base key; versioned payload */ +var WORKSPACE_LAST_ERROR = null; var DIALECT_SELECT_ORDER = ['auto', 'tsql', 'db2', 'plpgsql', 'sqlite']; function defaultWorkspaceOptions() { return { @@ -100,8 +101,8 @@ function migrateWorkspace(raw) { 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. */ + Older versions migrate deterministically. A newer version is rejected before + migration so no field is dropped, coerced, or reinterpreted as schema 2. */ function parseWorkspace(json) { var raw; try { @@ -113,6 +114,8 @@ function parseWorkspace(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; + if (version > WORKSPACE_SCHEMA_VERSION) + return { snapshot: null, migrated: false, error: 'future_workspace_version' }; var migrated = version !== WORKSPACE_SCHEMA_VERSION; var snapshot = migrateWorkspace(raw); if (!snapshot.files.length && !snapshot.activeObjectId) @@ -124,22 +127,26 @@ function parseWorkspace(json) { function readWorkspace() { try { var raw = window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + WORKSPACE_LAST_ERROR = null; if (!raw) return null; var parsed = parseWorkspace(raw); if (parsed.error || !parsed.snapshot) { - try { - window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); - } - catch (e) { } + WORKSPACE_LAST_ERROR = parsed.error || 'not_workspace'; + /* Any rejected workspace may contain user source or future fields. Keep + its exact bytes until the user explicitly forgets it or upgrades. */ return null; } return parsed.snapshot; } catch (e) { + WORKSPACE_LAST_ERROR = 'storage_unavailable'; return null; } } +function workspaceLastError() { + return WORKSPACE_LAST_ERROR; +} function hasSavedWorkspace() { try { return !!window.localStorage.getItem(WORKSPACE_STORAGE_KEY); @@ -151,6 +158,7 @@ function hasSavedWorkspace() { function writeWorkspace(snapshot) { try { window.localStorage.setItem(WORKSPACE_STORAGE_KEY, serializeWorkspace(snapshot)); + WORKSPACE_LAST_ERROR = null; return true; } catch (e) { @@ -162,6 +170,7 @@ function clearWorkspace() { window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); } catch (e) { } + WORKSPACE_LAST_ERROR = null; } function workspaceExportText() { var snap = readWorkspace(); diff --git a/dist/src/workspace.js.map b/dist/src/workspace.js.map index 94e78f6..9aee2b1 100644 --- a/dist/src/workspace.js.map +++ b/dist/src/workspace.js.map @@ -1 +1 @@ -{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/workspace.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"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/adversarial-matrix.js b/dist/tests/adversarial-matrix.js new file mode 100644 index 0000000..3748323 --- /dev/null +++ b/dist/tests/adversarial-matrix.js @@ -0,0 +1,193 @@ +"use strict"; +/* v2.0.0 semantic qualification matrix. Fixtures are synthetic and deterministic. + Required assertions prove supported facts; forbidden assertions guard against + false semantic claims that ordinary attribution/coverage cannot detect. */ +(function () { + var fixtures = [ + { name: 'dynamic EXEC has no static call or object dependency', dialect: 'tsql', + sql: 'CREATE PROCEDURE dbo.dynamic_exec AS BEGIN DECLARE @q nvarchar(max); EXEC(@q); EXEC @q; END', checks: [ + { kind: 'opaque', must: 'present', text: 'Dynamic SQL — EXEC(@q)', span: true }, + { kind: 'opaque', must: 'present', text: 'Dynamic SQL — EXEC @q', span: true }, + { kind: 'diagnostic', must: 'present', code: 'dynamic_sql', scope: 'region', severity: 'warning', span: true }, + { kind: 'estate', must: 'absent', relation: 'calls', object: '@q' }, + { kind: 'estate', must: 'absent', relation: 'reads', object: '@q' }, + { kind: 'edge', must: 'present', from: 'DECLARE @q', to: 'Dynamic SQL — EXEC(@q)', edgeKind: 'control' } + ] }, + { name: 'branch reaching definitions do not invent temp data flow', dialect: 'tsql', + sql: 'CREATE PROCEDURE dbo.branch_temp AS BEGIN IF @x=1 SELECT id INTO #t FROM dbo.a; ELSE SELECT id INTO #t FROM dbo.b; SELECT id FROM #t; END', checks: [ + { kind: 'diagnostic', must: 'present', code: 'temp_flow_ambiguous', scope: 'region', severity: 'info', span: true }, + { kind: 'diagnostic', must: 'present', code: 'column_flow_opaque', scope: 'region', severity: 'warning', span: true }, + { kind: 'edge', must: 'absent', from: 'SELECT … INTO #t', to: 'SELECT … FROM #t', edgeKind: 'data' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'dbo.a' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'dbo.b' } + ] }, + { name: 'ambiguous column names remain unbound', dialect: 'tsql', + sql: 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;', checks: [ + { kind: 'columnRef', must: 'present', text: 'id', resolution: 'ambiguous', span: true }, + { kind: 'columnOutput', must: 'present', text: 'id', resolution: 'ambiguous' }, + { kind: 'columnOutput', must: 'absent', text: 'id', binding: 'a.id' }, + { kind: 'diagnostic', must: 'present', code: 'column_ambiguous', scope: 'region', severity: 'warning', span: true } + ] }, + { name: 'UPDATE FROM retains both read sources', dialect: 'tsql', + sql: 'UPDATE t SET x=s.x FROM dbo.target t JOIN dbo.source s ON s.id=t.id;', checks: [ + { kind: 'estate', must: 'present', relation: 'reads', object: 'dbo.target' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'dbo.source' }, + { kind: 'estate', must: 'present', relation: 'writes', object: 't' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] }, + { name: 'static procedure invocation creates a call edge', dialect: 'tsql', + sql: 'CREATE PROCEDURE dbo.static_call AS BEGIN EXEC dbo.audit_refresh; END', checks: [ + { kind: 'estate', must: 'present', relation: 'calls', object: 'dbo.audit_refresh' }, + { kind: 'estateEdge', must: 'present', edgeKind: 'call' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] }, + { name: 'resolved columns retain explicit bindings', dialect: 'tsql', + sql: 'SELECT s.id FROM dbo.student s;', checks: [ + { kind: 'columnRef', must: 'present', text: 'id', resolution: 'exact', span: true }, + { kind: 'columnOutput', must: 'present', text: 'id', resolution: 'exact', binding: 's.id' } + ] }, + { name: 'named LATERAL source and recursive CTE remain visible', dialect: 'plpgsql', + sql: 'WITH RECURSIVE r(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM r WHERE n<3) SELECT x.id FROM (SELECT id FROM app.base) x JOIN LATERAL app.expand_rows(x.id) e ON true;', checks: [ + { kind: 'estate', must: 'present', relation: 'reads', object: 'app.base' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'app.expand_rows' }, + { kind: 'diagnostic', must: 'present', code: 'cte_recursive', scope: 'region', severity: 'info', span: true }, + { kind: 'diagnostic', must: 'absent', code: 'source_opaque' } + ] }, + { name: 'PL/pgSQL EXECUTE remains opaque', dialect: 'plpgsql', + sql: 'CREATE FUNCTION app.run_dynamic(q text) RETURNS void LANGUAGE plpgsql AS $$ BEGIN EXECUTE q; END; $$;', checks: [ + { kind: 'opaque', must: 'present', text: 'Dynamic SQL — EXECUTE q', span: true }, + { kind: 'diagnostic', must: 'present', code: 'dynamic_sql', scope: 'region', severity: 'warning', span: true }, + { kind: 'estate', must: 'absent', relation: 'calls', object: 'q' }, + { kind: 'estate', must: 'absent', relation: 'reads', object: 'q' } + ] }, + { name: 'PL/pgSQL handler edge is explicitly exceptional', dialect: 'plpgsql', + sql: 'CREATE FUNCTION app.handle() RETURNS void LANGUAGE plpgsql AS $$ BEGIN BEGIN RAISE unique_violation; EXCEPTION WHEN unique_violation THEN PERFORM app.log_unique(); END; END; $$;', checks: [ + { kind: 'edge', must: 'present', from: 'RAISE unique_violation', to: 'EXCEPTION WHEN unique_violation', edgeKind: 'exception' }, + { kind: 'estate', must: 'present', relation: 'calls', object: 'app.log_unique' } + ] }, + { name: 'DELETE USING preserves static source', dialect: 'plpgsql', + sql: 'DELETE FROM app.target t USING app.source s WHERE s.id=t.id;', checks: [ + { kind: 'estate', must: 'present', relation: 'reads', object: 'app.source' }, + { kind: 'estate', must: 'present', relation: 'writes', object: 'app.target' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] }, + { name: 'PREPARE EXECUTE forbids invented statement objects', dialect: 'db2', + sql: 'CREATE PROCEDURE APP.PREPARED() LANGUAGE SQL BEGIN PREPARE stmt FROM statement_text; EXECUTE stmt; END', checks: [ + { kind: 'opaque', must: 'present', text: 'Dynamic SQL — EXECUTE stmt', span: true }, + { kind: 'diagnostic', must: 'present', code: 'dynamic_sql', scope: 'region', severity: 'warning', span: true }, + { kind: 'edge', must: 'present', from: 'PREPARE stmt FROM statement_text', to: 'Dynamic SQL — EXECUTE stmt', edgeKind: 'control' }, + { kind: 'estate', must: 'absent', relation: 'calls', object: 'stmt' }, + { kind: 'estate', must: 'absent', relation: 'reads', object: 'statement_text' } + ] }, + { name: 'SESSION temporary table has a unique producer data edge', dialect: 'db2', + sql: 'CREATE PROCEDURE APP.TEMP_FLOW() LANGUAGE SQL BEGIN DECLARE GLOBAL TEMPORARY TABLE SESSION.WORK (ID INTEGER); INSERT INTO SESSION.WORK SELECT ID FROM APP.SOURCE_ROWS; SELECT ID FROM SESSION.WORK; END', checks: [ + { kind: 'edge', must: 'present', from: 'INSERT INTO SESSION.WORK', to: 'SELECT … FROM SESSION.WORK', edgeKind: 'data' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'APP.SOURCE_ROWS' }, + { kind: 'estate', must: 'present', relation: 'reads', object: 'SESSION.WORK' }, + { kind: 'estate', must: 'present', relation: 'writes', object: 'SESSION.WORK' } + ] }, + { name: 'DB2 MERGE preserves target and source identities', dialect: 'db2', + sql: 'MERGE INTO APP.TARGET t USING APP.SOURCE s ON t.ID=s.ID WHEN MATCHED THEN UPDATE SET VALUE=s.VALUE;', checks: [ + { kind: 'estate', must: 'present', relation: 'reads', object: 'APP.SOURCE' }, + { kind: 'estate', must: 'present', relation: 'writes', object: 'APP.TARGET' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] }, + { name: 'SQLite savepoint and trigger update are source-traceable', dialect: 'sqlite', + sql: 'CREATE TRIGGER audit_change AFTER UPDATE ON item BEGIN SAVEPOINT s; UPDATE item SET checked=1 WHERE id=NEW.id; RELEASE s; END;', checks: [ + { kind: 'node', must: 'present', text: 'SAVEPOINT s', provenance: 'source', span: true }, + { kind: 'edge', must: 'present', from: 'SAVEPOINT s', to: 'UPDATE item', edgeKind: 'control' }, + { kind: 'estate', must: 'present', relation: 'writes', object: 'item' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] }, + { name: 'catalogue conflict remains explicit rather than verified', dialect: 'tsql', catalogue: 'dbo.a TABLE\ndbo.a TABLE', + sql: 'SELECT id FROM dbo.a;', checks: [ + { kind: 'diagnostic', must: 'present', code: 'catalogue_conflict', scope: 'region', severity: 'warning', span: true }, + { kind: 'node', must: 'present', text: 'dbo.a' }, + { kind: 'diagnostic', must: 'absent', code: 'dynamic_sql' } + ] } + ]; + function same(a, b) { return String(a || '').toUpperCase() === String(b || '').toUpperCase(); } + function spanOk(span, sql) { return !!span && span.start >= 0 && span.end > span.start && span.end <= sql.length; } + function matchedNodes(g, text) { return g.nodes.filter(function (n) { return n.text.indexOf(text) >= 0; }); } + function label(c) { + if (c.kind === 'estate') + return (c.relation || 'relation') + ' ' + (c.object || ''); + if (c.kind === 'estateEdge') + return 'estate ' + (c.edgeKind || 'edge'); + if (c.kind === 'edge') + return (c.edgeKind || 'edge') + ' ' + (c.from || '') + ' -> ' + (c.to || ''); + if (c.kind === 'diagnostic') + return 'diagnostic ' + (c.code || ''); + return c.kind + ' ' + (c.text || ''); + } + function check(c, r, e, f) { + if (c.kind === 'node' || c.kind === 'opaque') { + var ns = matchedNodes(r.graph, c.text || '').filter(function (n) { + return (c.kind !== 'opaque' || n.cls === 'opaque') && + (c.provenance === undefined || n.provenance === c.provenance) && (!c.span || spanOk(n.source, f.sql)); + }); + return { found: ns.length > 0, actual: ns.map(function (n) { return { text: n.text, cls: n.cls, provenance: n.provenance, source: n.source }; }) }; + } + if (c.kind === 'edge') { + var from = matchedNodes(r.graph, c.from || ''), to = matchedNodes(r.graph, c.to || ''); + var es = r.graph.edges.filter(function (x) { return from.some(function (n) { return n.id === x.from; }) && to.some(function (n) { return n.id === x.to; }) && (!c.edgeKind || x.kind === c.edgeKind); }); + return { found: es.length > 0, actual: es }; + } + if (c.kind === 'estate') { + var values = []; + e.objects.forEach(function (o) { values = values.concat(o[c.relation || 'reads'] || []); }); + return { found: values.some(function (v) { return same(v, c.object); }), actual: values }; + } + if (c.kind === 'estateEdge') { + var estateEdges = e.graph.edges.filter(function (x) { return !c.edgeKind || x.kind === c.edgeKind; }); + return { found: estateEdges.length > 0, actual: estateEdges }; + } + if (c.kind === 'diagnostic') { + var ds = r.diagnostics.filter(function (d) { return d.code === c.code && (!c.scope || d.scope === c.scope) && (!c.severity || d.severity === c.severity) && (!c.span || spanOk(d.span, f.sql)); }); + return { found: ds.length > 0, actual: r.diagnostics }; + } + var l = r.columns || []; + if (c.kind === 'columnRef') { + var refs = []; + l.forEach(function (x) { refs = refs.concat(x.references || []); }); + var rs = refs.filter(function (x) { return same(x.name, c.text) && (!c.resolution || x.resolution === c.resolution) && (!c.span || spanOk(x.span, f.sql)); }); + return { found: rs.length > 0, actual: refs }; + } + var out = []; + l.forEach(function (x) { out = out.concat(x.outputs || []); }); + var os = out.filter(function (x) { var bs = x.bindings.map(function (b) { return b.source + '.' + b.column; }); return same(x.name, c.text) && (!c.resolution || x.resolution === c.resolution) && (!c.binding || bs.some(function (b) { return same(b, c.binding); })); }); + return { found: os.length > 0, actual: out }; + } + var passed = 0, total = 0, required = 0, forbidden = 0, failures = []; + var byDialect = {}; + fixtures.forEach(function (f) { + if (!byDialect[f.dialect]) + byDialect[f.dialect] = { cases: 0, assertions: 0, required: 0, forbidden: 0 }; + byDialect[f.dialect].cases++; + var cat = f.catalogue ? parseCatalogue(f.catalogue) : null; + var opts = { dialect: f.dialect, mode: 'flow', group: false, sources: true, fanIn: true, catalogue: cat && cat.catalogue, catalogueDiagnostics: cat && cat.diagnostics }; + var r = analyse(f.sql, opts), e = analyseEstate([{ name: 'matrix.sql', text: f.sql }], opts); + f.checks.forEach(function (c) { + total++; + byDialect[f.dialect].assertions++; + if (c.must === 'present') { + required++; + byDialect[f.dialect].required++; + } + else { + forbidden++; + byDialect[f.dialect].forbidden++; + } + var result = check(c, r, e, f), ok = c.must === 'present' ? result.found : !result.found; + if (ok) { + passed++; + return; + } + failures.push({ dialect: f.dialect, case: f.name, assertion: label(c), expected: c.must, actual: result.actual }); + }); + }); + window.PROCFLOW_ADVERSARIAL_RESULT = { passed: passed, total: total, rate: total ? passed / total : 1, caseCount: fixtures.length, required: required, forbidden: forbidden, byDialect: byDialect }; + window.PROCFLOW_ADVERSARIAL_FAILURES = failures; + window.PROCFLOW_ADVERSARIAL_PASS = passed === total; +})(); +//# sourceMappingURL=adversarial-matrix.js.map \ No newline at end of file diff --git a/dist/tests/adversarial-matrix.js.map b/dist/tests/adversarial-matrix.js.map new file mode 100644 index 0000000..76bc1de --- /dev/null +++ b/dist/tests/adversarial-matrix.js.map @@ -0,0 +1 @@ +{"version":3,"file":"adversarial-matrix.js","sourceRoot":"","sources":["../../tests/adversarial-matrix.ts"],"names":[],"mappings":";AAAA;;6EAE6E;AAC7E,CAAC;IAOC,IAAI,QAAQ,GAAY;QACtB,EAAC,IAAI,EAAC,sDAAsD,EAAC,OAAO,EAAC,MAAM;YACzE,GAAG,EAAC,6FAA6F,EAAC,MAAM,EAAC;gBACvG,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,wBAAwB,EAAC,IAAI,EAAC,IAAI,EAAC;gBACtE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,uBAAuB,EAAC,IAAI,EAAC,IAAI,EAAC;gBACrE,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;gBACjG,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC;gBAC1D,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC;gBAC1D,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,EAAC,EAAE,EAAC,wBAAwB,EAAC,QAAQ,EAAC,SAAS,EAAC;aAAC,EAAC;QACnG,EAAC,IAAI,EAAC,0DAA0D,EAAC,OAAO,EAAC,MAAM;YAC7E,GAAG,EAAC,2IAA2I,EAAC,MAAM,EAAC;gBACrJ,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,qBAAqB,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;gBACtG,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;gBACxG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,kBAAkB,EAAC,EAAE,EAAC,kBAAkB,EAAC,QAAQ,EAAC,MAAM,EAAC;gBACzF,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC;gBAC9D,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC;aAAC,EAAC;QACpE,EAAC,IAAI,EAAC,uCAAuC,EAAC,OAAO,EAAC,MAAM;YAC1D,GAAG,EAAC,sDAAsD,EAAC,MAAM,EAAC;gBAChE,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC;gBAC5E,EAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC;gBACrE,EAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC;gBAC5D,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,kBAAkB,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;aAAC,EAAC;QAC5G,EAAC,IAAI,EAAC,uCAAuC,EAAC,OAAO,EAAC,MAAM;YAC1D,GAAG,EAAC,sEAAsE,EAAC,MAAM,EAAC;gBAChF,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,YAAY,EAAC;gBACnE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,YAAY,EAAC;gBACnE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,GAAG,EAAC;gBAC3D,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;QAC1D,EAAC,IAAI,EAAC,iDAAiD,EAAC,OAAO,EAAC,MAAM;YACpE,GAAG,EAAC,uEAAuE,EAAC,MAAM,EAAC;gBACjF,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,mBAAmB,EAAC;gBAC1E,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,MAAM,EAAC;gBAClD,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;QAC1D,EAAC,IAAI,EAAC,2CAA2C,EAAC,OAAO,EAAC,MAAM;YAC9D,GAAG,EAAC,iCAAiC,EAAC,MAAM,EAAC;gBAC3C,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC;gBACxE,EAAC,IAAI,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC;aAAC,EAAC;QACtF,EAAC,IAAI,EAAC,uDAAuD,EAAC,OAAO,EAAC,SAAS;YAC7E,GAAG,EAAC,oKAAoK,EAAC,MAAM,EAAC;gBAC9K,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC;gBACjE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,iBAAiB,EAAC;gBACxE,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC;gBAChG,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,eAAe,EAAC;aAAC,EAAC;QAC5D,EAAC,IAAI,EAAC,iCAAiC,EAAC,OAAO,EAAC,SAAS;YACvD,GAAG,EAAC,uGAAuG,EAAC,MAAM,EAAC;gBACjH,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,yBAAyB,EAAC,IAAI,EAAC,IAAI,EAAC;gBACvE,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;gBACjG,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,EAAC;gBACzD,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,GAAG,EAAC;aAAC,EAAC;QAC/D,EAAC,IAAI,EAAC,iDAAiD,EAAC,OAAO,EAAC,SAAS;YACvE,GAAG,EAAC,mLAAmL,EAAC,MAAM,EAAC;gBAC7L,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,wBAAwB,EAAC,EAAE,EAAC,iCAAiC,EAAC,QAAQ,EAAC,WAAW,EAAC;gBACpH,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,gBAAgB,EAAC;aAAC,EAAC;QAC7E,EAAC,IAAI,EAAC,sCAAsC,EAAC,OAAO,EAAC,SAAS;YAC5D,GAAG,EAAC,8DAA8D,EAAC,MAAM,EAAC;gBACxE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,YAAY,EAAC;gBACnE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,YAAY,EAAC;gBACpE,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;QAC1D,EAAC,IAAI,EAAC,oDAAoD,EAAC,OAAO,EAAC,KAAK;YACtE,GAAG,EAAC,wGAAwG,EAAC,MAAM,EAAC;gBAClH,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,4BAA4B,EAAC,IAAI,EAAC,IAAI,EAAC;gBAC1E,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;gBACjG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,kCAAkC,EAAC,EAAE,EAAC,4BAA4B,EAAC,QAAQ,EAAC,SAAS,EAAC;gBACvH,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC;gBAC5D,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,gBAAgB,EAAC;aAAC,EAAC;QAC5E,EAAC,IAAI,EAAC,yDAAyD,EAAC,OAAO,EAAC,KAAK;YAC3E,GAAG,EAAC,yMAAyM,EAAC,MAAM,EAAC;gBACnN,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,0BAA0B,EAAC,EAAE,EAAC,4BAA4B,EAAC,QAAQ,EAAC,MAAM,EAAC;gBAC5G,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,iBAAiB,EAAC;gBACxE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,cAAc,EAAC;gBACrE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,cAAc,EAAC;aAAC,EAAC;QAC5E,EAAC,IAAI,EAAC,kDAAkD,EAAC,OAAO,EAAC,KAAK;YACpE,GAAG,EAAC,qGAAqG,EAAC,MAAM,EAAC;gBAC/G,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,YAAY,EAAC;gBACnE,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,YAAY,EAAC;gBACpE,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;QAC1D,EAAC,IAAI,EAAC,0DAA0D,EAAC,OAAO,EAAC,QAAQ;YAC/E,GAAG,EAAC,gIAAgI,EAAC,MAAM,EAAC;gBAC1I,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC;gBAC7E,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa,EAAC,EAAE,EAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAC;gBACnF,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC;gBAC9D,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;QAC1D,EAAC,IAAI,EAAC,0DAA0D,EAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAC,0BAA0B;YAClH,GAAG,EAAC,uBAAuB,EAAC,MAAM,EAAC;gBACjC,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,oBAAoB,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC;gBACxG,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC;gBACzC,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,aAAa,EAAC;aAAC,EAAC;KAC3D,CAAC;IACF,SAAS,IAAI,CAAC,CAAkB,EAAC,CAAkB,IAAU,OAAO,MAAM,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAG,MAAM,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC;IAC/H,SAAS,MAAM,CAAC,IAA8B,EAAC,GAAU,IAAU,OAAO,CAAC,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,IAAE,CAAC,IAAE,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,KAAK,IAAE,IAAI,CAAC,GAAG,IAAE,GAAG,CAAC,MAAM,CAAC,CAAA,CAAC;IAC5I,SAAS,YAAY,CAAC,CAAO,EAAC,IAAW,IAAc,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC;IAC5H,SAAS,KAAK,CAAC,CAAO;QACpB,IAAG,CAAC,CAAC,IAAI,KAAG,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAE,UAAU,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,CAAC,MAAM,IAAE,EAAE,CAAC,CAAC;QACzE,IAAG,CAAC,CAAC,IAAI,KAAG,YAAY;YAAE,OAAO,SAAS,GAAC,CAAC,CAAC,CAAC,QAAQ,IAAE,MAAM,CAAC,CAAC;QAChE,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAE,MAAM,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,GAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,IAAE,EAAE,CAAC,CAAC;QACnF,IAAG,CAAC,CAAC,IAAI,KAAG,YAAY;YAAE,OAAO,aAAa,GAAC,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC,IAAI,GAAC,GAAG,GAAC,CAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,SAAS,KAAK,CAAC,CAAO,EAAC,CAAgB,EAAC,CAAc,EAAC,CAAS;QAC9D,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,CAAC,IAAI,KAAG,QAAQ,EAAC,CAAC;YACrC,IAAI,EAAE,GAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAG,QAAQ,IAAE,CAAC,CAAC,GAAG,KAAG,QAAQ,CAAC;oBACrG,CAAC,CAAC,CAAC,UAAU,KAAG,SAAS,IAAE,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC;YAChG,OAAO,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,EAAE,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC,GAAG,EAAC,UAAU,EAAC,CAAC,CAAC,UAAU,EAAC,MAAM,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC;QACjI,CAAC;QACD,IAAG,CAAC,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;YAClB,IAAI,IAAI,GAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,IAAI,IAAE,EAAE,CAAC,EAAC,EAAE,GAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,EAAE,IAAE,EAAE,CAAC,CAAC;YAC5E,IAAI,EAAE,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC/K,OAAO,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAC,CAAC;QACvC,CAAC;QACD,IAAG,CAAC,CAAC,IAAI,KAAG,QAAQ,EAAC,CAAC;YACpB,IAAI,MAAM,GAAU,EAAE,CAAC;YAAA,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,MAAM,GAAC,MAAM,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAE,OAAO,CAAc,IAAE,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YACvH,OAAO,EAAC,KAAK,EAAC,MAAM,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,EAAC,MAAM,EAAC,MAAM,EAAC,CAAC;QAClF,CAAC;QACD,IAAG,CAAC,CAAC,IAAI,KAAG,YAAY,EAAC,CAAC;YACxB,IAAI,WAAW,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC,CAAC;YAC5F,OAAO,EAAC,KAAK,EAAC,WAAW,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,CAAC;QACzD,CAAC;QACD,IAAG,CAAC,CAAC,IAAI,KAAG,YAAY,EAAC,CAAC;YACxB,IAAI,EAAE,GAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,KAAG,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,KAAK,KAAG,CAAC,CAAC,KAAK,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC1K,OAAO,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,WAAW,EAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,IAAE,EAAE,CAAC;QACpB,IAAG,CAAC,CAAC,IAAI,KAAG,WAAW,EAAC,CAAC;YACvB,IAAI,IAAI,GAAmB,EAAE,CAAC;YAAA,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,IAAI,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAE,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC1F,IAAI,EAAE,GAAC,IAAI,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAE,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC5I,OAAO,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC;QACzC,CAAC;QACD,IAAI,GAAG,GAAgB,EAAE,CAAC;QAAA,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QACjF,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,IAAI,EAAE,GAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,MAAM,GAAC,GAAG,GAAC,CAAC,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAE,CAAC,CAAC,UAAU,KAAG,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAE,EAAE,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;QAC3O,OAAO,EAAC,KAAK,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,GAAC,CAAC,EAAC,KAAK,GAAC,CAAC,EAAC,QAAQ,GAAC,CAAC,EAAC,SAAS,GAAC,CAAC,EAAC,QAAQ,GAAsF,EAAE,CAAC;IAC7I,IAAI,SAAS,GAAkF,EAAE,CAAC;IAClG,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC;QACzB,IAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAC,EAAC,KAAK,EAAC,CAAC,EAAC,UAAU,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC;QAC7F,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,GAAG,GAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;QACrD,IAAI,IAAI,GAAgB,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,SAAS,EAAC,GAAG,IAAE,GAAG,CAAC,SAAS,EAAC,oBAAoB,EAAC,GAAG,IAAE,GAAG,CAAC,WAAW,EAAC,CAAC;QACnK,IAAI,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,CAAC,GAAC,aAAa,CAAC,CAAC,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC;YAAE,KAAK,EAAE,CAAC;YAAA,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAAA,IAAG,CAAC,CAAC,IAAI,KAAG,SAAS,EAAC,CAAC;gBAAA,QAAQ,EAAE,CAAC;gBAAA,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YAAA,CAAC;iBAAI,CAAC;gBAAA,SAAS,EAAE,CAAC;gBAAA,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;YAAA,CAAC;YAC3L,IAAI,MAAM,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,IAAI,KAAG,SAAS,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC,MAAM,CAAC,KAAK,CAAC;YAAA,IAAG,EAAE,EAAC,CAAC;gBAAA,MAAM,EAAE,CAAC;gBAAA,OAAO;YAAA,CAAC;YACnG,QAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,SAAS,EAAC,KAAK,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,IAAI,EAAC,MAAM,EAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,2BAA2B,GAAC,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,CAAA,CAAC,CAAA,MAAM,GAAC,KAAK,CAAA,CAAC,CAAA,CAAC,EAAC,SAAS,EAAC,QAAQ,CAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,SAAS,EAAC,CAAC;IAC7K,MAAM,CAAC,6BAA6B,GAAC,QAAQ,CAAC;IAAA,MAAM,CAAC,yBAAyB,GAAC,MAAM,KAAG,KAAK,CAAC;AAChG,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js index 0722f78..cb47127 100644 --- a/dist/tests/metrics.js +++ b/dist/tests/metrics.js @@ -8,11 +8,12 @@ lineage pass rate from tests/columns.ts, the v1.11.0 column-flow pass rate from tests/column-flow.ts, the v1.12.0 report-import pass rate from tests/report.ts, and the v1.13.0 report-graph pass rate from - tests/report-graph.ts. v1.14.1 scalability and realistic-corpus invariants + tests/report-graph.ts. v2.0.0 adds adversarial semantic qualification beside + the existing scalability and realistic-corpus invariants. are published separately. 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.14.1.json. */ + produce or verify the active release metric snapshot. */ (function () { var corpus = PROCFLOW_FIXTURES || []; var totalTokens = 0, attributedAll = 0, unresolvedTokens = 0, opaqueTokens = 0, tailUnconsumed = 0; @@ -113,7 +114,9 @@ scalability: window.PROCFLOW_SCALABILITY_RESULT ? window.PROCFLOW_SCALABILITY_RESULT.total : 0, realistic: window.PROCFLOW_REALISTIC_CORPUS_RESULT - ? window.PROCFLOW_REALISTIC_CORPUS_RESULT.total : 0 + ? window.PROCFLOW_REALISTIC_CORPUS_RESULT.total : 0, + adversarial: window.PROCFLOW_ADVERSARIAL_RESULT + ? window.PROCFLOW_ADVERSARIAL_RESULT.caseCount : 0 }, attributionRate: rate(attributedAll, totalTokens), unresolvedTokenRate: rate(unresolvedTokens, totalTokens), @@ -189,6 +192,17 @@ realisticCorpusByDialect: window.PROCFLOW_REALISTIC_CORPUS_RESULT ? window.PROCFLOW_REALISTIC_CORPUS_RESULT.dialects : {}, + /* v2.0.0 adversarial matrix: unlike attribution and edge-kind coverage, + this asserts specific required and forbidden semantic facts. It is + stronger qualification evidence, not a universal SQL-correctness claim. */ + dialectAdversarialSemanticAssertionRate: window.PROCFLOW_ADVERSARIAL_RESULT + ? window.PROCFLOW_ADVERSARIAL_RESULT.rate : 0, + adversarialSemanticAssertions: window.PROCFLOW_ADVERSARIAL_RESULT + ? { cases: window.PROCFLOW_ADVERSARIAL_RESULT.caseCount, + total: window.PROCFLOW_ADVERSARIAL_RESULT.total, + required: window.PROCFLOW_ADVERSARIAL_RESULT.required, + forbidden: window.PROCFLOW_ADVERSARIAL_RESULT.forbidden, + byDialect: window.PROCFLOW_ADVERSARIAL_RESULT.byDialect } : null, aggregate: { totalTokens: totalTokens, accountedTokens: attributedAll, diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map index a639236..2a067ed 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/scalability.js b/dist/tests/scalability.js index 8d98e6f..ce83d63 100644 --- a/dist/tests/scalability.js +++ b/dist/tests/scalability.js @@ -1,5 +1,5 @@ "use strict"; -/* v1.14.1 deterministic scale and realistic-corpus invariants. Timing is +/* v2.0.0 deterministic scale and realistic-corpus invariants. Timing is deliberately excluded: the repeatable benchmark command owns performance numbers, while this suite catches truncation, nondeterminism, and runaway graph construction in the normal correctness gate. */ @@ -103,6 +103,6 @@ failures: results.filter(function (r) { return !r.pass; }) }, null, 2); var summary = document.getElementById('scalability-summary'); if (summary) - summary.textContent = 'v1.14.1 scale/corpus · ' + passed + '/' + results.length; + summary.textContent = 'v2.0.0 scale/corpus · ' + passed + '/' + results.length; })(); //# sourceMappingURL=scalability.js.map \ No newline at end of file diff --git a/dist/tests/scalability.js.map b/dist/tests/scalability.js.map index 7b7b1c2..60968aa 100644 --- a/dist/tests/scalability.js.map +++ b/dist/tests/scalability.js.map @@ -1 +1 @@ -{"version":3,"file":"scalability.js","sourceRoot":"","sources":["../../tests/scalability.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"scalability.js","sourceRoot":"","sources":["../../tests/scalability.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/tests/security.js b/dist/tests/security.js index 399b43c..9619243 100644 --- a/dist/tests/security.js +++ b/dist/tests/security.js @@ -1,5 +1,5 @@ "use strict"; -/* v1.14.1 hostile-input regression suite. The parser treats all fixture text +/* v2.0.0 hostile-input regression suite. The parser treats all fixture text as data; browser rendering is checked asynchronously in security.html with Mermaid's strict security level. */ (function () { @@ -83,7 +83,7 @@ failures: results.filter(function (r) { return !r.pass; }) }, null, 2); var summary = document.getElementById('security-summary'); if (summary) - summary.textContent = 'v1.14.1 hostile-input security · ' + passed + '/' + results.length; + summary.textContent = 'v2.0.0 hostile-input security · ' + passed + '/' + results.length; } if (typeof mermaid === 'undefined') { finish({ name: 'Mermaid strict security runtime available', pass: false, diff --git a/dist/tests/security.js.map b/dist/tests/security.js.map index 02091d4..b2207c6 100644 --- a/dist/tests/security.js.map +++ b/dist/tests/security.js.map @@ -1 +1 @@ -{"version":3,"file":"security.js","sourceRoot":"","sources":["../../tests/security.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"security.js","sourceRoot":"","sources":["../../tests/security.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 8a2e684..c41c77c 100644 --- a/dist/tests/tests.js +++ b/dist/tests/tests.js @@ -885,6 +885,15 @@ catch (err) { record('v1.14.0 scale and realistic-corpus invariants', false, String(err && err.stack || err)); } + try { + record('v2 adversarial semantic qualification matrix', window.PROCFLOW_ADVERSARIAL_PASS === true && + !!window.PROCFLOW_ADVERSARIAL_RESULT && + window.PROCFLOW_ADVERSARIAL_RESULT.passed === window.PROCFLOW_ADVERSARIAL_RESULT.total && + window.PROCFLOW_ADVERSARIAL_RESULT.rate === 1, window.PROCFLOW_ADVERSARIAL_FAILURES || window.PROCFLOW_ADVERSARIAL_RESULT); + } + catch (err) { + record('v2 adversarial semantic qualification matrix', 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 66a7a6b..a19cd9d 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/workspace.js b/dist/tests/workspace.js index c710944..ec39fa5 100644 --- a/dist/tests/workspace.js +++ b/dist/tests/workspace.js @@ -98,10 +98,19 @@ var cur = parseWorkspace(serializeWorkspace(buildWorkspaceSnapshot({ files: files, options: optionsRecord, activeObjectId: null }))); return cur.snapshot !== null && cur.migrated === false; })()); + var futureRaw = JSON.stringify({ version: WORKSPACE_SCHEMA_VERSION + 1, + savedAt: '2030-01-01T00:00:00.000Z', + files: [{ name: 'future.sql', text: 'SELECT secret_column FROM future_table;' }], + options: { dialect: 'tsql', scope: 'dependencies', view: 'query' }, + futureOnly: { mustNotBeDiscarded: true } }); + var future = parseWorkspace(futureRaw); + record('v2 future workspace versions are rejected without coercion', future.snapshot === null && future.migrated === false && + future.error === 'future_workspace_version', future); } 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)); + record('v2 future workspace versions are rejected without coercion', false, String(err && err.stack || err)); } /* v1.12.0 — the optional report definition text is an analysis input like the catalogue, so a saved workspace must round-trip it and restore the same @@ -157,6 +166,22 @@ !!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 }); + var futureStored = JSON.stringify({ version: WORKSPACE_SCHEMA_VERSION + 1, + files: [{ name: 'future.sql', text: 'SELECT future_value;' }], + options: { dialect: 'tsql' }, futureOnly: { mustNotBeDiscarded: true } }); + window.localStorage.setItem(WORKSPACE_STORAGE_KEY, futureStored); + var rejectedFuture = readWorkspace(); + var futureStillStored = window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + record('v2 future saved workspaces remain untouched after rejection', rejectedFuture === null && workspaceLastError() === 'future_workspace_version' && + futureStillStored === futureStored, { error: workspaceLastError(), preserved: futureStillStored === futureStored }); + clearWorkspace(); + var corruptStored = '{not a workspace'; + window.localStorage.setItem(WORKSPACE_STORAGE_KEY, corruptStored); + var rejectedCorrupt = readWorkspace(); + var corruptStillStored = window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + record('v2 corrupt saved workspaces remain untouched after rejection', rejectedCorrupt === null && workspaceLastError() === 'corrupt_json' && + corruptStillStored === corruptStored, { error: workspaceLastError(), preserved: corruptStillStored === corruptStored }); + clearWorkspace(); } else { record('v1.8.0 opt-in storage round-trip and explicit clear', true, 'localStorage unavailable in this environment; skipped'); @@ -164,6 +189,8 @@ } catch (err) { record('v1.8.0 opt-in storage round-trip and explicit clear', false, String(err && err.stack || err)); + record('v2 future saved workspaces remain untouched after rejection', false, String(err && err.stack || err)); + record('v2 corrupt saved workspaces remain untouched after rejection', false, String(err && err.stack || err)); } /* Dependency filtering — presentation only. Build a synthetic dependency graph spanning object (source), external, and temp (synthetic) nodes with diff --git a/dist/tests/workspace.js.map b/dist/tests/workspace.js.map index 5756c75..3c720f0 100644 --- a/dist/tests/workspace.js.map +++ b/dist/tests/workspace.js.map @@ -1 +1 @@ -{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../tests/workspace.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;iFAYiF;AACjF,CAAC;IACC,IAAI,OAAO,GAAwD,EAAE,CAAC;IACtE,SAAS,MAAM,CAAC,IAAY,EAAE,IAAa,EAAE,MAAgB;QAC3D,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,EAAC,CAAC,CAAC;IAC5D,CAAC;IACD,SAAS,KAAK,CAAC,CAAM,IAAS,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,IAAI,GAAG,GAAG;QACR,gEAAgE;QAChE,IAAI;QACJ,0CAA0C;QAC1C,OAAO;QACP,2BAA2B;QAC3B,yCAAyC;QACzC,uCAAuC;QACvC,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,KAAK,GAAkB,CAAC,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC;IAC1D,IAAI,aAAa,GAA0B;QACzC,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,cAAc,EAAE,IAAI,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM;QAChE,GAAG,EAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAE,OAAO,EAAC,IAAI;KAC5D,CAAC;IACF,IAAI,cAAc,GAAC,UAAU,CAAC;IAE9B;yCACqC;IACrC,SAAS,gBAAgB,CAAC,IAAuB;QAC/C,IAAI,CAAC,GAAC,IAAI,CAAC,OAAO,CAAC;QACnB,OAAO,EAAC,OAAO,EAAC,CAAC,CAAC,OAAwB,EAAE,IAAI,EAAC,CAAC,CAAC,IAAmB;YACpE,GAAG,EAAC,CAAC,CAAC,GAAuB,EAAE,MAAM,EAAC,CAAC,CAAC,MAAa;YACrD,KAAK,EAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC;IACtE,CAAC;IACD,SAAS,QAAQ,CAAC,KAAY;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,IAAG,CAAC;QACF,IAAI,IAAI,GAAC,sBAAsB,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa;YAChE,cAAc,EAAC,cAAc,EAAC,CAAC,CAAC;QAClC,IAAI,UAAU,GAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,GAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,CAAC,kDAAkD,EACvD,MAAM,CAAC,QAAQ,KAAG,IAAI,IAAE,CAAC,MAAM,CAAC,KAAK,IAAE,MAAM,CAAC,QAAQ,KAAG,KAAK;YAC5D,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAG,IAAI,CAAC,OAAO;YACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,YAAY;YAC5C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,GAAG;YACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAG,MAAM;YACxC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAG,cAAc;YAC9C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAG,MAAM;YACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAG,MAAM;YACvC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAG,IAAI;YAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAG,IAAI;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAG,IAAI;YACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAG,IAAI;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAG,IAAI;YACtC,MAAM,CAAC,QAAQ,CAAC,cAAc,KAAG,UAAU;YAC3C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACpD,EAAC,UAAU,EAAC,UAAU,EAAC,CAAC,CAAC;QAE3B,MAAM,CAAC,uDAAuD,EAC5D,CAAC;YACC,IAAI,EAAE,GAAC,aAAa,CAAC,KAAK,EAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAG,CAAC,MAAM,CAAC,KAAK,IAAE,MAAM,CAAC,QAAQ,EAAC,CAAC;gBACjC,IAAI,EAAE,GAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC9E,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC;oBACvD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YACpE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EAAE,EACJ,EAAC,KAAK,EAAC,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAC,CAAA,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAClE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;YAC9C,MAAM,EAAC,CAAC,MAAM,CAAC,QAAQ,CAAA,CAAC,CAAA,QAAQ,CAAC,aAAa,CAAC,KAAK,EAClD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5C,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,kDAAkD,EACvD,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,uDAAuD,EAC5D,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;mEAC+D;IAC/D,IAAG,CAAC;QACF,IAAI,SAAS,GAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,0BAA0B;YAC9D,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,EAAC,CAAC;YACzC,OAAO,EAAC,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,EAAC,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,CAAC,8DAA8D,EACnE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAE,MAAM,CAAC,QAAQ,KAAG,IAAI,IAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAG,wBAAwB;YAC3F,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAG,MAAM;YACrC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAG,IAAI;YACpC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAG,IAAI;YACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,SAAS,EAC3C,MAAM,CAAC,CAAC;QACV,MAAM,CAAC,mDAAmD,EACxD,CAAC;YACC,IAAI,GAAG,GAAC,cAAc,CAAC,kBAAkB,CACvC,sBAAsB,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAC,cAAc,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;YACpF,OAAO,GAAG,CAAC,QAAQ,KAAG,IAAI,IAAE,GAAG,CAAC,QAAQ,KAAG,KAAK,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,8DAA8D,EACnE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,mDAAmD,EACxD,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;+EAE2E;IAC3E,IAAG,CAAC;QACF,IAAI,UAAU,GAAC,sHAAsH,CAAC;QACtI,IAAI,KAAK,GAAC,sBAAsB,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa;YACjE,cAAc,EAAC,IAAI,EAAE,SAAS,EAAC,aAAa,EAAE,MAAM,EAAC,UAAU,EAAC,CAAC,CAAC;QACpE,IAAI,OAAO,GAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,IAAI,oBAAoB,GAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,0BAA0B;YACxF,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,WAAW,EAAC,CAAC,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,UAAU,EAAC,EAAC,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,4DAA4D,EACjE,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAE,CAAC,OAAO,CAAC,KAAK;YAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAG,UAAU;YACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,KAAG,aAAa;YAC1C,CAAC,CAAC,oBAAoB,CAAC,QAAQ;YAC/B,oBAAoB,CAAC,QAAQ,CAAC,MAAM,KAAG,IAAI,EAC7C,EAAC,MAAM,EAAC,OAAO,CAAC,QAAQ,IAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAChD,YAAY,EAAC,oBAAoB,CAAC,QAAQ,IAAE,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC,CAAC;IACxF,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,4DAA4D,EACjE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,wEAAwE;IACxE,IAAG,CAAC;QACF,IAAI,WAAW,GAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,WAAW,GAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,YAAY,GAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,cAAc,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,oEAAoE,EACzE,WAAW,CAAC,KAAK,KAAG,cAAc,IAAE,WAAW,CAAC,QAAQ,KAAG,IAAI;YAC7D,WAAW,CAAC,KAAK,KAAG,eAAe,IAAE,WAAW,CAAC,QAAQ,KAAG,IAAI;YAChE,YAAY,CAAC,KAAK,KAAG,iBAAiB,IAAE,YAAY,CAAC,QAAQ,KAAG,IAAI,EACtE,EAAC,WAAW,EAAC,WAAW,EAAC,WAAW,EAAC,WAAW,EAAC,YAAY,EAAC,YAAY,EAAC,CAAC,CAAC;IACjF,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,oEAAoE,EACzE,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;8EAC0E;IAC1E,IAAG,CAAC;QACF,IAAI,gBAAgB,GAAC,IAAI,CAAC;QAC1B,IAAI,CAAC;YAAC,IAAI,KAAK,GAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAAC,CAAC;QAChE,OAAM,CAAC,EAAC,CAAC;YAAC,gBAAgB,GAAC,KAAK,CAAC;QAAC,CAAC;QACnC,IAAG,gBAAgB,EAAC,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,IAAI,MAAM,GAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,KAAK,GAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,GAAC,aAAa,EAAE,CAAC;YACzB,IAAI,MAAM,GAAC,iBAAiB,EAAE,CAAC;YAC/B,cAAc,EAAE,CAAC;YACjB,IAAI,KAAK,GAAC,iBAAiB,EAAE,CAAC;YAC9B,MAAM,CAAC,qDAAqD,EAC1D,KAAK,KAAG,IAAI,IAAE,MAAM,KAAG,KAAK,IAAE,MAAM,KAAG,IAAI;gBACzC,CAAC,CAAC,IAAI,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,YAAY;gBAChE,KAAK,KAAG,KAAK,EACf,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM;gBACtC,IAAI,EAAC,IAAI,IAAE,IAAI,CAAC,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;QAC7E,CAAC;aAAI,CAAC;YACJ,MAAM,CAAC,qDAAqD,EAC1D,IAAI,EAAC,uDAAuD,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,qDAAqD,EAC1D,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;iCAG6B;IAC7B,IAAG,CAAC;QACF,IAAI,EAAE,GAAC,IAAI,EAAE,EAAE,GAAC,IAAI,EAAE,EAAE,GAAC,IAAI,EAAE,EAAE,GAAC,IAAI,CAAC;QACvC,IAAI,QAAQ,GAAQ;YAClB,KAAK,EAAC;gBACJ,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC;gBAChG,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,QAAQ,EAAC;gBAC/F,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,wBAAwB,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,cAAc,EAAC,UAAU,EAAC,UAAU,EAAC;gBACpH,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,WAAW,EAAC,MAAM,EAAC,6BAA6B,EAAC;aAC/H;YACD,KAAK,EAAC;gBACJ,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC;gBACzD,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC;gBAC7D,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC;gBAC7D,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC;aACxD;YACD,KAAK,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC;SACtD,CAAC;QACF,IAAI,QAAQ,GAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAC,qBAAqB,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,GAAC,qBAAqB,CAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC,CAAC;QAC5D,IAAI,UAAU,GAAC,qBAAqB,CAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,KAAK,EAAC,CAAC,CAAC;QAChE,IAAI,MAAM,GAAC,qBAAqB,CAAC,QAAQ,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;QACxD,IAAI,UAAU,GAAC,qBAAqB,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,OAAO,EAAC,CAAC,CAAC;QAC/D,IAAI,SAAS,GAAC,qBAAqB,CAAC,QAAQ,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;QAE5D,MAAM,CAAC,wDAAwD,EAC7D,KAAK,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,IAAE,KAAK,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,EAC9C,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC;QACvD,MAAM,CAAC,mEAAmE,EACxE,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC;YACvB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,KAAG,MAAM,CAAC,CAAA,CAAC,CAAC;YAC1D,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,EAC3B,EAAC,KAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;YACvD,KAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,wEAAwE,EAC7E,UAAU,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,IAAE,UAAU,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC;YACtD,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,UAAU,KAAG,UAAU,CAAC,CAAA,CAAC,CAAC,EACxE,EAAC,KAAK,EAAC,UAAU,CAAC,KAAK,CAAC,MAAM;YAC7B,KAAK,EAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,0EAA0E,EAC/E,MAAM,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,IAAE,MAAM,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC;YAC9C,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,UAAU,KAAG,WAAW,CAAC,CAAA,CAAC,CAAC,EACrE,EAAC,KAAK,EAAC,MAAM,CAAC,KAAK,CAAC,MAAM;YACzB,KAAK,EAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC;QACzD,MAAM,CAAC,iEAAiE,EACtE,CAAC;YACC,IAAI,GAAG,GAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC;gBAChC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAE,CAAC,IAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAE,CAAC,IAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAE,CAAC;gBAC1D,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC;gBACjB,UAAU,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,CAAC;QAChC,CAAC,CAAC,EAAE,EACJ,EAAC,KAAK,EAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE;YAC5D,KAAK,EAAC,UAAU,CAAC,KAAK,EAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,qDAAqD,EAC1D,SAAS,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,IAAE,SAAS,CAAC,KAAK,CAAC,MAAM,KAAG,CAAC,EACtD,EAAC,KAAK,EAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAC,KAAK,EAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,8DAA8D,EACnE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACjD,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,KAAK,EAC5D,EAAC,SAAS,EAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC7D,WAAW,EAAC,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,KAAK;YACxC,WAAW,EAAC,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,KAAK,EAAC,CAAC,CAAC;IAChD,CAAC;IAAA,OAAM,GAAG,EAAC,CAAC;QACV,MAAM,CAAC,wDAAwD,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QACnG,MAAM,CAAC,mEAAmE,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QAC9G,MAAM,CAAC,wEAAwE,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QACnH,MAAM,CAAC,0EAA0E,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QACrH,MAAM,CAAC,iEAAiE,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QAC5G,MAAM,CAAC,qDAAqD,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;QAChG,MAAM,CAAC,8DAA8D,EAAC,KAAK,EAAC,MAAM,CAAC,GAAG,IAAE,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,IAAI,MAAM,GAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,CAAC,yBAAyB,GAAC,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,CAAC,MAAM,EAAC,CAAC;IACtE,MAAM,CAAC,uBAAuB,GAAC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;AACzD,CAAC,CAAC,EAAE,CAAC"} \ No newline at end of file +{"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/ACCURACY.md b/docs/ACCURACY.md index 1e7666a..e90cc83 100644 --- a/docs/ACCURACY.md +++ b/docs/ACCURACY.md @@ -1,8 +1,9 @@ # Accuracy and analysis contract -ProcFlow v1.14.1 is a deterministic heuristic analyser. It is not a database -compiler and does not execute SQL. Diagrams are investigation aids: verify -material findings against the source and the target database. +ProcFlow v2.0.0 is the current released version. It is a deterministic +heuristic analyser, not a database compiler, and does not execute SQL. +Diagrams are investigation aids: verify material findings against the source +and the target database. ## What is measured @@ -35,7 +36,7 @@ SQL into a resolved dependency. ## Fixture evidence -The current snapshot is [metrics-v1.14.1.json](metrics-v1.14.1.json). It covers +The current snapshot is [metrics-v2.0.0.json](metrics-v2.0.0.json). It covers the historical golden and fuzz corpus, browser interaction, parity, layout, workspace, catalogue, column, column-flow, report, and report-graph suites. The v1.14 scale suite exercises 100 KB and 500 KB inputs, 100-object estates, @@ -45,5 +46,8 @@ SQLite. The CI gate requires the deterministic suites and all tracked metric rates to pass. These are regression and invariant measures, not a claim of compiler-grade -semantic completeness. The final accuracy contract remains a v2.0.0 roadmap -item. +semantic completeness. v2 adds 15 cross-dialect adversarial cases with 56 +required and forbidden semantic assertions; the published +`dialectAdversarialSemanticAssertionRate` is `1.0`. This is stronger evidence +than attribution alone, but it is still not a universal SQL-correctness oracle. +Read the final [v2 accuracy contract](V2_ACCURACY_CONTRACT.md). diff --git a/docs/ACCURACY_GAPS.md b/docs/ACCURACY_GAPS.md index 6383105..0f2a299 100644 --- a/docs/ACCURACY_GAPS.md +++ b/docs/ACCURACY_GAPS.md @@ -118,8 +118,8 @@ DB2 call, or an omitted DB2 temporary-table data edge. The published v1.14.1 snapshot remains internally current: attribution, semantic-edge coverage, provenance, diagnostic-span coverage, export parity, -and traceability are all `1`; unresolved-token rate is `0.04432`; opaque -dynamic rate is `0.005214`; and the corpus totals 2,685 tokens across 274 +and traceability are all `1`; unresolved-token rate is `0.043447`; opaque +dynamic rate is `0.005111`; and the corpus totals 2,739 tokens across 278 statement regions. These measures are valuable invariants, but they are not a semantic oracle. In particular, they did not catch a valid source omitted by a recognised query construct or an incorrect interpretation of a recognised diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index cf7edd3..cc2569c 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -46,10 +46,12 @@ npm run package:runtime npm run package:smoke ``` -The package script creates `.release/procflow-v1.14.1.zip` from an explicit -allowlist and writes its SHA-256 to `.release/SHA256SUMS.txt`. The package -smoke validates archive paths, required runtime files, exclusion of development -files, and local-file startup. +The package script creates `.release/procflow-v.zip` +from an explicit allowlist and writes its SHA-256 to `.release/SHA256SUMS.txt`. +The package smoke validates archive paths, required runtime files, exclusion of +development files, and local-file startup. Do not change the package version +or overwrite a historical release checksum until the corresponding release +contract and qualification evidence are complete. ## TypeScript and change discipline diff --git a/docs/RELEASES.md b/docs/RELEASES.md index 82ba9f3..98c30b7 100644 --- a/docs/RELEASES.md +++ b/docs/RELEASES.md @@ -5,7 +5,7 @@ Each release has one canonical note at `docs/releases/vX.Y.Z.md`. Historical `RELEASE_NOTE_*` and `PR_NOTE_*` files are retained for provenance; new release notes do not duplicate them. The root README links the current release and -points here for the history. +points here and to `CHANGELOG.md` for the history. Every release should: @@ -16,9 +16,13 @@ Every release should: 4. generate the runtime ZIP and checksum; 5. add the release note before tagging `vX.Y.Z`. +v2.0.0 added the adversarial matrix, v2 metric snapshot, final accuracy +contract, and non-destructive future-workspace rejection. See the +[final v2 contract](V2_ACCURACY_CONTRACT.md). + ## Current release -[v1.14.1 — Targeted correctness patch](releases/v1.14.1.md) +[v2.0.0 — Trustworthy SQL Analysis Contract](releases/v2.0.0.md) ## Historical releases diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md index aaa84e8..e2a4c19 100644 --- a/docs/USER_GUIDE.md +++ b/docs/USER_GUIDE.md @@ -6,7 +6,7 @@ SSRS/RDL report definition and renders an explorable diagram. ## First run -1. Download the v1.14.1 runtime ZIP from the repository release, or clone the +1. Download the v2.0.0 runtime ZIP from the repository release, or clone the repository for development. 2. Open `index.html` in a current Chromium, Firefox, or Edge browser. The runtime does not require a server or a database connection. @@ -58,6 +58,8 @@ Workspace save is opt-in. **Save to this browser** stores the current files, options, catalogue, and report in local browser storage. **Export workspace file** creates a portable JSON snapshot; **Import workspace file** restores it. Dependency filters change presentation only and do not rewrite analysis counts. +Older supported workspaces migrate deterministically. A workspace from a newer +ProcFlow schema is not imported or changed; upgrade ProcFlow to open it. ## Exports diff --git a/docs/V2_ACCURACY_CONTRACT.md b/docs/V2_ACCURACY_CONTRACT.md new file mode 100644 index 0000000..1684789 --- /dev/null +++ b/docs/V2_ACCURACY_CONTRACT.md @@ -0,0 +1,80 @@ +# ProcFlow v2 accuracy contract + +ProcFlow v2.0.0 is a local-first, deterministic heuristic static analyser. It +does not compile or execute SQL, connect to databases, or prove runtime +behaviour. Its diagrams are review evidence: validate material conclusions +against source and the target database. + +## Analysis guarantees + +1. **No silent drops.** Analysed body tokens are attributed to resolved, + intentionally ignored, opaque, or unresolved regions. Unsupported or + malformed regions remain visible and diagnostic-bearing. +2. **No invented semantic facts.** An object identity, call, dependency, + column binding, control path, or data-flow edge is asserted only with static + evidence. Otherwise ProcFlow represents an external, ambiguous, opaque, or + unresolved result. +3. **Traceability.** Source-derived nodes and region diagnostics retain valid + source spans. Synthetic nodes declare their origin; external identities keep + the complete referenced name. +4. **Conservative degradation.** Dynamic, ambiguous, malformed, unsupported, + and branch/loop-unsafe inputs must not be upgraded into certain facts. + +## Stable graph semantics + +| Kind | ProcFlow asserts | It does not assert | +| --- | --- | --- | +| `control` | a statically modelled possible execution order | that every runtime path takes it | +| `exception` | transfer to a compatible statically modelled handler | every database runtime error outcome | +| `call` | a statically identified procedure/function invocation | a dynamic statement name or prepared statement | +| `dependency` | a statically identified object read/reference | an unverified external identity | +| `data` | a unique, conservatively proven producer → consumer definition | data flow across ambiguous branch/loop definitions | +| column/data flow | an explicit scope/projection/source binding | a binding for ambiguous names, stars, or opaque expressions | + +## Diagnostics and confidence + +Diagnostic codes are stable identifiers. Severity is `error`, `warning`, or +`info`; informational resolved constructs do not inflate reviewer findings. +Region diagnostics carry valid half-open spans. Document diagnostics use +document scope with no fabricated span. Code removals or semantic changes need +a compatibility mapping or major-version notice, except an urgent correction +that prevents a false assertion. + +The confidence formula is version `1.6.0`: dialect certainty × token-weighted +region quality × `(0.6 + 0.4 × coverage)`. Resolved, approximate, opaque, and +error regions score 1.00, 0.75, 0.40, and 0.15. Token consumption cannot turn +an opaque or ambiguous region into a resolved fact. + +## Workspaces + +Workspace schema 2 round-trips current inputs exactly and deterministically +migrates supported older snapshots while preserving source text and supported +settings. A future schema version is rejected with +`future_workspace_version`; it is neither coerced nor persisted as an older +workspace. Rejected saved-workspace bytes, including corrupt data, remain until +the user explicitly chooses **Forget**. Imported data is not applied or changed +when rejected. + +## Export, privacy, and compatibility + +The live graph, Mermaid, SVG, and draw.io exports preserve node identities, +semantic edge kinds, labels, object identities, source provenance, and +synthetic-node origin. Layout/style differences must not change meaning. + +ProcFlow has no required backend, automatic SQL transmission, telemetry, +database connection, SQL execution, or cloud persistence. Browser storage is +opt-in; imports, exports, and clipboard operations are explicit. Export text +is treated as hostile and escaped at Mermaid/XML boundaries. + +## Qualification evidence + +`tests/adversarial-matrix.ts` contains checked-in synthetic cases for T-SQL, +PL/pgSQL, DB2 SQL PL, and SQLite. It tests required and forbidden graph, +estate, diagnostic, provenance, opacity, and column semantics, including the +v1.14.1 LATERAL, DB2 PREPARE/EXECUTE, and SESSION temporary-table regressions. +The fixture-only [v2 metric snapshot](metrics-v2.0.0.json) records 15 cases, +56 assertions (41 required, 15 forbidden), and +`dialectAdversarialSemanticAssertionRate: 1.0`. + +This is stronger evidence than attribution or edge-kind coverage, but it is not +a universal SQL-correctness oracle. diff --git a/docs/V2_ACCURACY_CONTRACT_DRAFT.md b/docs/V2_ACCURACY_CONTRACT_DRAFT.md index ba9b722..c3d4fa3 100644 --- a/docs/V2_ACCURACY_CONTRACT_DRAFT.md +++ b/docs/V2_ACCURACY_CONTRACT_DRAFT.md @@ -1,7 +1,8 @@ -# ProcFlow v2 accuracy contract — draft +# ProcFlow v2 accuracy contract — superseded draft -> Draft only. This is a proposed compatibility and correctness contract; it -> does not promise a v2 release or broaden the current v1.14.1 feature set. +> Superseded by [V2_ACCURACY_CONTRACT.md](V2_ACCURACY_CONTRACT.md) in v2.0.0. +> Retained to show the pre-qualification proposal and the evidence that was +> required before promotion. ## Purpose and scope @@ -64,13 +65,14 @@ data into an asserted edge without a documented correctness basis, is breaking. ## Workspace format and migrations -Workspace files carry an explicit format version. A newer ProcFlow version -must either migrate an older supported version deterministically, preserving -source text and analysis settings, or reject it with a clear, non-destructive -diagnostic. It must never reinterpret saved source text or silently discard -unknown fields. Future fields are retained when feasible; otherwise export -warns before information loss. Migration behaviour, supported source versions, -and intentional lossy migrations are documented and regression-tested. +This is a v2 target, not a current guarantee. v1.14.1 uses workspace schema +version 2 and has regression coverage for migration from older local snapshots +and corrupt-input recovery. Its generic migration routine currently normalises +any parsed version to schema 2 and does not preserve unknown fields. Before +this section can become a final v2 contract, future/unsupported schema versions +must be rejected non-destructively or migrated deterministically without silent +loss or reinterpretation of user source, with the supported paths documented +and regression-tested. ## Export fidelity @@ -103,13 +105,24 @@ before/after rationale, and preserves uncertainty rather than fabricating a replacement. New dialect support, execution, remote services, or telemetry are outside this contract unless separately specified and accepted. -## Suggested v2 release evidence - -- All historic regression, fuzz, browser, security, packaging, and export - suites pass. -- Each supported dialect has realistic combination fixtures covering static, - ambiguous, and dynamic forms. -- The adversarial semantic-assertion rate is published with its fixture matrix - and has no unexplained regression. -- Every intentional golden correction links to a minimal reproduction and an - accuracy rationale. +## Required v2 release evidence + +- A versioned, deterministic adversarial semantic matrix exercises T-SQL, + PL/pgSQL, DB2 SQL PL, and SQLite. It asserts both required and forbidden + semantic facts, including object nodes; `call`, `dependency`, `data`, + `control`, and `exception` edges where applicable; opaque regions; + diagnostics; source provenance; and safe column bindings. +- The matrix covers the v1.14.1 defect classes (PL/pgSQL `LATERAL`, DB2 + `PREPARE`/`EXECUTE`, and DB2 `SESSION.` temporary tables) plus dynamic T-SQL, + ambiguity, unsafe reaching definitions, catalogue ambiguity, and realistic + query/table-expression combinations. +- The fixture-only metric pipeline publishes the per-dialect counts and a + `dialectAdversarialSemanticAssertionRate` of `1.0` in a new + `docs/metrics-v2.0.0.json` snapshot. It must make its total, required, and + forbidden assertion denominators explicit. +- All historic regression, fuzz, browser, security, packaging, export, and + workspace suites pass, including native Firefox in CI. Every intentional + golden correction links to a minimal reproduction and an accuracy rationale. +- The workspace compatibility target above is implemented and tested. Only + then may this draft become `docs/V2_ACCURACY_CONTRACT.md`, the package version + become `2.0.0`, and release-facing documentation point to v2. diff --git a/docs/metrics-v2.0.0.json b/docs/metrics-v2.0.0.json new file mode 100644 index 0000000..f846096 --- /dev/null +++ b/docs/metrics-v2.0.0.json @@ -0,0 +1,87 @@ +{ + "generator": "proc>flow fixture-corpus metrics (deterministic, fixture-only)", + "formulaVersion": "1.6.0", + "corpus": { + "golden": 109, + "fuzz": 400, + "ui": 31, + "parity": 10, + "layout": 11, + "workspace": 17, + "catalogue": 13, + "columns": 18, + "columnFlow": 15, + "columnLayout": 2, + "report": 12, + "reportGraph": 9, + "reportGraphLayout": 2, + "scalability": 11, + "realistic": 4, + "adversarial": 15 + }, + "attributionRate": 1, + "unresolvedTokenRate": 0.043447, + "tailUnconsumedRate": 0, + "opaqueDynamicRate": 0.005111, + "fallbackRate": 0, + "semanticEdgeCoverage": 1, + "provenanceRate": 1, + "regionDiagnosticToSpanRatio": 1, + "exportParityPassRate": 1, + "exportTraceabilityRate": 1, + "layoutBudgetPassRate": 1, + "workspacePassRate": 1, + "cataloguePassRate": 1, + "columnPassRate": 1, + "columnFlowPassRate": 1, + "columnLayoutPassRate": 1, + "reportPassRate": 1, + "reportGraphPassRate": 1, + "reportGraphLayoutPassRate": 1, + "scalabilityPassRate": 1, + "realisticCorpusByDialect": { + "tsql": 1, + "db2": 1, + "plpgsql": 1, + "sqlite": 1 + }, + "dialectAdversarialSemanticAssertionRate": 1, + "adversarialSemanticAssertions": { + "cases": 15, + "total": 56, + "required": 41, + "forbidden": 15, + "byDialect": { + "tsql": { + "cases": 7, + "assertions": 27, + "required": 20, + "forbidden": 7 + }, + "plpgsql": { + "cases": 4, + "assertions": 13, + "required": 9, + "forbidden": 4 + }, + "db2": { + "cases": 3, + "assertions": 12, + "required": 9, + "forbidden": 3 + }, + "sqlite": { + "cases": 1, + "assertions": 4, + "required": 3, + "forbidden": 1 + } + } + }, + "aggregate": { + "totalTokens": 2739, + "accountedTokens": 2739, + "statementRegions": 278, + "unresolvedRegions": 0 + } +} diff --git a/docs/releases/v2.0.0.md b/docs/releases/v2.0.0.md new file mode 100644 index 0000000..75f55ec --- /dev/null +++ b/docs/releases/v2.0.0.md @@ -0,0 +1,38 @@ +# ProcFlow v2.0.0 — Trustworthy SQL Analysis Contract + +## Contract + +v2 formalises ProcFlow's conservative static-analysis contract: source-derived +facts need static evidence; dynamic, ambiguous, malformed, and unsupported +SQL stays visible rather than becoming invented structure. See the +[v2 accuracy contract](../V2_ACCURACY_CONTRACT.md). + +## Qualification + +The checked-in cross-dialect adversarial matrix covers 15 synthetic cases and +56 semantic assertions: 41 required and 15 forbidden. All assertions pass. + +| Dialect | Cases | Assertions | +| --- | ---: | ---: | +| T-SQL | 7 | 27 | +| PL/pgSQL | 4 | 13 | +| DB2 SQL PL | 3 | 12 | +| SQLite | 1 | 4 | + +The fixture-only `dialectAdversarialSemanticAssertionRate` is `1.0`. It catches +the defect class that token attribution alone cannot: a relationship omitted or +invented while syntactic accounting remains complete. + +## Compatibility + +Workspace schema 2 supports deterministic migration of older snapshots and +non-destructively rejects newer schemas. Existing graph edge kinds, +provenance, diagnostics, confidence formula, and export semantics remain +compatible; v2 adds qualification evidence rather than a gratuitous format +break. + +## Privacy + +The self-contained runtime remains local-first: no backend, telemetry, SQL +upload, database connection, or execution. Hostile export text remains escaped +and browser storage remains opt-in. diff --git a/package-lock.json b/package-lock.json index dfb4cc7..8f72221 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "procflow", - "version": "1.14.1", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "procflow", - "version": "1.14.1", + "version": "2.0.0", "devDependencies": { "typescript": "5.9.3" } diff --git a/package.json b/package.json index 7b145a1..f25b0db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "procflow", - "version": "1.14.1", + "version": "2.0.0", "private": true, "description": "Local-first SQL control-flow and dependency visualiser", "scripts": { @@ -9,6 +9,8 @@ "typecheck": "tsc --project tsconfig.json --noEmit", "metrics": "node scripts/metrics.mjs", "metrics:write": "node scripts/metrics.mjs --write", + "metrics:v2": "node scripts/metrics.mjs --release=2.0.0", + "metrics:v2:write": "node scripts/metrics.mjs --release=2.0.0 --write", "benchmark": "node scripts/benchmark.mjs", "package:runtime": "node scripts/package-runtime.mjs", "package:smoke": "node scripts/package-smoke.mjs" diff --git a/scripts/benchmark.mjs b/scripts/benchmark.mjs index 087d1af..bc2ccf0 100644 --- a/scripts/benchmark.mjs +++ b/scripts/benchmark.mjs @@ -1,4 +1,4 @@ -/* Repeatable, non-gating v1.14.1 benchmark. It measures the built runtime in a +/* Repeatable, non-gating v2.0.0 benchmark. It measures the built runtime in a fresh VM without network access. Numbers are indicative; structural limits belong to tests/scalability.ts so ordinary correctness runs are not timing sensitive. */ @@ -111,7 +111,7 @@ const reportExport = elapsed(() => context.toDrawio(reportGraph, { title: "benchmark-report-25-datasets" })); const output = { - version: "1.14.1", + version: "2.0.0", note: "Indicative local timings; no thresholds or telemetry.", sql: [measureSql(100_000), measureSql(500_000)], estate100: measureEstate(), diff --git a/scripts/file-smoke.mjs b/scripts/file-smoke.mjs index e17d1ef..50a3d4f 100644 --- a/scripts/file-smoke.mjs +++ b/scripts/file-smoke.mjs @@ -15,10 +15,10 @@ function browserCandidates() { if (process.platform === "win32") { return [ - join(process.env["PROGRAMFILES(X86)"] || "", "Microsoft", "Edge", "Application", "msedge.exe"), - join(process.env.PROGRAMFILES || "", "Microsoft", "Edge", "Application", "msedge.exe"), join(process.env.PROGRAMFILES || "", "Google", "Chrome", "Application", "chrome.exe"), join(process.env["PROGRAMFILES(X86)"] || "", "Google", "Chrome", "Application", "chrome.exe"), + join(process.env["PROGRAMFILES(X86)"] || "", "Microsoft", "Edge", "Application", "msedge.exe"), + join(process.env.PROGRAMFILES || "", "Microsoft", "Edge", "Application", "msedge.exe"), join(process.env.LOCALAPPDATA || "", "Google", "Chrome", "Application", "chrome.exe") ].filter(Boolean); } diff --git a/scripts/metrics.mjs b/scripts/metrics.mjs index 63225c4..bff4f45 100644 --- a/scripts/metrics.mjs +++ b/scripts/metrics.mjs @@ -1,4 +1,4 @@ -/* Fixture-corpus metric publishing (v1.14.1). +/* Fixture-corpus metric publishing for the active package release. Runs tests/metrics.html headlessly, extracts the deterministic, fixture-only metric snapshot, and either writes it (--write) or verifies the checked-in snapshot is still current (default). Uses the same browser discovery and @@ -11,7 +11,14 @@ import { fileURLToPath, pathToFileURL } from "node:url"; const repositoryRoot = dirname(dirname(fileURLToPath(import.meta.url))); const metricsPage = join(repositoryRoot, "tests", "metrics.html"); -const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.14.1.json"); +const requestedRelease = process.argv.find((arg) => arg.startsWith("--release=")); +const releaseVersion = requestedRelease + ? requestedRelease.slice("--release=".length) + : JSON.parse(readFileSync(join(repositoryRoot, "package.json"), "utf8")).version; +if (!/^\d+\.\d+\.\d+$/.test(releaseVersion)) { + throw new Error(`Invalid release version: ${releaseVersion}`); +} +const snapshotFile = join(repositoryRoot, "docs", `metrics-v${releaseVersion}.json`); const writeMode = process.argv.includes("--write"); const explicitBrowser = (process.env.CHROME_PATH || "").trim(); @@ -19,10 +26,10 @@ function browserCandidates() { if (explicitBrowser) return [explicitBrowser]; if (process.platform === "win32") { return [ - join(process.env["PROGRAMFILES(X86)"] || "", "Microsoft", "Edge", "Application", "msedge.exe"), - join(process.env.PROGRAMFILES || "", "Microsoft", "Edge", "Application", "msedge.exe"), join(process.env.PROGRAMFILES || "", "Google", "Chrome", "Application", "chrome.exe"), join(process.env["PROGRAMFILES(X86)"] || "", "Google", "Chrome", "Application", "chrome.exe"), + join(process.env["PROGRAMFILES(X86)"] || "", "Microsoft", "Edge", "Application", "msedge.exe"), + join(process.env.PROGRAMFILES || "", "Microsoft", "Edge", "Application", "msedge.exe"), join(process.env.LOCALAPPDATA || "", "Google", "Chrome", "Application", "chrome.exe") ].filter(Boolean); } diff --git a/scripts/package-runtime.mjs b/scripts/package-runtime.mjs index 9675576..fec0a77 100644 --- a/scripts/package-runtime.mjs +++ b/scripts/package-runtime.mjs @@ -1,4 +1,4 @@ -/* Build the self-contained v1.14.1 runtime archive from an explicit allowlist. +/* Build the self-contained runtime archive from an explicit allowlist. The archive is local-file compatible and contains no tests, source TypeScript, node_modules, maps, or development tooling. */ import { readFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs"; diff --git a/src/app.ts b/src/app.ts index 69397ba..42ab19a 100644 --- a/src/app.ts +++ b/src/app.ts @@ -927,7 +927,16 @@ }; $('btn-ws-restore').onclick=function(){ var snap=readWorkspace(); - if(!snap){ flash($('btn-ws-restore'),'None saved'); return; } + if(!snap){ + if(workspaceLastError()==='future_workspace_version'){ + showMsg('This workspace was created by a newer unsupported ProcFlow version. It was not changed; upgrade ProcFlow before restoring it.'); + flash($('btn-ws-restore'),'Newer version'); + }else if(workspaceLastError()){ + showMsg('The saved workspace could not be read. It was not changed; use Forget only if you want to remove it.'); + flash($('btn-ws-restore'),'Unreadable'); + }else flash($('btn-ws-restore'),'None saved'); + return; + } applySnapshot(snap); }; $('btn-ws-export').onclick=function(){ @@ -952,7 +961,9 @@ file.text().then(function(text){ var parsed=parseWorkspace(text); if(parsed.error||!parsed.snapshot){ - showMsg('That file is not a valid ProcFlow workspace export.'); + showMsg(parsed.error==='future_workspace_version' + ? 'This workspace was created by a newer unsupported ProcFlow version. It was not imported or changed; upgrade ProcFlow before opening it.' + : 'That file is not a valid ProcFlow workspace export.'); return; } applySnapshot(parsed.snapshot); diff --git a/src/types.d.ts b/src/types.d.ts index 6908a24..8782e04 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -980,6 +980,30 @@ interface Window { PROCFLOW_SCALABILITY_RESULT?: {passed: number; total: number}; PROCFLOW_SCALABILITY_DETAIL?: Array<{name: string; pass: boolean; detail?: unknown}>; PROCFLOW_REALISTIC_CORPUS_RESULT?: {total: number; dialects: Record}; + /* v2.0.0 cross-dialect qualification matrix. Counts come only from checked-in + synthetic fixtures and cover required as well as forbidden semantics. */ + PROCFLOW_ADVERSARIAL_PASS?: boolean; + PROCFLOW_ADVERSARIAL_RESULT?: { + passed: number; + total: number; + rate: number; + caseCount: number; + required: number; + forbidden: number; + byDialect: Record; + }; + PROCFLOW_ADVERSARIAL_FAILURES?: Array<{ + dialect: Dialect; + case: string; + assertion: string; + expected: string; + actual: unknown; + }>; /* v1.14.0 hostile-input security suite. */ PROCFLOW_SECURITY_PASS?: boolean; PROCFLOW_SECURITY_RESULT?: {passed: number; total: number}; @@ -989,6 +1013,7 @@ interface Window { clearWorkspace(): void; hasSavedWorkspace(): boolean; readWorkspace(): WorkspaceSnapshot | null; + workspaceLastError(): string | null; writeWorkspace(snapshot: WorkspaceSnapshot): boolean; buildWorkspaceSnapshot(state: { files: WorkspaceFile[]; diff --git a/src/workspace.ts b/src/workspace.ts index 47740ac..58c22be 100644 --- a/src/workspace.ts +++ b/src/workspace.ts @@ -6,8 +6,8 @@ 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. + the app. A workspace made by a newer schema is rejected without being + rewritten or deleted; treating it as old data could lose unknown fields. Dependency filtering is presentation-only: filterDependencyGraph derives a filtered copy at render time and never mutates the underlying estate graph. @@ -21,6 +21,7 @@ it. */ var WORKSPACE_SCHEMA_VERSION = 2; var WORKSPACE_STORAGE_KEY = 'procflow.workspace'; /* schema base key; versioned payload */ +var WORKSPACE_LAST_ERROR: string | null = null; var DIALECT_SELECT_ORDER = ['auto','tsql','db2','plpgsql','sqlite']; @@ -111,8 +112,8 @@ function migrateWorkspace(raw: any): WorkspaceSnapshot { } /* 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. */ + Older versions migrate deterministically. A newer version is rejected before + migration so no field is dropped, coerced, or reinterpreted as schema 2. */ function parseWorkspace(json: string): {snapshot: WorkspaceSnapshot | null; migrated: boolean; error?: string} { var raw: any; try { @@ -123,6 +124,8 @@ function parseWorkspace(json: string): {snapshot: WorkspaceSnapshot | null; migr 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; + if(version>WORKSPACE_SCHEMA_VERSION) + return {snapshot:null,migrated:false,error:'future_workspace_version'}; var migrated=version!==WORKSPACE_SCHEMA_VERSION; var snapshot=migrateWorkspace(raw); if(!snapshot.files.length&&!snapshot.activeObjectId) @@ -135,18 +138,26 @@ function parseWorkspace(json: string): {snapshot: WorkspaceSnapshot | null; migr function readWorkspace(): WorkspaceSnapshot | null { try { var raw=window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + WORKSPACE_LAST_ERROR=null; if(!raw) return null; var parsed=parseWorkspace(raw); if(parsed.error||!parsed.snapshot){ - try { window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); } catch(e){} + WORKSPACE_LAST_ERROR=parsed.error||'not_workspace'; + /* Any rejected workspace may contain user source or future fields. Keep + its exact bytes until the user explicitly forgets it or upgrades. */ return null; } return parsed.snapshot; }catch(e){ + WORKSPACE_LAST_ERROR='storage_unavailable'; return null; } } +function workspaceLastError(): string | null { + return WORKSPACE_LAST_ERROR; +} + function hasSavedWorkspace(): boolean { try { return !!window.localStorage.getItem(WORKSPACE_STORAGE_KEY); } catch(e){ return false; } } @@ -154,6 +165,7 @@ function hasSavedWorkspace(): boolean { function writeWorkspace(snapshot: WorkspaceSnapshot): boolean { try { window.localStorage.setItem(WORKSPACE_STORAGE_KEY,serializeWorkspace(snapshot)); + WORKSPACE_LAST_ERROR=null; return true; }catch(e){ return false; @@ -162,6 +174,7 @@ function writeWorkspace(snapshot: WorkspaceSnapshot): boolean { function clearWorkspace(): void { try { window.localStorage.removeItem(WORKSPACE_STORAGE_KEY); } catch(e){} + WORKSPACE_LAST_ERROR=null; } function workspaceExportText(): string { diff --git a/tasks/plan.md b/tasks/plan.md new file mode 100644 index 0000000..b79d617 --- /dev/null +++ b/tasks/plan.md @@ -0,0 +1,56 @@ +# Implementation Plan: ProcFlow v2.0.0 qualification + +## Overview + +Complete the bounded v2 release blockers from the current v1.14.1 baseline: +add a checked-in cross-dialect semantic qualification matrix and metric, make +workspace imports reject unsupported future schemas without mutation, and then +promote only documentation and version metadata backed by passing evidence. + +## Architecture decisions + +- Keep adversarial cases declarative in a dedicated TypeScript fixture file; + a small evaluator will run the actual analyser, graph, estate, catalogue, and + column-lineage code and publish counted results for the metrics page. +- Treat unknown future workspace schemas as an explicit parse error. This is + safer than normalising a payload while discarding fields. +- Preserve historical v1 metrics and release records. The v2 snapshot is a new, + deterministic checked-in file generated by the existing metrics workflow. + +## Task list + +### Phase 1: Compatibility foundation + +- [x] Add a failing future-schema workspace fixture and result reporting. +- [x] Reject future workspace versions without migration or storage mutation. +- [x] Verify the workspace suite and file smoke. + +### Phase 2: Semantic qualification matrix + +- [x] Define typed required/forbidden semantic assertions and representative + fixtures for all four supported dialects. +- [x] Add a matrix evaluator with diagnostic, provenance, graph, estate, + catalogue, and column-opacity assertions plus actionable failure details. +- [x] Wire the evaluator into browser test and metrics bootstraps. + +### Checkpoint: Qualification + +- [x] Matrix passes in the built browser suite. +- [x] Per-dialect and required/forbidden counts are published. + +### Phase 3: Release convergence + +- [ ] Add the v2 metric to generation/verification and write its snapshot. +- [ ] Re-audit and finalise the accuracy contract and release-facing documents. +- [ ] Update active versions and generated runtime files only after the + qualification gate is green. +- [ ] Run all local release gates, then perform authorised branch/PR/CI/release + work if no material blocker remains. + +## Risks and mitigations + +| Risk | Mitigation | +| --- | --- | +| Existing parser does not support a proposed semantic fact | Assert conservative opacity or fix only a minimal reproduced defect; never weaken a false-positive prohibition. | +| Metric bootstrap ordering hides matrix results | Load matrix after all analyser dependencies and before the metrics evaluator; verify browser output. | +| Future workspace input gets changed through import handling | Reject it during parsing before the UI can restore or persist it; add deterministic parser and browser-storage tests. | diff --git a/tasks/todo.md b/tasks/todo.md new file mode 100644 index 0000000..e8b69e6 --- /dev/null +++ b/tasks/todo.md @@ -0,0 +1,39 @@ +# ProcFlow v2.0.0 qualification tasks + +## Task 1: Future workspace rejection — complete + +**Acceptance criteria:** a version greater than `WORKSPACE_SCHEMA_VERSION` +returns `future_workspace_version`, no snapshot, and is not treated as migrated. + +**Verification:** workspace suite, `npm run typecheck`, `npm run build`, and +`npm run test:file`. + +**Dependencies:** none. + +## Task 2: Adversarial semantic matrix — complete + +**Acceptance criteria:** all four dialects have maintainable fixtures with +required and forbidden assertions; results identify dialect, case, assertion, +expected, and actual semantics. + +**Verification:** built browser suite and metrics page. + +**Dependencies:** none. + +## Task 3: v2 metric snapshot — complete + +**Acceptance criteria:** metric has transparent total, required, forbidden, +and per-dialect counts and passes at `1.0` from checked-in fixtures. + +**Verification:** `npm run metrics:write`, then `npm run metrics`. + +**Dependencies:** Task 2. + +## Task 4: Final contract and release convergence — local qualification complete + +**Acceptance criteria:** documents and active version references match the +implemented behavior; full local release gate is green. + +**Verification:** all documented release commands. + +**Dependencies:** Tasks 1-3. diff --git a/tests/adversarial-matrix.ts b/tests/adversarial-matrix.ts new file mode 100644 index 0000000..e9cfb9b --- /dev/null +++ b/tests/adversarial-matrix.ts @@ -0,0 +1,157 @@ +/* v2.0.0 semantic qualification matrix. Fixtures are synthetic and deterministic. + Required assertions prove supported facts; forbidden assertions guard against + false semantic claims that ordinary attribution/coverage cannot detect. */ +(function(){ + type Kind='node'|'edge'|'estate'|'estateEdge'|'diagnostic'|'opaque'|'columnRef'|'columnOutput'; + type Check={kind:Kind; must:'present'|'absent'; text?:string; from?:string; + to?:string; edgeKind?:EdgeKind; relation?:'reads'|'writes'|'calls'; object?:string; + code?:string; scope?:DiagnosticScope; severity?:DiagnosticSeverity; + provenance?:NodeProvenance; resolution?:ColumnResolution; binding?:string; span?:boolean;}; + type Fixture={name:string; dialect:Dialect; sql:string; catalogue?:string; checks:Check[];}; + var fixtures: Fixture[]=[ + {name:'dynamic EXEC has no static call or object dependency',dialect:'tsql', + sql:'CREATE PROCEDURE dbo.dynamic_exec AS BEGIN DECLARE @q nvarchar(max); EXEC(@q); EXEC @q; END',checks:[ + {kind:'opaque',must:'present',text:'Dynamic SQL — EXEC(@q)',span:true}, + {kind:'opaque',must:'present',text:'Dynamic SQL — EXEC @q',span:true}, + {kind:'diagnostic',must:'present',code:'dynamic_sql',scope:'region',severity:'warning',span:true}, + {kind:'estate',must:'absent',relation:'calls',object:'@q'}, + {kind:'estate',must:'absent',relation:'reads',object:'@q'}, + {kind:'edge',must:'present',from:'DECLARE @q',to:'Dynamic SQL — EXEC(@q)',edgeKind:'control'}]}, + {name:'branch reaching definitions do not invent temp data flow',dialect:'tsql', + sql:'CREATE PROCEDURE dbo.branch_temp AS BEGIN IF @x=1 SELECT id INTO #t FROM dbo.a; ELSE SELECT id INTO #t FROM dbo.b; SELECT id FROM #t; END',checks:[ + {kind:'diagnostic',must:'present',code:'temp_flow_ambiguous',scope:'region',severity:'info',span:true}, + {kind:'diagnostic',must:'present',code:'column_flow_opaque',scope:'region',severity:'warning',span:true}, + {kind:'edge',must:'absent',from:'SELECT … INTO #t',to:'SELECT … FROM #t',edgeKind:'data'}, + {kind:'estate',must:'present',relation:'reads',object:'dbo.a'}, + {kind:'estate',must:'present',relation:'reads',object:'dbo.b'}]}, + {name:'ambiguous column names remain unbound',dialect:'tsql', + sql:'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;',checks:[ + {kind:'columnRef',must:'present',text:'id',resolution:'ambiguous',span:true}, + {kind:'columnOutput',must:'present',text:'id',resolution:'ambiguous'}, + {kind:'columnOutput',must:'absent',text:'id',binding:'a.id'}, + {kind:'diagnostic',must:'present',code:'column_ambiguous',scope:'region',severity:'warning',span:true}]}, + {name:'UPDATE FROM retains both read sources',dialect:'tsql', + sql:'UPDATE t SET x=s.x FROM dbo.target t JOIN dbo.source s ON s.id=t.id;',checks:[ + {kind:'estate',must:'present',relation:'reads',object:'dbo.target'}, + {kind:'estate',must:'present',relation:'reads',object:'dbo.source'}, + {kind:'estate',must:'present',relation:'writes',object:'t'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]}, + {name:'static procedure invocation creates a call edge',dialect:'tsql', + sql:'CREATE PROCEDURE dbo.static_call AS BEGIN EXEC dbo.audit_refresh; END',checks:[ + {kind:'estate',must:'present',relation:'calls',object:'dbo.audit_refresh'}, + {kind:'estateEdge',must:'present',edgeKind:'call'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]}, + {name:'resolved columns retain explicit bindings',dialect:'tsql', + sql:'SELECT s.id FROM dbo.student s;',checks:[ + {kind:'columnRef',must:'present',text:'id',resolution:'exact',span:true}, + {kind:'columnOutput',must:'present',text:'id',resolution:'exact',binding:'s.id'}]}, + {name:'named LATERAL source and recursive CTE remain visible',dialect:'plpgsql', + sql:'WITH RECURSIVE r(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM r WHERE n<3) SELECT x.id FROM (SELECT id FROM app.base) x JOIN LATERAL app.expand_rows(x.id) e ON true;',checks:[ + {kind:'estate',must:'present',relation:'reads',object:'app.base'}, + {kind:'estate',must:'present',relation:'reads',object:'app.expand_rows'}, + {kind:'diagnostic',must:'present',code:'cte_recursive',scope:'region',severity:'info',span:true}, + {kind:'diagnostic',must:'absent',code:'source_opaque'}]}, + {name:'PL/pgSQL EXECUTE remains opaque',dialect:'plpgsql', + sql:'CREATE FUNCTION app.run_dynamic(q text) RETURNS void LANGUAGE plpgsql AS $$ BEGIN EXECUTE q; END; $$;',checks:[ + {kind:'opaque',must:'present',text:'Dynamic SQL — EXECUTE q',span:true}, + {kind:'diagnostic',must:'present',code:'dynamic_sql',scope:'region',severity:'warning',span:true}, + {kind:'estate',must:'absent',relation:'calls',object:'q'}, + {kind:'estate',must:'absent',relation:'reads',object:'q'}]}, + {name:'PL/pgSQL handler edge is explicitly exceptional',dialect:'plpgsql', + sql:'CREATE FUNCTION app.handle() RETURNS void LANGUAGE plpgsql AS $$ BEGIN BEGIN RAISE unique_violation; EXCEPTION WHEN unique_violation THEN PERFORM app.log_unique(); END; END; $$;',checks:[ + {kind:'edge',must:'present',from:'RAISE unique_violation',to:'EXCEPTION WHEN unique_violation',edgeKind:'exception'}, + {kind:'estate',must:'present',relation:'calls',object:'app.log_unique'}]}, + {name:'DELETE USING preserves static source',dialect:'plpgsql', + sql:'DELETE FROM app.target t USING app.source s WHERE s.id=t.id;',checks:[ + {kind:'estate',must:'present',relation:'reads',object:'app.source'}, + {kind:'estate',must:'present',relation:'writes',object:'app.target'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]}, + {name:'PREPARE EXECUTE forbids invented statement objects',dialect:'db2', + sql:'CREATE PROCEDURE APP.PREPARED() LANGUAGE SQL BEGIN PREPARE stmt FROM statement_text; EXECUTE stmt; END',checks:[ + {kind:'opaque',must:'present',text:'Dynamic SQL — EXECUTE stmt',span:true}, + {kind:'diagnostic',must:'present',code:'dynamic_sql',scope:'region',severity:'warning',span:true}, + {kind:'edge',must:'present',from:'PREPARE stmt FROM statement_text',to:'Dynamic SQL — EXECUTE stmt',edgeKind:'control'}, + {kind:'estate',must:'absent',relation:'calls',object:'stmt'}, + {kind:'estate',must:'absent',relation:'reads',object:'statement_text'}]}, + {name:'SESSION temporary table has a unique producer data edge',dialect:'db2', + sql:'CREATE PROCEDURE APP.TEMP_FLOW() LANGUAGE SQL BEGIN DECLARE GLOBAL TEMPORARY TABLE SESSION.WORK (ID INTEGER); INSERT INTO SESSION.WORK SELECT ID FROM APP.SOURCE_ROWS; SELECT ID FROM SESSION.WORK; END',checks:[ + {kind:'edge',must:'present',from:'INSERT INTO SESSION.WORK',to:'SELECT … FROM SESSION.WORK',edgeKind:'data'}, + {kind:'estate',must:'present',relation:'reads',object:'APP.SOURCE_ROWS'}, + {kind:'estate',must:'present',relation:'reads',object:'SESSION.WORK'}, + {kind:'estate',must:'present',relation:'writes',object:'SESSION.WORK'}]}, + {name:'DB2 MERGE preserves target and source identities',dialect:'db2', + sql:'MERGE INTO APP.TARGET t USING APP.SOURCE s ON t.ID=s.ID WHEN MATCHED THEN UPDATE SET VALUE=s.VALUE;',checks:[ + {kind:'estate',must:'present',relation:'reads',object:'APP.SOURCE'}, + {kind:'estate',must:'present',relation:'writes',object:'APP.TARGET'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]}, + {name:'SQLite savepoint and trigger update are source-traceable',dialect:'sqlite', + sql:'CREATE TRIGGER audit_change AFTER UPDATE ON item BEGIN SAVEPOINT s; UPDATE item SET checked=1 WHERE id=NEW.id; RELEASE s; END;',checks:[ + {kind:'node',must:'present',text:'SAVEPOINT s',provenance:'source',span:true}, + {kind:'edge',must:'present',from:'SAVEPOINT s',to:'UPDATE item',edgeKind:'control'}, + {kind:'estate',must:'present',relation:'writes',object:'item'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]}, + {name:'catalogue conflict remains explicit rather than verified',dialect:'tsql',catalogue:'dbo.a TABLE\ndbo.a TABLE', + sql:'SELECT id FROM dbo.a;',checks:[ + {kind:'diagnostic',must:'present',code:'catalogue_conflict',scope:'region',severity:'warning',span:true}, + {kind:'node',must:'present',text:'dbo.a'}, + {kind:'diagnostic',must:'absent',code:'dynamic_sql'}]} + ]; + function same(a:string|undefined,b:string|undefined):boolean{return String(a||'').toUpperCase()===String(b||'').toUpperCase();} + function spanOk(span:SourceSpan|null|undefined,sql:string):boolean{return !!span&&span.start>=0&&span.end>span.start&&span.end<=sql.length;} + function matchedNodes(g:Graph,text:string):GraphNode[]{return g.nodes.filter(function(n){return n.text.indexOf(text)>=0;});} + function label(c:Check):string{ + if(c.kind==='estate') return (c.relation||'relation')+' '+(c.object||''); + if(c.kind==='estateEdge') return 'estate '+(c.edgeKind||'edge'); + if(c.kind==='edge') return (c.edgeKind||'edge')+' '+(c.from||'')+' -> '+(c.to||''); + if(c.kind==='diagnostic') return 'diagnostic '+(c.code||''); + return c.kind+' '+(c.text||''); + } + function check(c:Check,r:AnalysisResult,e:EstateResult,f:Fixture):{found:boolean;actual:unknown}{ + if(c.kind==='node'||c.kind==='opaque'){ + var ns=matchedNodes(r.graph,c.text||'').filter(function(n){return (c.kind!=='opaque'||n.cls==='opaque')&& + (c.provenance===undefined||n.provenance===c.provenance)&&(!c.span||spanOk(n.source,f.sql));}); + return {found:ns.length>0,actual:ns.map(function(n){return {text:n.text,cls:n.cls,provenance:n.provenance,source:n.source};})}; + } + if(c.kind==='edge'){ + var from=matchedNodes(r.graph,c.from||''),to=matchedNodes(r.graph,c.to||''); + var es=r.graph.edges.filter(function(x){return from.some(function(n){return n.id===x.from;})&&to.some(function(n){return n.id===x.to;})&&(!c.edgeKind||x.kind===c.edgeKind);}); + return {found:es.length>0,actual:es}; + } + if(c.kind==='estate'){ + var values:string[]=[];e.objects.forEach(function(o){values=values.concat((o[c.relation||'reads'] as string[])||[]);}); + return {found:values.some(function(v){return same(v,c.object);}),actual:values}; + } + if(c.kind==='estateEdge'){ + var estateEdges=e.graph.edges.filter(function(x){return !c.edgeKind||x.kind===c.edgeKind;}); + return {found:estateEdges.length>0,actual:estateEdges}; + } + if(c.kind==='diagnostic'){ + var ds=r.diagnostics.filter(function(d){return d.code===c.code&&(!c.scope||d.scope===c.scope)&&(!c.severity||d.severity===c.severity)&&(!c.span||spanOk(d.span,f.sql));}); + return {found:ds.length>0,actual:r.diagnostics}; + } + var l=r.columns||[]; + if(c.kind==='columnRef'){ + var refs:ColumnReference[]=[];l.forEach(function(x){refs=refs.concat(x.references||[]);}); + var rs=refs.filter(function(x){return same(x.name,c.text)&&(!c.resolution||x.resolution===c.resolution)&&(!c.span||spanOk(x.span,f.sql));}); + return {found:rs.length>0,actual:refs}; + } + var out:ColumnOutput[]=[];l.forEach(function(x){out=out.concat(x.outputs||[]);}); + var os=out.filter(function(x){var bs=x.bindings.map(function(b){return b.source+'.'+b.column;});return same(x.name,c.text)&&(!c.resolution||x.resolution===c.resolution)&&(!c.binding||bs.some(function(b){return same(b,c.binding);}));}); + return {found:os.length>0,actual:out}; + } + var passed=0,total=0,required=0,forbidden=0,failures:Array<{dialect:Dialect;case:string;assertion:string;expected:string;actual:unknown}>=[]; + var byDialect:Record={}; + fixtures.forEach(function(f){ + if(!byDialect[f.dialect]) byDialect[f.dialect]={cases:0,assertions:0,required:0,forbidden:0}; + byDialect[f.dialect].cases++; + var cat=f.catalogue?parseCatalogue(f.catalogue):null; + var opts:AnalyseOptions={dialect:f.dialect,mode:'flow',group:false,sources:true,fanIn:true,catalogue:cat&&cat.catalogue,catalogueDiagnostics:cat&&cat.diagnostics}; + var r=analyse(f.sql,opts),e=analyseEstate([{name:'matrix.sql',text:f.sql}],opts); + f.checks.forEach(function(c){total++;byDialect[f.dialect].assertions++;if(c.must==='present'){required++;byDialect[f.dialect].required++;}else{forbidden++;byDialect[f.dialect].forbidden++;} + var result=check(c,r,e,f),ok=c.must==='present'?result.found:!result.found;if(ok){passed++;return;} + failures.push({dialect:f.dialect,case:f.name,assertion:label(c),expected:c.must,actual:result.actual}); + }); + }); + window.PROCFLOW_ADVERSARIAL_RESULT={passed:passed,total:total,rate:total?passed/total:1,caseCount:fixtures.length,required:required,forbidden:forbidden,byDialect:byDialect}; + window.PROCFLOW_ADVERSARIAL_FAILURES=failures;window.PROCFLOW_ADVERSARIAL_PASS=passed===total; +})(); diff --git a/tests/index.html b/tests/index.html index abd937e..809c9ef 100644 --- a/tests/index.html +++ b/tests/index.html @@ -20,7 +20,7 @@

proc>flow golden tests


 

v1.13.0 report graph starting…


-

v1.14.1 scalability starting…

+

v2.0.0 scalability starting…


 

   
@@ -51,6 +51,7 @@ 

proc>flow golden tests

+ diff --git a/tests/metrics.html b/tests/metrics.html index e562d0d..e856e7e 100644 --- a/tests/metrics.html +++ b/tests/metrics.html @@ -10,7 +10,7 @@ -

proc>flow fixture-corpus metrics (v1.14.1)

+

proc>flow fixture-corpus metrics (v2.0.0)

Running…

Deterministic, fixture-only aggregates of the "Metrics that matter". No user inputs or runtime telemetry are collected.

@@ -42,6 +42,7 @@

proc>flow fixture-corpus metrics (v1.14.1)

+ diff --git a/tests/metrics.ts b/tests/metrics.ts index 180f57f..2281266 100644 --- a/tests/metrics.ts +++ b/tests/metrics.ts @@ -7,11 +7,12 @@ lineage pass rate from tests/columns.ts, the v1.11.0 column-flow pass rate from tests/column-flow.ts, the v1.12.0 report-import pass rate from tests/report.ts, and the v1.13.0 report-graph pass rate from - tests/report-graph.ts. v1.14.1 scalability and realistic-corpus invariants + tests/report-graph.ts. v2.0.0 adds adversarial semantic qualification beside + the existing scalability and realistic-corpus invariants. are published separately. 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.14.1.json. */ + produce or verify the active release metric snapshot. */ (function(){ var corpus=PROCFLOW_FIXTURES||[]; @@ -104,7 +105,9 @@ scalability:window.PROCFLOW_SCALABILITY_RESULT ?window.PROCFLOW_SCALABILITY_RESULT.total:0, realistic:window.PROCFLOW_REALISTIC_CORPUS_RESULT - ?window.PROCFLOW_REALISTIC_CORPUS_RESULT.total:0 + ?window.PROCFLOW_REALISTIC_CORPUS_RESULT.total:0, + adversarial:window.PROCFLOW_ADVERSARIAL_RESULT + ?window.PROCFLOW_ADVERSARIAL_RESULT.caseCount:0 }, attributionRate:rate(attributedAll,totalTokens), unresolvedTokenRate:rate(unresolvedTokens,totalTokens), @@ -184,6 +187,17 @@ realisticCorpusByDialect:window.PROCFLOW_REALISTIC_CORPUS_RESULT ? window.PROCFLOW_REALISTIC_CORPUS_RESULT.dialects : {}, + /* v2.0.0 adversarial matrix: unlike attribution and edge-kind coverage, + this asserts specific required and forbidden semantic facts. It is + stronger qualification evidence, not a universal SQL-correctness claim. */ + dialectAdversarialSemanticAssertionRate:window.PROCFLOW_ADVERSARIAL_RESULT + ? window.PROCFLOW_ADVERSARIAL_RESULT.rate:0, + adversarialSemanticAssertions:window.PROCFLOW_ADVERSARIAL_RESULT + ? {cases:window.PROCFLOW_ADVERSARIAL_RESULT.caseCount, + total:window.PROCFLOW_ADVERSARIAL_RESULT.total, + required:window.PROCFLOW_ADVERSARIAL_RESULT.required, + forbidden:window.PROCFLOW_ADVERSARIAL_RESULT.forbidden, + byDialect:window.PROCFLOW_ADVERSARIAL_RESULT.byDialect}:null, aggregate:{ totalTokens:totalTokens, accountedTokens:attributedAll, diff --git a/tests/scalability.ts b/tests/scalability.ts index 3c8abbd..e582ae9 100644 --- a/tests/scalability.ts +++ b/tests/scalability.ts @@ -1,4 +1,4 @@ -/* v1.14.1 deterministic scale and realistic-corpus invariants. Timing is +/* v2.0.0 deterministic scale and realistic-corpus invariants. Timing is deliberately excluded: the repeatable benchmark command owns performance numbers, while this suite catches truncation, nondeterminism, and runaway graph construction in the normal correctness gate. */ @@ -105,5 +105,5 @@ if(out) out.textContent=JSON.stringify({passed:passed,total:results.length, failures:results.filter(function(r){return !r.pass;})},null,2); var summary=document.getElementById('scalability-summary'); - if(summary) summary.textContent='v1.14.1 scale/corpus · '+passed+'/'+results.length; + if(summary) summary.textContent='v2.0.0 scale/corpus · '+passed+'/'+results.length; })(); diff --git a/tests/security.ts b/tests/security.ts index 4ef6d49..d1d82e5 100644 --- a/tests/security.ts +++ b/tests/security.ts @@ -1,4 +1,4 @@ -/* v1.14.1 hostile-input regression suite. The parser treats all fixture text +/* v2.0.0 hostile-input regression suite. The parser treats all fixture text as data; browser rendering is checked asynchronously in security.html with Mermaid's strict security level. */ (function(){ @@ -87,7 +87,7 @@ if(out) out.textContent=JSON.stringify({passed:passed,total:results.length, failures:results.filter(function(r){return !r.pass;})},null,2); var summary=document.getElementById('security-summary'); - if(summary) summary.textContent='v1.14.1 hostile-input security · '+passed+'/'+results.length; + if(summary) summary.textContent='v2.0.0 hostile-input security · '+passed+'/'+results.length; } if(typeof mermaid==='undefined'){ diff --git a/tests/tests.ts b/tests/tests.ts index dc30fbf..f046b5c 100644 --- a/tests/tests.ts +++ b/tests/tests.ts @@ -1013,6 +1013,17 @@ record('v1.14.0 scale and realistic-corpus invariants',false,String(err&&err.stack||err)); } + try{ + record('v2 adversarial semantic qualification matrix', + window.PROCFLOW_ADVERSARIAL_PASS===true&& + !!window.PROCFLOW_ADVERSARIAL_RESULT&& + window.PROCFLOW_ADVERSARIAL_RESULT.passed===window.PROCFLOW_ADVERSARIAL_RESULT.total&& + window.PROCFLOW_ADVERSARIAL_RESULT.rate===1, + window.PROCFLOW_ADVERSARIAL_FAILURES||window.PROCFLOW_ADVERSARIAL_RESULT); + }catch(err){ + record('v2 adversarial semantic qualification matrix',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/tests/workspace.ts b/tests/workspace.ts index 29ca552..fa7de95 100644 --- a/tests/workspace.ts +++ b/tests/workspace.ts @@ -113,11 +113,23 @@ buildWorkspaceSnapshot({files:files,options:optionsRecord,activeObjectId:null}))); return cur.snapshot!==null&&cur.migrated===false; })()); + + var futureRaw=JSON.stringify({version:WORKSPACE_SCHEMA_VERSION+1, + savedAt:'2030-01-01T00:00:00.000Z', + files:[{name:'future.sql',text:'SELECT secret_column FROM future_table;'}], + options:{dialect:'tsql',scope:'dependencies',view:'query'}, + futureOnly:{mustNotBeDiscarded:true}}); + var future=parseWorkspace(futureRaw); + record('v2 future workspace versions are rejected without coercion', + future.snapshot===null&&future.migrated===false&& + future.error==='future_workspace_version',future); }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)); + record('v2 future workspace versions are rejected without coercion', + false,String(err&&err.stack||err)); } /* v1.12.0 — the optional report definition text is an analysis input like the @@ -177,7 +189,29 @@ !!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}); + read:read&&read.files&&read.files[0]&&read.files[0].name,after:after}); + + var futureStored=JSON.stringify({version:WORKSPACE_SCHEMA_VERSION+1, + files:[{name:'future.sql',text:'SELECT future_value;'}], + options:{dialect:'tsql'},futureOnly:{mustNotBeDiscarded:true}}); + window.localStorage.setItem(WORKSPACE_STORAGE_KEY,futureStored); + var rejectedFuture=readWorkspace(); + var futureStillStored=window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + record('v2 future saved workspaces remain untouched after rejection', + rejectedFuture===null&&workspaceLastError()==='future_workspace_version'&& + futureStillStored===futureStored, + {error:workspaceLastError(),preserved:futureStillStored===futureStored}); + clearWorkspace(); + + var corruptStored='{not a workspace'; + window.localStorage.setItem(WORKSPACE_STORAGE_KEY,corruptStored); + var rejectedCorrupt=readWorkspace(); + var corruptStillStored=window.localStorage.getItem(WORKSPACE_STORAGE_KEY); + record('v2 corrupt saved workspaces remain untouched after rejection', + rejectedCorrupt===null&&workspaceLastError()==='corrupt_json'&& + corruptStillStored===corruptStored, + {error:workspaceLastError(),preserved:corruptStillStored===corruptStored}); + clearWorkspace(); }else{ record('v1.8.0 opt-in storage round-trip and explicit clear', true,'localStorage unavailable in this environment; skipped'); @@ -185,6 +219,10 @@ }catch(err){ record('v1.8.0 opt-in storage round-trip and explicit clear', false,String(err&&err.stack||err)); + record('v2 future saved workspaces remain untouched after rejection', + false,String(err&&err.stack||err)); + record('v2 corrupt saved workspaces remain untouched after rejection', + false,String(err&&err.stack||err)); } /* Dependency filtering — presentation only. Build a synthetic dependency