v1.13.0 — Report intelligence (report→dataset→object→column views + F export fidelity) - #14
Merged
Conversation
…iews + F export fidelity)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR: v1.13.0 — Report intelligence
Summary
Implements the v1.13.0 — Report intelligence milestone from
ROADMAP.mdin full and nothing from v1.14.0 onwards: report → dataset → object → column
dependency views built on the v1.9.0 catalogue and the v1.11.0 column
contract, plus F export fidelity for report graphs. The golden suite grows
from 211 to 212; fuzz (400) and UI (27) stay green; 9 report-graph fixtures
assert the complete dependency chain, export parity and
.drawioround-tripidentity, and presentation-only filtering, plus 2 report layout-budget
fixtures. Large-graph convergence (v1.14.0) remains deferred.
What's included
Report intelligence (
src/report.ts)buildReportGraph— a new report dependency graph on its own documentedreportlayout class:report) link to dataset nodes by kind(
dsembedded/dsshared/dsunresolved);object facts via
buildObjectIR— reads/writes/calls becomedependency/data/call edges to
repobjnodes, catalogue-verified to theircanonical identity where the v1.9.0 catalogue proves them;
data) to the columns its query references, from thev1.11.0 column contract: known source columns (catalogue/CTE-backed
wildcards) and exact output bindings (source key → column, resolved back
to the object). Nothing is ever invented.
filterReportGraph— presentation-only filtering mirroringfilterDependencyGraph: hide the column layer, dataset kinds, or externalobjects; a focus keeps a report/dataset/object and its direct neighbours.
Returns a fresh copy; the underlying graph (and the analysis) is never
mutated.
Export fidelity (F)
src/exporters.ts— canonicalreport,dsembedded,dsshared,dsunresolved,repobj,repcolnode styles shared by both exporters.tests/parity.ts— thereportlayout class is documented inPROCFLOW_LAYOUT_CLASSES(node limit 30, crossing budget 0); enforcementlives in the new suite.
metadata (spans, object identity, reasons), verified per-fixture.
App wiring (
src/app.ts,index.html)report is loaded, rendering
buildReportGraph(currentReport, {catalogue})with the report stats (reports / datasets / objects / columns / embedded /
shared) and report diagnostics.
like the dependency filter;
run()shows it only in report scope.data-procflow-readynow also requiresbuildReportGraphandfilterReportGraph.Fixtures and tests
tests/report-graph.ts(+tests/index.html,tests/metrics.html, andreport-graph.jswiring) — 9 fixture records plus 1 integration record, and2 report layout-budget records: complete report→dataset→object→column
chains, read/write/call edge kinds, shared datasets without invented object
edges, unresolved datasets staying explicit, catalogue-verified object
identity, multi-dataset reports, per-fixture Mermaid/draw.io export parity
with provenance round-trip, and presentation-only filtering that never
mutates the graph. Gates the golden page via
PROCFLOW_REPORTGRAPH_PASS+PROCFLOW_REPORTGRAPH_RESULT.tests/ui-tests.ts— 2 new browser tests: the Report dependencies scoperenders the chain, and the report filter hides columns presentation-only in
the UI (27/27).
tests/tests.ts— gates the golden page on the v1.13.0 report-graph suite.tests/metrics.ts→docs/metrics-v1.13.0.json— addsreportGraphPassRate,reportGraphLayoutPassRate, and thereportGraph(9)/
reportGraphLayout(2) corpus counts; the v1.12.0 snapshot is renamed tov1.13.0 (old snapshot removed). All pre-existing corpus aggregates are
byte-identical to v1.12.0.
examples/dbo.v1130_demo.rdl— a report with two embedded datasets, ashared dataset, and an unresolved dataset, plus a catalogue to paste,
demonstrating the report dependency view.
Verification
npm run typecheck— passesnpm run build— passesnpm run test:file— passes (withCHROME_PATHset)end to end)
npm run metrics— snapshot is current;docs/metrics-v1.13.0.jsoncommitted (v1.12.0 snapshot renamed), 100 % report-graph pass rate
dist/committed in sync (addsdist/tests/report-graph.js)Not changed / deferred (per roadmap)
out of scope, as are interactive column views in the app (future release).
docs/metrics-v1.13.0.jsonare byte-identical to v1.12.0 for everypre-existing metric, confirming no parser regression, and the full golden
suite stays green.