Skip to content

Restore connected canvas origins, ports and overview edges - #878

Draft
coneilen wants to merge 2 commits into
coneilen-card-live-detail-parityfrom
coneilen-connected-canvas-structure
Draft

coneilen wants to merge 2 commits into
coneilen-card-live-detail-parityfrom
coneilen-connected-canvas-structure

Conversation

@coneilen

Copy link
Copy Markdown
Collaborator

Summary

Restore connected graph furniture on the Windows project and overview canvases without changing existing card placement, action bounds, or hit/UIA card geometry. This is a draft, Partial dependent layer above #872 (coneilen-card-live-detail-parity, fork e5564c024af4fce21f839a0a0d86aab76bafbb8f); it preserves that layer's card live-detail work.

Changes

  • Add 10-point leading ports for entry/unwired cards, distinct 12-point ENTRY markers, quiet origin connections, and a circular 14-point continuation handle. Preserve existing drag and action targets.
  • Share signed, facing-edge cubic geometry between graph paint and edge hit testing. Use subdued structural ink, kind-specific dashes, directed heads and a separate fired pip instead of turning fired routes green. Existing edge-label semantics, placement and historical pixel/ownership checks are unchanged.
  • Paint actual edges on every overview lane, retain the notebook grid through transparent outlined bands, and add folder glyph/count captions. Existing scoped Open/Worktrees/inspection actions and truthful unknown-inspection reporting remain.
  • Update the direct closed export contract from exactly zero to exactly four overview painted edges, with zero/three/five rejected. Keep exact source/fixture binding and every other profile unchanged; historical receipts are not rewritten. Correct only the corresponding README paragraph.
  • Update only the live gate's outgoing-hover color/comment to the actual light plus glyph, retaining radius/tolerance. A source-bound offscreen test reads that exact literal and requires both negative unhovered and positive hovered results.

Source basis at macOS commit 2ccf303a04f995184aae1d4b738a9eca0f71b79e: graphcode\Sources\Features\Canvas\LoopCardView.swift:45-52,112-126; CanvasConnectorHandle.swift:11-20; CanvasEdgeGeometry.swift:63-101; CanvasBand.swift:22-38,167-240; and graphcode\Sources\Features\Project\CanvasEdgeViews.swift:105-129. The relevant source files match this checkout. Ports/routing ownership is coordinated on #840; this work does not retroactively clear historical edge-oracle failures.

Test plan

RED: & $env:GRAPHCODE_ZIG0152 test src\GraphCanvas.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --cache-dir D:\gc-lane7-tools\cache --global-cache-dir D:\gc-lane7-tools\global-cache --test-filter "connected canvas" -> inherited renderer: 0 passed; 0 skipped; 5 failed (TestUnexpectedResult: ports, reverse-curve hits, notebook visibility, overview edges, ENTRY origin).
GREEN: & $env:GRAPHCODE_ZIG0152 test src\GraphCanvas.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --cache-dir D:\gc-lane7-tools\cache --global-cache-dir D:\gc-lane7-tools\global-cache --test-filter "connected canvas" -> reviewed commit 52ffaa5: 8/8 passed, zero skips, native painting enabled.
REGRESSION: & $env:GRAPHCODE_ZIG0152 test src\GraphCanvas.zig -target x86_64-windows-msvc -lc -luser32 -lgdi32 -lgdiplus "-I$env:GRAPHCODE_WINGHOSTTY_ROOT\include" --cache-dir D:\gc-lane7-tools\cache --global-cache-dir D:\gc-lane7-tools\global-cache -> 330 named cases: 315 passed; 15 skipped; 0 failed on the default path.

Commands ran from graphcode-windows with the bootstrapped pinned Zig 0.15.2/provider and owned TEMP/cache roots. Focused native runs set GRAPHCODE_NATIVE_PAINT_TESTS=1; the complete default-path run did not. Its 15 skips are three opt-in exports plus twelve native-AA cases, not successful executions.

Additional executed evidence:

  • Same Zig root/flags/cache with --test-filter "loop card" and native painting enabled: 38/38 passed, zero skips, including the unchanged five edge-label tests. This is a separate native partition, not an unfiltered native-AA suite.
  • pwsh -NoProfile -File Tools\windows\Tests\CanvasPaintArtifact.Tests.ps1 -ScratchRoot D:\gc-lane7-tools\contracts-for-pr: 11/11 native-log, 8/8 codec, 18/18 scene contracts passed. Before the converter change, its new four-edge overview round trip failed with PaintEvidenceInvalid, and the zero-edge negative incorrectly succeeded. The final exact profile accepts four and rejects zero/three/five while retaining all other negatives.
  • Separate continuation REDs observed the square painting outside the intended circle and the stale consumer literal rejecting the new glyph. Final source-bound positive/negative checks pass without changing live-gate search radius or tolerance.
  • & $env:GRAPHCODE_ZIG0152 build -Doptimize=ReleaseSafe "-Dwinghostty-dir=$env:GRAPHCODE_WINGHOSTTY_ROOT" -j1 --cache-dir D:\gc-lane7-tools\app-cache --global-cache-dir D:\gc-lane7-tools\global-cache --prefix D:\gc-lane7-tools\app-out: passed, with the pinned host built separately in its owned provider checkout.
  • Existing paint export: project-paint-v1 and paint export: overview-paint-764: 1/1 passed each, three identical RGB renders each, both accepted by the complete source/fixture/binary/log-bound converter at 52ffaa5630fec24398468c8ab7edba9a84d1516f.
  • One fresh-eyes code-review task on the complete five-file dependent diff reported no significant issues.

Two existing native assertions initially failed because they assumed an opaque overview ground and sampled the stripe exactly where the new leading port belongs. The corrected tests retain every observation: halo contrast is measured against the actual grid/band background, and the stripe sample moves from y=48 to y=40, outside the source-derived 10-point port. No edge-pixel, ownership, or fixture-validation checks were relaxed. Initial test-syntax and compile failures were preserved separately and are not the behavioral RED evidence.

Limits: One private paired review against selected, correctly qualified 100% macOS references confirms visible component improvements, not equivalent topology or parity acceptance. Existing packed node placement and narrow gutters remain, rather than macOS graph-derived chains and its 62-point origin lane. Global START structure, origin-plus actions, richer aggregate/worktree captions, and inactive-project declared-entry propagation remain follow-ups; no unavailable data is invented. Bands are transparent outlines, not a claimed SwiftUI material/alpha-compositing match. No new desktop capture, physical input, native UIA/drag execution, daemon/backend/persistence, higher-DPI walkthrough, or macOS make test/make check was run. Queued rail/grid/control/card-wrapper/reclaim work and the shared header are not part of this layer. The shared parity ledger is unchanged.

Checklist

  • I have read the Contributing Guidelines
  • I have signed off my commits (git commit -s) per the DCO
  • Tests pass locally (make test)
  • Code follows the existing style (make check)
  • I added the test/contract before the implementation and observed the intended RED failure

coneilen and others added 2 commits October 18, 2026 12:06
Keep handed lines when reported activity is only Unicode whitespace,
preserve whole metric precision, and reserve the metric change at the
trailing edge. Show measured progress independently of attention warmth,
but never under human actions or reclaim offers. Exercise production
project and overview paint with synthetic metric fixtures.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 61e79265-048f-4a4d-b414-c745b44ca098
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
Add entry ports and origins, quiet facing-edge routes, transparent folder bands, and overview connections without changing card or action geometry. Bind the direct export and hover consumers to their new exact production contracts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 66e55526-050a-4266-8650-99301ce14c3a
Signed-off-by: Colin Neilens <coneilen@microsoft.com>
@coneilen
coneilen added this pull request to stack #879 October 18, 2026 20:33

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant