Skip to content

fix(v3): server-node setup wizard polish + dialog modal stacking + v0.0.23 - #12

Merged
aGamingGod1234 merged 2 commits into
mainfrom
fix/server-node-wizard-polish-v0.0.23
Apr 23, 2026
Merged

fix(v3): server-node setup wizard polish + dialog modal stacking + v0.0.23#12
aGamingGod1234 merged 2 commits into
mainfrom
fix/server-node-wizard-polish-v0.0.23

Conversation

@aGamingGod1234

Copy link
Copy Markdown
Owner

Summary

  • Setup wizard: drop "V3 Phase 2d" header artifact, rename "Pre-flight checks" → "System checks", rewrite overview prose. Auto-runs Docker/port/cloudflared probes on landing, with green/amber/red status indicators per row and direct install links for missing Docker/cloudflared.
  • Dialog modal stacking: bump backdrop+viewport from z-50 to z-[60]/z-[61] and raise backdrop opacity (bg-black/32bg-black/55) so the Add Environment dialog reads as clearly modal instead of looking like an inline panel stacked over the settings shell.
  • Settings copy polish: replace stale openai/codex docs link in the ServerNodeSetupPrompt with the V3 repo anchor, reword the "X devices" heading to clarify the count vs the paired-device list, rewrite the Server node URL override description to explain what it ties to.
  • Server runtime startup test: add the missing getThreadForkLineage mock so the bootstrap-targets test typechecks against the new ProjectionSnapshotQueryShape.
  • Release: bump packages 0.0.22 → 0.0.23.

Test plan

  • bun typecheck (10/10 packages green)
  • bun fmt clean
  • bun run test apps/web/src/v3/setup/state.test.ts (12/12 incl. new STEP_TITLES test)
  • bun run test apps/server/src/serverRuntimeStartup.test.ts (7/7)
  • bun run dist:desktop:win produces V3-Code-0.0.23-x64.exe (114MB, correct branding)
  • Smoke test: open wizard, confirm probes auto-run + green tick on Docker pass
  • Smoke test: open Add Environment dialog, confirm backdrop dims page

Notes

The v0.0.23 Windows installer was built from commit 4c6d7b35 (the wizard+dialog commit). The settings-copy polish in commit e9a3cab5 ships in the next binary release.

🤖 Generated with Claude Code

aGamingGod1234 and others added 2 commits April 23, 2026 22:11
- Wizard: drop "V3 Phase 2d" header artifact, rename "Pre-flight checks"
  to "System checks", rewrite overview prose, extract STEP_TITLES into
  state.ts so it's testable.
- Wizard preflight: auto-run Docker/port/cloudflared probes on landing,
  add green/amber/red status indicators per row, show direct install
  links for missing Docker / cloudflared.
- Dialog: bump backdrop+viewport from z-50 to z-[60]/z-[61] and raise
  backdrop opacity (0.32 -> 0.55) so settings-shell sticky rows can't
  paint above it; the Add Environment dialog now reads as clearly modal.
- serverRuntimeStartup test: add the missing getThreadForkLineage mock so
  the bootstrap-targets test typechecks against the new
  ProjectionSnapshotQueryShape.
- Bump release packages 0.0.20 -> 0.0.23.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… description

- Devices: replace stale openai/codex docs link with the V3 repo
  server-node-mode anchor, reword the "X devices" heading to clarify
  it counts Drive-published installs (not paired devices), and add a
  one-liner explaining why the list below may be shorter.
- Connections: rewrite the Server node URL override description to
  explain *what* it ties to (force-target a specific server, useful
  for staging / custom hostnames; blank = auto-discover) instead of
  jargon about "Drive discovery wins over desktop bootstrap".

Note: the v0.0.23 installer was already built from the prior commit;
this polish ships in the next binary release.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 23, 2026 14:14
@github-actions github-actions Bot added size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Apr 23, 2026
@aGamingGod1234
aGamingGod1234 merged commit f4cd586 into main Apr 23, 2026
8 of 10 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Polishes the V3 server-node setup wizard UX (copy + preflight status rows + step titles), improves modal stacking/contrast in the dialog component, updates settings copy, and bumps package versions to 0.0.23.

Changes:

  • Introduce shared STEP_TITLES and update wizard copy/labels (e.g., “System checks”), plus add a small unit test for the title mapping.
  • Enhance setup wizard preflight step with auto-running probes, per-row status indicators, and install links.
  • Increase dialog backdrop/viewport z-index and darken the backdrop to make dialogs read as clearly modal; bump package versions.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/contracts/package.json Bump contracts package version to 0.0.23.
apps/web/src/v3/setup/state.ts Export shared STEP_TITLES for wizard steps.
apps/web/src/v3/setup/state.test.ts Add a unit test asserting the new preflight step label.
apps/web/src/routes/setup.tsx Wizard UX polish + preflight auto-run probes with status UI and install links.
apps/web/src/components/ui/dialog.tsx Raise dialog backdrop/viewport z-index + increase backdrop opacity.
apps/web/src/components/settings/DevicesSettingsPanel.tsx Copy polish and update docs link to V3 repo anchor.
apps/web/src/components/settings/ConnectionsSettings.tsx Clarify “Server node URL override” description text.
apps/web/package.json Bump web app version to 0.0.23.
apps/server/package.json Bump server app version to 0.0.23.
apps/desktop/package.json Bump desktop app version to 0.0.23.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +382 to +386
label={`Port ${state.exposure.bindPort}`}
value={portLine}
status={portStatus}
onRun={runPort}
/>

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The port preflight result can become stale if the user changes state.exposure.bindPort on the Exposure step after the initial probe. When returning to Preflight, the row label uses the new bindPort, but the stored preflight.port (and isPreflightReady) can still reflect the old probed port, allowing continue for the wrong port. Consider resetting preflight.port to "unchecked" when handling set-bind-port, or re-probing when the stored port.port doesn’t match state.exposure.bindPort.

Copilot uses AI. Check for mistakes.
? `cloudflared ${cloudflared.version ?? "ok"}`
: "Not installed (install if using Cloudflare Tunnel)";
? `cloudflared ${cloudflared.version ?? "detected"}`
: "Not installed — only required for the Cloudflare Tunnel option";

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cloudflaredLine treats any non-ok result as “Not installed…”, which is incorrect for cloudflared.status === "error" (probe failed but the binary may exist). This can mislead users and hide real failures. Consider branching on missing vs error and showing a distinct message (and possibly a different status) for the error case.

Suggested change
: "Not installed — only required for the Cloudflare Tunnel option";
: cloudflared.status === "missing"
? "Not installed — only required for the Cloudflare Tunnel option"
: `Error checking cloudflared: ${cloudflared.message ?? "unknown"}`;

Copilot uses AI. Check for mistakes.
Comment on lines 391 to +393
onRun={runCloudflared}
installHref="https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/"
installLabel="Install cloudflared"

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Cloudflare install link is hardcoded even though the wizard IPC contract already returns installDocsUrl as part of the probeCloudflared result (packages/contracts/src/ipc.ts). Using the returned URL would avoid duplication and prevent drift if the docs link ever changes. This likely requires typing preflight.cloudflared with the contract shape (or at least preserving installDocsUrl).

Copilot uses AI. Check for mistakes.
Comment on lines +27 to +28
// Bumped from z-50 to z-[60] so settings-shell rows (which use z-50
// for sticky headers) can never paint above the modal backdrop.

Copilot AI Apr 23, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new comment claims “settings-shell rows … use z-50 for sticky headers”, but a repo-wide search doesn’t show any z-50 usage in the settings layout/route (e.g. apps/web/src/routes/settings.tsx and components/settings/settingsLayout.tsx). Consider updating this comment to reference the actual overlapping element(s) or reword it more generally (e.g. “bump z-index to ensure dialogs overlay other app chrome”).

Suggested change
// Bumped from z-50 to z-[60] so settings-shell rows (which use z-50
// for sticky headers) can never paint above the modal backdrop.
// Bumped from z-50 to z-[60] to ensure the modal backdrop renders
// above overlapping app chrome and similar layered UI.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants