Skip to content

v2.4.1 — Query builder hardening and release discipline

Choose a tag to compare

@ikelaiah ikelaiah released this 20 Sep 21:24
· 31 commits to main since this release

ProcFlow v2.4.1 — Query builder hardening and release discipline

Released as the first patch after the v2.4.0 query builder. No analysis
semantics changed: this release hardens the builder, commits its browser
suite, fixes an overlay redraw defect, and makes release documentation
verifiable in CI.

Highlights

  • Query engine hardening. Shortest-path enumeration is iterative, so a
    1,000-table declared chain cannot exhaust the call stack. A scale fixture
    asserts 999 joins, 998 bridges, and deterministic plan and SQL output.
  • Plan-edge highlighting fix. The overlay redraw after a pick was deferred
    to requestAnimationFrame, which can be starved in headless and off-screen
    contexts; only a pre-plan resize draw could run, leaving every edge dimmed
    even though the plan was correct. Query-state changes now draw synchronously;
    animation frames still coalesce drag redraws.
  • Panel corrections. Excluding a problem table now prunes its sorts (not
    just its picks); the clipboard fallback is shared by both pages; the dropdown
    teach flow explains that the same table on both sides creates a self join.
  • Panel structure. Pure DOM builders moved to src/ui/erd-query-view.ts
    (panel 1,145 → 812 lines; view 376 lines) with no behavior change.
  • Accessibility and keyboard. One concise status announcement replaces
    live-announcing the whole SQL and plan; the floating window is a labelled
    dialog; Q toggles query mode; Escape cancels teaching without clearing
    the diagram selection.
  • Committed browser suite. tests/erd-ui.html drives erd.html with 49
    interaction checks (query mode, picking, join and problem cards, teaching,
    self joins, options, highlighting, resize, Find, only-used filter), and the
    Firefox smoke now loads both pages.
  • Release discipline. package-lock.json tracks package.json; the
    changelog, README, release index, and lockfile version are guarded in CI;
    docs/RELEASES.md documents the verified tag-and-asset flow.
  • Documentation. docs/QUERY_BUILDER.md deep dive, ADR-001 for the
    declared-evidence query model, and a browser-suite cookbook plus module
    header convention in docs/DEVELOPMENT.md.
  • CI actions updated (actions/checkout, actions/setup-node).

Accuracy and limits

  • No analysis semantics changed. Joins still use declared foreign-key evidence
    only; taught joins and self-join copies remain labelled not declared in the
    plan and SQL; the generated SQL stays read-only.
  • Query picks and options remain session state; only ERD layouts persist
    (opt-in).

Verification

The final local verification recorded for this release includes:

  • golden browser assertions on tests/index.html passing (221/221), including
    the query-builder engine suite with the 1,000-table scale fixture;
  • the ERD query UI suite passing (49/49 over HTTP), and the Firefox smoke page
    passing 10/10 critical paths;
  • npm run typecheck, npm run build, npm run test:file, npm run metrics,
    npm run package:smoke, and npm run benchmark passing;
  • runtime archive structure and local-file startup smoke passing
    (procflow-v2.4.1.zip).

Upgrade and distribution

The runtime is self-contained. Use npm run package:runtime to produce the
versioned ZIP and verify .release/SHA256SUMS.txt before distributing it.
Layouts and layout files saved by earlier releases remain readable.