Skip to content

Windows port implementation tracking #89

Open

Description

@coneilen

Current reconciliation - 2026-11-09

Native Windows delivery is incremental; whole macOS parity is NOT complete. This reconciliation reviewed 64 relevant issues (53 open, 11 closed), including the parity-label inventory and directly related onboarding, navigation, lifecycle, tooling and rendering issues. It preserves existing discussions, attribution, historical failures and acceptance checklists; it does not infer missing features from stale ledger rows or close broad visual trackers from unit/CI results.

Verified delivery and release boundaries

Live main was 2073e81af4f89f6eb11f27366f732b391808b3a8. GitHub compare reports zero commits behind main for each of these merges:

Functional unit Verified merged delivery Accepted scope / remaining boundary
Wire #962, 1aa4a225c3082e2d2daf9ea0d0663448def4051a Normal W1: locked native/semantic endpoints and one correlated applied edge; not every control/state, paired rendering or complete native save/reload qualification
Restored terminal input #963, fd8d1516430877e4bce3a6466695d29402ed5120 Actual selected-pane input after workspace close/reopen without focus repair; not whole terminal glyph/clipboard/selection/device/resize parity
New Workspace form/Create & Open #965, ca286b4bdb42574db0e148f75e3b8cdb1f19858c Directory/window preview and bounded directory/distinct-window/selection/onboarding/exact-path observer publication; not whole visual parity or direct application-own-pipe custody

Windows beta31 is published from fd8d, BEFORE #965. It includes Wire/restored-input and preceding card/terminal work, not #965's new workspace form or #966's subsequently merged creation-only naming work. Its ZIP build/Verify and manifest hashes are release evidence, not an installer or in-app beta30-to-beta31 walkthrough.

Live exact-head PR check inventories were nonempty and complete: #962 head 1a5514a has 23 SUCCESS / 5 SKIPPED, #963 head 04cc0e7c has 23 SUCCESS / 5 SKIPPED, and #965 head 6afc111 has 22 SUCCESS / 5 SKIPPED. These are PR-head checks, not executions on the merge SHA. Linux/macOS path-gated skips are NOT executions. The #965 E1 local checkpoint records 684 unique units / 2,238 direct executions plus one separately derived proof / 66 shell sections; older 2,231-direct/65-section reports remain historical and correct for their own inputs. Source-bound native receipts are not relabeled as merged-head runs.

Creation-only workspace naming is now in main: PR #966 merged on 2026-11-09 at f0e8ac1e11a29d25f6282142a5be6339ae4c23ea (tree 78174bcac01e5a3ddcd6b0e955c8c5e69896c6d7). All 26 checks on PR head c30b789c2cb70a970960550b6b9e01b5f4f1af7e completed: 21 SUCCESS / 5 SKIPPED, including legitimate Linux/macOS skips, not executions. Local naming/full/shard/default-integration acceptance retains its original source bindings, NOT newly executed merge-head runtime evidence; original wrapper policy-stop and earlier integration failures remain preserved. Existing directory identities and legacy rename are unchanged. This bounded creation-only change does not establish all-Unicode or paired visual/device parity. Windows beta32 was published as a public prerelease on 2026-11-09 at 17:48:21Z from exact f0e8ac1e11a29d25f6282142a5be6339ae4c23ea / tree 78174bcac01e5a3ddcd6b0e955c8c5e69896c6d7, including #965 and #966. Hosted release run 42665844030 completed successfully on attempt 1 at that source. GitHub lists exactly the 49,982,485-byte ZIP (SHA-256 010807612977ffba628f0cb0a8c77e0fd09767aba93d7eae7b60b5c1d7430402) and 96-byte checksum sidecar; release evidence records fresh build/Verify and 50/50 manifest hashes. This unsigned invitation-only preview is not an installed beta31-to-beta32 upgrade, installer walkthrough, all-Unicode or whole-parity qualification; publication does not relabel old native receipts as new executions. Beta31 remains fd8d-based and excludes both #965 and #966. Local 040ba native acceptance records nine facts/two Create & Open cases/three preserved legacy identities; unfiltered 684 units with 2,238 direct executions plus one derived proof, the 66-section three-shard union and canonical default integration were separately accepted with all-six cleanup evidence. This does not resolve loop/node collisions in #94.

Issue summaries actually updated

Dated current scope/progress was added to 31 issue bodies, with 13 stale titles corrected. Original bodies remain intact below the dated update and no whole visual checklist was ticked.

Issues Reconciled status and residual
#729 Open/Partial: record #962 W1; remove obsolete edge-UIA-fragment parity demand; full native controls/render/persistence remain
#736, #745, #746 Open/Partial: honor prior macOS scope narrowing; record bounded restoration without claiming glyph/device/whole accessibility or shortcut qualification
#556, #779 Open/Partial: #905 five-page implementation is merged; current packaged physical-input and paired page visuals remain
#723, #780 Open/Partial: #912 saved-session discovery and #913 other-workspace update check are implemented; real delete/recovery and update-choice outcomes remain
#768, #769, #771 Open/Partial: #911 shared sheets, #914 New Loop, #922 Settings and #965 New Workspace are delivered; every whole visual/native matrix remains unclosed
#764, #772, #774, #775 Open/Partial: later card recovery/attention/cycle, workspace/Quick Chat chrome, terminal fonts and restoration are recorded; all-state paired visuals and unqualified actions remain
#720, #724, #767, #781 Open/Partial: #909 narrow layout, #919 zoom/first-fit and #920 global lanes supersede missing-feature claims; complete destination/action/width/paired runtime acceptance remains
#734, #778 Open/Partial: #958 delivers bounded local card transfer/retype; background/remote scope and complete menu/outcome/visual matrix are not inferred
#726, #730, #732, #733, #751, #752 Open/Partial: preserve prior narrowed macOS scope, rather than demanding Windows-specific extras; precise touchpad/custody/title/branch/image/rename/render obligations remain
#742, #743, #744 Open/Partial: #763 fixes historical PSModulePath cause; actual in-app upgrade/relaunch continuity and actionable generic install error remain unqualified
#822 Open/Partial: current compiled runner/observation/terminal/workspace evidence and scoped counts recorded; entire G2 compatibility/authority/lifecycle matrix is not claimed

Reviewed without manufacturing new evidence

These open issues retain unresolved scoped criteria; no current evidence justifies closure: #721, #722, #727, #728, #735, #739, #740, #748, #749, #750, #753, #765, #770, #773, #777, #799, #801, #857, #858, plus the separate layout-sharing product bug #712. Current App.jumpToNode still selects the project canvas (#799); the native provider still restricts SelectionItem to dynamic row keys (#801). Those are not presumed fixed by newer unrelated PRs.

#94 has no scoped issue body: loop/node collisions must not be equated to creation-only workspace slug normalization. Deliberate Windows extras in #770/#778 still require their own product decision; this metadata reconciliation does not authorize removal or a native-host rewrite.

These 11 existing closures are preserved, not reopened merely because a broader visual row is Partial: #725, #731, #737, #738, #741, #766, #776, #808, #812, #818, #915. Functional/tooling scope, extras-outside-parity decisions and their original evidence remain distinct from whole-port visual acceptance.

No new issue was created or closed. The finite M0-M4 functional cycle is delivered; whole Windows parity, paired visuals, higher-DPI/mixed-monitor/devices, complete glyph/clipboard/selection, onboarding/project/ingress/remote obligations remain incremental. No source/runtime changes, builds, tests, installs, desktop sessions, new images/privacy verdicts or CI dispatch/retry were performed by this headless issue reconciliation. Original failed/UNKNOWN/missing-cleanup/foreground attempts remain original failures or uncertainty; later passes do not rewrite them.


The original contributor task registry and dated baseline history below are preserved. Broad multi-surface task boxes are not blanket-checked from this finite functional cycle.

Goal

Deliver a native Windows x64 port of GraphCode while preserving the shared Swift
orchestration model, persistent terminal sessions, POSIX remote-host support, and the
application's terminal-first visual identity.

Provider streams

Execution rules

  • Red/green/refactor TDD for every feature and bug fix.
  • Dedicated worktree per task.
  • Green, DCO-signed commits cherry-picked individually into the Windows integration branch.
  • Provider commits pinned before GraphCode consumes them.
  • Existing macOS behavior remains green throughout.

Durable task registry

  • win-bootstrap — validation matrix, forks, tracking, worktree conventions
  • win-tdd-harness — RED/GREEN/REGRESSION evidence and deterministic fixtures
  • win-contracts — platform/protocol/provider/remote contracts
  • win-swift-platform — shared Swift package, paths, process, shell
  • win-protocol-dualstack — v1 compatibility and v2 correlation/subscriptions
  • win-daemon-pipe — Windows daemon and CLI
  • win-wing-baseline / win-wing-host-api / win-wing-* — terminal host extraction
  • win-zmx-rebase / win-zmx-platform / win-zmx-* — real zmx Windows backend
  • win-remote-spike / win-remote-bridge / win-remote-e2e — POSIX remote parity
  • win-terminal-gate — two complete persistent terminal surfaces
  • win-shell-scaffold — native Zig/Win32 GraphCode shell
  • win-sidebar / win-canvas / win-workspace / win-forms / win-attention-worktree
  • win-ui-integrate — visual, keyboard, DPI, IME, and accessibility integration
  • win-packaging / win-hardening / win-final-pr

Each task update should record repository, branch/worktree, base SHA, owner, RED command
and failure, GREEN command and result, regression command, provider pin, PR, integration
commit, blockers, and next dependency.

Activity

  1. coneilen commented on Aug 12, 2026

    @coneilen
    CollaboratorAuthor

    Bootstrap update

    TDD evidence

    • RED: Tools/windows/Tests/ValidationRunner.Tests.ps1 failed because the runner/task did not exist; Tools/tdd/Tests/TddEvidence.Tests.ps1 failed because the validator did not exist.
    • GREEN: both focused contracts pass.
    • REGRESSION: Tools/windows/validate.ps1 -Task all passes on Windows with Swift 6.3.3; privacy and DCO range checks pass.

    Next dependency: win-contracts.

  2. scgopi commented on Aug 12, 2026

    @scgopi
    Owner

    [graphcode-fixer] Classified as enhancement (out of scope for automated bug fixing): this is a tracking issue for a native Windows x64 port — a new platform capability spanning many work streams, not a report of broken behaviour in the current macOS app.


    Generated by Claude Code

  3. coneilen commented on Aug 12, 2026

    @coneilen
    CollaboratorAuthor

    Contract-base update

    • win-contracts: complete
    • Integrated GraphCode contract base: ece55b6

    TDD evidence

    • RED: swift-contracts failed because wire/platform types were absent; focused tests also caught version-1 envelopes, mixed-kind fields, ignored untracked Swift sources, and validation tasks deleting another task's resources.
    • GREEN: 11 contract tests pass for frozen v1 decoding, strict v2 envelopes, negotiation, bounded framing, process requests, and remote bridge-state validation.
    • REGRESSION: Tools/windows/validate.ps1 -Task all, privacy checks, concurrent validation isolation, and DCO range checks pass.

    Provider/foundation branches must record ece55b6 as CONTRACT_BASE.

  4. coneilen commented on Aug 12, 2026

    @coneilen
    CollaboratorAuthor

    Integrated win-visual-baseline as c13fbde. RED/GREEN visual contract, manifest validator, privacy, formatting, and deterministic fixture tests pass. Remote-spike branch is rebasing onto this commit before integration.

  5. coneilen commented on Sep 16, 2026

    @coneilen
    CollaboratorAuthor

    Windows baseline integration update:

    Remaining release/governance work: enable the currently disabled MainProtector ruleset and require the DCO, Linux, macOS, Windows shell, Windows port, and deterministic hardening checks; establish durable project-controlled provider retention; publish/sign the installer and complete install/update/relaunch lifecycle validation. The 56 partial parity rows remain follow-up scope, not a merge blocker for the labeled baseline.

  6. coneilen commented on Sep 16, 2026

    @coneilen
    CollaboratorAuthor

    Exact-tip full pinned release hardening passed on 696b713: https://github.com/scgopi/GraphCode/actions/runs/35046869986

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions