Build macOS-first CodeGraphy desktop app - #353
Closed
joesobo wants to merge 26 commits into
Closed
Conversation
🦋 Changeset detectedLatest commit: 4646c1b The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
# Conflicts: # packages/extension/src/webview/store/messageTypes.ts # packages/extension/src/webview/store/state.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Builds the first release-shaped macOS desktop app for Trello #275.
CodeGraphy for macOS is a local code navigator with a thin File and Folder hierarchy, a multi-language CodeMirror editor, and the existing WebGPU/WebAssembly Relationship Graph. A Tauri 2 Rust shell owns macOS integration and safe File I/O. A bundled Node 22.23.2 process calls Core for File Discovery, Tree-sitter analysis, Indexing, Graph Cache storage, graph state, and queries.
Architecture decision
@codegraphy-dev/graph-rendererpackage for all graph rendering ownership. Its root owns WebGPU drawing, camera geometry, and WebAssembly force/collision physics. Its/visualssubpath owns the Material Icon Theme matching, Node geometry, connection sizing, selection metrics, and force-control semantics shared by desktop and the VS Code Extension.@codegraphy-dev/graph-visualsworkspace package./visualsis a renderer export, not a compatibility package or second runtime boundary. Keeping it as a subpath prevents host-only icon/default imports from evaluating the WebGPU/WASM entry.Shipped on this draft
@codegraphy-dev/graph-renderer/visuals.<N> Nodes · <M> Relationshipscounts. Background deselection does not close the editor File. Graph Settings includes Reset. Panes are resizable. Close File clears only the editor document.Large-workspace evidence
The original packaged monorepo failure was:
Godot plugin
console.logoutput was corrupting the JSON Lines stdout protocol. The workspace has fewer than the 3,000 eligible-File budget; the limit was not the cause. The sidecar now reserves stdout for protocol messages and routes Core/plugin diagnostics to stderr.The final staged app's bundled Core runtime opened the real CodeGraphy monorepo Graph Cache successfully in one resident process:
read-settingsresponseThe user's packaged-app report of approximately 200 ms per File and several seconds of continued movement after Arrow release exposed an unbounded queue: every key event started a Rust read and scheduled another focus/scroll frame. The new queue has at most one active read and one replaceable latest request. The deterministic burst test proves bounded work, but a fresh human-perceived packaged timing is still required because the user revoked GUI/mouse automation. The prior 29.0 ms median / 53.0 ms p95 visual checkpoint predates this queue fix. The Profile timer starts before the Rust request and ends after two animation frames; it is not an editor-ready or GPU-completion measurement.
Verification
Current source checkpoint:
4646c1b98.pnpm install --frozen-lockfilepassed from this worktree.TURBO_FORCE=true pnpm run typecheck: 18/18 tasks, 0 cached.pnpm run lint: 18/18 tasks passed.TURBO_FORCE=true pnpm --filter @codegraphy-dev/extension typecheckpassed. It now includes the Extension E2EmoduleResolution: nodecompiler boundary.TURBO_FORCE=true pnpm --filter @codegraphy-dev/extension run build:vscodepassed: 10/10 build tasks, 0 cached, followed by the E2E compiler step./visualsto source inside the workspace and todist/visuals/index.d.tsin the packed npm manifest. This fixes the prior CI Playwright/VSIX resolution failure at the package boundary without aliases or consumer workarounds.pnpm --filter @codegraphy-dev/desktop build:bundle:ad-hocbuilt the app and DMG.pnpm --filter @codegraphy-dev/desktop check:bundleverified both artifacts, their nested code, the arm64 Node 22.23.2 Core runtime, and the 174 MiB runtime budget./Users/poleski/Desktop/CodeGraphy.appis the final ad-hoc bundle. The previous exact target was not running and was moved to Trash before replacement. The staged app was not launched or controlled.docs/researchfile is included in this PR.Visual proof
Large-workspace action proof from the previous packaged checkpoint:
Focused graph/workspace interaction proof:
Previous packaged warm timing evidence:
Keyboard-only switching proof from the previous packaged checkpoint:
Website desktop chapter at 1346 × 980:
The interaction GIFs predate the final bounded-navigation fix. They remain useful for product behavior, but they are not presented as proof of the new queue timing.
Release status and external gate
Do not publish the current ad-hoc build. Production release remains externally gated:
desktop-releaseenvironment withAPPLE_CERTIFICATE,APPLE_CERTIFICATE_PASSWORD,APPLE_API_KEY_P8,APPLE_API_KEY, andAPPLE_API_ISSUER.Desktop releasefrommainwith tagdesktop-v0.1.0. The workflow must use Xcode 26, Developer ID sign all nested code, notarize and staple the app and DMG, rerun verification, and upload only to a draft GitHub release.Intel Macs, macOS 25 and earlier, and a non-WebGPU renderer path are outside this release.