Skip to content

Dynamic LOD: add nested semantic cuts and stable parent navigation #215

Closed

Description

@mvalancy

This is the next bounded implementation slice under #193 and docs/architecture/dynamic-graph-lod.md. The current production renderer provides a useful top-level overview and member inspection, but ignores deeper lod.groupPath segments and still constructs the complete source SVG. It is not yet the completed large-system LOD feature.

Focused implementation help is welcome. Claim an owned branch/worktree and a precise scope before editing. Coordinate with #213’s layout recovery and #214’s runtime-only update; preserve their pending-layout and source-position guarantees. Borrow techniques from CodeGraph (stable hierarchy identities, parent fallback, independent camera state and density-driven detail), not shared libraries or packages.

Acceptance for the hierarchy slice:

  • Deterministic hierarchy and visible-cut projection for nested explicit semantic paths, normalized containment, disconnected/unassigned items, multiple parents and cycles. Every loaded source item belongs to exactly one visible representative. Stable portable semantic keys must not embed unremapped source node IDs in imported metadata.
  • Every original typed/directed relationship is accounted for exactly once as an internal link, projected bundle or missing-endpoint edge. Keep parallel/opposite edges and exact source inspection; synthetic summaries never become saved WorkItems.
  • Integrate nested expand/collapse and readable parent fallback into the actual renderer. Preserve selected/search paths, inspector behavior, keyboard/touch access and return-camera navigation. Camera-only updates must not rebuild membership or reshuffle label slots. Preserve current small-graph behavior.
  • State the boundary between this hierarchy slice and later per-region spatial budgets/DOM virtualization/progressive loading. Do not claim 1k/10k readiness while all item SVGs are still built or data is only locally cached.
  • Add failing-before/passing-after pure invariants and owned browser acceptance using a nested system→service→component fixture with cross-service links, cycles and long names. Require ordinary interactions, exact accounting, zero position writes for navigation, strict cleanup and unchanged durability/smoke/mobile gates. Pin exact source/target and keep zero retries/skips for required cases.
  • Update the existing architecture plan and validation ledger with actual achieved behavior and remaining capacity limits. No CodeGraph source edits, release, deployment or protection changes are needed for this slice.

The original301-item localhost graph remains a read-only observation target. All mutating acceptance data must be disposable and owned.

Activity

  1. mvalancy commented on Oct 28, 2026

    @mvalancy
    MemberAuthor

    I am starting the hierarchy model and renderer integration in owned branch feat/nested-semantic-lod-20261028, based on reviewed composition53c124c (layout #213 plus runtime #214). Those dependencies remain gated on their final CI/dev integration.

    The first work is failing hierarchy/accounting invariants, followed by actual nested navigation and camera-stability acceptance. No shared library or CodeGraph edits. Additional help is still useful for independent adversarial fixture/interaction review; coordinate before editing the same renderer/helper paths. #182 and #190 remain available for independent implementation work.

  2. 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 this hierarchy slice: stable nested semantic cuts, direct parent members/containment handling, exact item/edge accounting, expand/collapse, Auto hysteresis, mouse/keyboard/touch inspection and camera/focus return passed. Pure invariants and actual nested/301-node browser fixtures complement each other; summaries remain display-only.

    Actual import/export/MCP portability still requires #217. Detailed item wiring is #220; per-region budgets, DOM virtualization/progressive loading and1k/10k measurements remain under #193. This closure is dev acceptance of the documented hierarchy slice, not full LOD/release completion.

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