Skip to content

Dynamic LOD: schematic-style buses and anti-spaghetti visual acceptance #219

Closed

Description

@mvalancy

Owner direction, 2026-10-28: GraphDone should read like a modern harness/PCB schematic. No tangled wire balls; use organized ports, routed connections and expandable buses. Small visual regression fixtures should continuously detect spaghetti. Protect the local workstation: no concurrent heavy suites or repeated full-stack loops.

This is now the visual acceptance priority under #193, coordinated with #218 exact relationship exploration and #216 nested hierarchy. I am taking the first implementation in the owned feat/semantic-relationship-exploration-20261028 worktree. Main/release preparation is parked while this visual slice becomes reviewable.

Acceptance for the first routing slice:

  • Pure, deterministic routing in screen space; avoid node/card/label rectangles, use intentional ports and orthogonal segments with restrained corners. Camera gestures cannot randomly reshuffle lanes.
  • Condense typed and parallel relationships between visible groups into a count-preserving bus. Direction, types and exact original edge IDs stay available through LOD-4: inspect exact relationships through semantic summaries and bundles #218 inspection. Shared trunks must indicate intentional junctions; crossing paths must not look joined.
  • Budget dense scenes explicitly: use a named focused connection view or a disclosed collapsed bus when all branches cannot be shown legibly. Never silently discard edges or declare an empty rendering clean.
  • A database-free visual harness with small fixtures: simple chain, fan-out hub, multiple groups with typed/reverse/parallel connections, a dense cyclic counterexample, narrow phone viewport and long labels.
  • Basic geometry checks for wire-through-card/label intersections, proper crossings, overlapping unrelated segments and congested cells. Retain source/represented/collapsed counts and require a useful visible graph. A deliberate spaghetti fixture must fail, so the gate cannot merely approve snapshots or fewer painted lines.
  • Export actual SVG/PNG contact sheets and metric JSON from the same production routing functions. Review the pictures, not only totals. Keep local checks single-process and small; full integration/database/browser matrices belong in CI.
  • Carry the accepted router into the actual graph overview, preserve layout persistence and selected-item navigation, and document what remains for detailed item wiring and larger graph loading.

No shared CodeGraph library. Ideas and test techniques can move in either direction; implementations remain independent. A clean mockup alone does not complete production integration.

Activity

  1. mvalancy commented on Oct 28, 2026

    @mvalancy
    MemberAuthor

    The first visual candidate is consolidated into draft PR #216, source a04fa2b9dfa580a4fe6c344cc00aa32bd6c8b83e. It includes routed buses, exact relationship inspection, a small anti-spaghetti geometry gate, generated SVG studies and a four-case CI-only visual sequence. Independent review and the new full CI are pending.

    The fan-out study represents all 30 relationships through four shared-bus branches. The dense fixture discloses 76 of 112 relationships as collapsed; named focused-bus tracing and item-level routing remain required, so this is not issue closeout.

    Local iterations now use sub-second geometry and small one-worker component checks. Browser/database/image matrices have stopped on the workstation and run in CI. The owner's localhost graph and unrelated processes remain untouched. #217 remains available for independent import/export/MCP help.

  2. mvalancy commented on Oct 28, 2026

    @mvalancy
    MemberAuthor

    Reviewed focused-bus candidate is published in #216 at 88d0115db3e7c26a7b9416d94fe4bf23dd43c1fa by ordinary fast-forward. Live dev remains 77899e98a081e725ae8ddc15b6566cc50c9a584f; no integration or issue closeout.

    Incoming/outgoing group traces now retain the selected group and page through at most five neighbors (fewer when space is limited), keep actual arrow direction, and count all outside connections. Nine geometry cases passed (~0.28s), 28 small serial model/component cases passed (8.31s), scoped typecheck passed. Independent exact-source review found no remaining source findings. This is not a non-author GitHub approval or browser acceptance.

    Actual earlier CI40631382299 artifacts are retained: static visual4, smoke6, new-user42 passed with clean unchanged mergeab14de70 source and zero warnings/skips/evidence errors. Semantic-LOD failed both cases at expected38/observed76 member controls: the old locator also counted the newly added relationship actions. The reviewed correction keeps38 and selects actual visible member titles. Later nested/layout/mobile/performance gates were skipped, not passed. The earlier phone padding failure also remains retained.

    Fresh CI40633460829 and Comprehensive40633460807 are now running. The extended existing nested journeys measure actual painted paths/card/control geometry, reject an intentional invisible wire, verify source/target ports/arrows and exercise exact relationship lists and both trace directions. No heavy local stack has been restarted.

    Concrete help task: #220 for detailed item/neighborhood ports and buses; #217 remains available for portable AI graph import/export/MCP. Current group-view ownership stays in #216. Keep #219 and the full LOD path open: group traces do not complete item/path wiring, scale/loading or hosted delivery.

  3. mvalancy commented on Oct 28, 2026

    @mvalancy
    MemberAuthor

    Accepted in dev 007148f1a526b8ef028222a429b346a67e5c3c2c through #216. Remote parents are dev 77899e98... and reviewed source 6a6792650e0d455b361e0c6d38bc0f08f4a00f42; complete tree 8e92c6679f3434abe2964e3eee5e7d8f6873cf51 matches the pre-merge tested composition exactly. Native admin merge used the repository owner's standing dev-only authorization; independent agent review was not represented as a non-author GitHub approval.

    Post-dev CI40640788120 and Comprehensive40640788203 passed. Downloaded all nine unified reports: 102 passed, zero failures/warnings/skips/evidence errors, exit0/no timeouts, clean unchanged dev source/fingerprint 49622b2e487d00fd17cf789075a189fca230f9832d325c722240830cf2873b53. Counts: static4, smoke6, new-user42, semantic2, nested2, layout9, routes7, mobile27, performance3. Living effects separately passed3. Applicable quality/unit/build/security, real Neo4j MCP and all three runtime-image contracts passed; runtime logs confirm API/MCP/SQLite and replacement recovery. Main/nightly-only production stack and PR-only comment jobs were not applicable, not claimed as executed.

    Final browser artifact contains every referenced attachment. All six nested JSON/PNG pairs were checked: zero card/control intersections, unrelated crossings/overlaps and diagonals, max1 bus/cell, with183 original relationships accounted for. Five PNGs are byte-identical to the independently reviewed pre-merge images; the changed desktop overview was viewed again and is clean. Real journeys passed unchanged API snapshots, zero navigation mutations and strict edge-first owned-fixture cleanup. Earlier failures and corrections remain in PR discussion/repo ledgers.

    Closing the first routing slice explicitly defined in this issue's acceptance criteria: deterministic obstacle-aware group ports/lanes, shared buses and junctions, bounded incoming/outgoing traces, exact routed/deferred counts, deliberate spaghetti/invisible-wire negatives, small static SVG/PNG/metric fixtures and actual production-overview integration are accepted.

    Scope reconciliation: earlier progress comments proposed keeping this issue open for detailed item/path wiring. That remaining work now has its own precise, claimed issue #220 and draft #221. This closure therefore does not mean all item-level wire balls are solved. #193 remains open for the full LOD feature path. The dense static case still intentionally routes33 of112 relationships via13 branches and discloses79 collapsed relations; no unlimited-capacity claim.

    Pictures and geometry were both reviewed. No shared CodeGraph library was introduced. Heavy validation ran in CI, not on the owner's workstation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions