Skip to content

P0: Make agent setup explicit and preserve installed skills - #17

Merged
FernandoAbishai merged 3 commits into
mainfrom
fix/p0-onboarding-and-skills
Oct 23, 2026
Merged

FernandoAbishai merged 3 commits into
mainfrom
fix/p0-onboarding-and-skills

Conversation

@FernandoAbishai

@FernandoAbishai FernandoAbishai commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Problem and resulting behavior

On a fresh Mac, welcome showed an Install button labeled Claude Code even though setup had no selected installer; clicking it did nothing. Startup skill setup also deleted user-customized same-name skill folders before copying bundled versions. The welcome screen's last page additionally clipped its header/footer whenever setup was incomplete.

This PR requires explicit agent selection, preserves every existing user skill folder, and keeps first-run actions visible throughout setup.

Changes

  • Offer Claude Code, Codex, pi, or opencode in the welcome flow. Install is disabled until a provider is explicitly chosen; the chosen provider determines the installer.
  • Install bundled skills only if the destination is absent. Preserve all existing folders, including legacy, customized, untouched, direct/dangling symlinks. Validate bundled source trees and reject redirected destination ancestors before staging a missing skill.
  • When an agent is not ready, show a concise first-run setup layout and avoid rendering an unusable script-entry form. Use scrolling if the content exceeds the window height. When the selected agent becomes ready, script entry becomes available again even if optional tools still need setup.
  • Do not request camera or microphone permissions from the SwiftPM test host, which has no privacy usage descriptions. Normal application startup is unchanged.
  • Add light/dark snapshots for missing, selected, partially configured and ready first-run states; restore shared state and remove temporary test libraries.

Validation

  • Installed local Xcode 27.1 and its Metal Toolchain. Local Xcode 27.1 Swift compilation of the changed Swift target: passed.
  • Local focused Swift tests including OnboardingShots.pages, OnboardingTests, SetupTests, and AgentSetupTests: 29 tests in 5 suites passed (on final tree).
  • Existing skill-preservation tests: 12/12 isolated assertions passed; full focused Swift tests now also pass with Xcode installed.
  • Real light/dark onboarding screenshots visually inspected: missing agent, selected Codex, partial tool setup and fully ready states all keep footer and action controls in bounds. The first captured before-fix screenshots demonstrated the clipping; after-fix screenshots no longer clip.
  • Local release configuration build passed using Xcode 27.1 and its installed Metal Toolchain, with CUTMARK_REQUIRE_EMBED=1, native Mach-O checks, and ad-hoc signing. Verified the exact-head f7f0c12 Cutmark.app bundle and embedded cutmark-embed helper using codesign --verify --deep --strict. App was built only in an isolated worktree, never installed over the user's app.
  • git diff --check: passed.
  • Exact final head f7f0c12: CI run 39891625430 passed (complete tests in 12m46s, signed app build in 3m13s).
  • One isolated production-configuration build.sh completed locally, requiring the Metal semantic-search helper, with ad-hoc signing and native-binary checks. Verified Cutmark, cutmark-faces, and cutmark-embed are present; codesign --verify --deep --strict passed. Neither the installed app nor user recordings were replaced.

Scope and release gate

There is no automatic overwrite or upgrade of previously installed skills. A future explicit, user-reviewed migration may be designed for updating them. Existing installed-but-signed-out providers continue through the Sign in path; the chooser targets first-run Macs with no installed runner.

Current-head full CI and local visual onboarding validation are green, and the isolated app bundle passed packaging/signature verification. The PR is ready for review. A final interactive installation walkthrough on a truly fresh macOS user account has not been performed; no production installation, merge, or release is part of this PR update.

@FernandoAbishai
FernandoAbishai marked this pull request as ready for review October 23, 2026 03:05
Copilot AI balanced review requested due to automatic review settings October 23, 2026 03:05

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-23T03:05:46.799607Z
We couldn’t complete this review. Comment @codex review to try again.
f7f0c12 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@FernandoAbishai
FernandoAbishai merged commit ae55c64 into main Oct 23, 2026
2 checks passed
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.

2 participants