feat: pnpm workspace, deep links, and web repos page#476
Merged
wesbillman merged 3 commits intomainfrom May 5, 2026
Merged
Conversation
Consolidate desktop and web into a pnpm workspace with shared biome config. Add sprout:// deep link support to the desktop app with full workspace switching. Add a repos page to the web app that queries NIP-34 git repo announcements from the relay via NIP-01/NIP-42. Workspace & tooling: - Root pnpm-workspace.yaml with desktop + web packages - Shared biome.json config; child configs extend root - Single pnpm-lock.yaml at root (removed per-package lockfiles) - CI job for web (check + build) - Updated justfile for workspace-aware commands Desktop deep links: - tauri-plugin-deep-link + tauri-plugin-single-instance - sprout://connect?relay=<url> scheme with ws/wss validation - Frontend handler adds workspace and switches to it - macOS warm-start + cold-start + duplicate-instance forwarding Web repos page: - NIP-01 WebSocket client with NIP-42 AUTH (ephemeral keypair) - Queries kind:30617 repo announcement events - NIP-33 deduplication by (pubkey, kind, d-tag) - Responsive card grid with loading skeletons and empty state - Clone URL display with copy-to-clipboard - Deep link button to open repos in desktop app Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The pnpm workspace resolved @tauri-apps/api to 2.11.0 while the Rust tauri crate is 2.10.3. Tauri's build enforces matching major.minor versions. Pin @tauri-apps/api, @tauri-apps/cli, and @tauri-apps/plugin-opener to ~2.10 / ~2.4 respectively so the lockfile stays compatible with the Rust crate version. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tilde range ~2.4 resolved to 2.4.0, which mismatches the Rust tauri-plugin-opener crate at 2.5.3. Tauri build enforces matching major.minor across JS/Rust plugin pairs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
sprout://connect?relay=<url>support in desktop app — Rust-side URL validation, single-instance forwarding, and frontend workspace switching/reposwith NIP-42 AUTH (ephemeral keypair), NIP-33 dedup, responsive card grid, loading skeletons, and clone URL copyTest plan
pnpm typecheckpasses for both desktop and webpnpm check(biome) passes for both desktop and webpnpm buildsucceeds for both desktop and webcargo checkpasses for desktop Tauri crate (deep link plugins)cargo clippypasses workspace-wide.gitignoreverified:web/src/features/repos/is NOT ignored, rootrepos/still issprout://connect?relay=ws://localhost:3000and verify workspace switches/reposon web app connected to a relay with published git repos🤖 Generated with Claude Code