Skip to content

fix(setup): recover from an empty profile catalog - #102

Merged
drewstone merged 7 commits into
mainfrom
fix/setup-discovery-recovery-20260927
Sep 27, 2026
Merged

drewstone merged 7 commits into
mainfrom
fix/setup-discovery-recovery-20260927

Conversation

@drewstone

@drewstone drewstone commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

User outcome

When setup finds no profiles, a user can recover without restarting Braid:

  • Retry discovery rereads the existing CLI Bridge catalog and workspace profile files.
  • Setup instructions explains the local/profile/cloud paths.
  • Show diagnostics retains the full discovery details without filling the first screen.
  • Escape returns from details, then leaves setup. A cancelled retry cannot reopen it.

The first retry stays selected and keyboard reachable at 40×12 through 200×60. Repeated Enter presses share one in-flight discovery. Exceptions use the maintained error redaction and duplicate diagnostics are removed.

Before and after

Before (public 0.3.2) After (this source)
Before After

All four sizes and receipts · Recovery recording · Cancel recording

Checks and review

  • Actual PTY capture: add a profile after startup, retry, select it, reach the connection chooser without restart.
  • Delayed-discovery capture: three Enter presses caused exactly two HTTP reads (one batch); Escape closed setup; delayed replies caused no late redraw.
  • Captures used isolated state and no production credentials. No model calls or Apply were performed. The delayed service exercises UI timing, not provider execution.
  • Source compiled; changed files passed Biome lint, boundary checks, git diff --check, and commit/push hooks.
  • Updated the existing empty-catalog assertion for instructions → back → cancel. The new component is registered in the existing design inventory; the unchanged test/component-docs.test.ts passes both assertions. Existing repository CI runs the full configured checks.
  • Independent source review covered retry races, cancellation, source routing and saved configuration. Independent visual review caught and fixed a truncated profile path.

Delivery

The Braid owner agreed to this source surface in the comment on #100. The onboarding documentation in #100 is merged at 0e1b78bfca7fb685532a1496090a972b49ae7be4, and this branch includes that main revision. Provider authentication, model validation, transport, and persistence remain on the existing setup path. No profile/model is created automatically, and no package is published by this PR.

Rollback: revert the source change. No data migration is involved.

tangletools
tangletools previously approved these changes Sep 27, 2026

@tangletools tangletools 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.

✅ Auto-approved PR — 75bdcb8b

Blanket team auto-approval is intentional. The merge gates are CI and codex-p1.
No automated review runs on this PR. This approval rests on the rule above alone.

tangletools · auto-approval · reason: blanket_auto_approve · 2026-09-27T04:42:45Z

tangletools
tangletools previously approved these changes Sep 27, 2026

@tangletools tangletools 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.

✅ Auto-approved PR — e150dcef

Blanket team auto-approval is intentional. The merge gates are CI and codex-p1.
No automated review runs on this PR. This approval rests on the rule above alone.

tangletools · auto-approval · reason: blanket_auto_approve · 2026-09-27T04:50:24Z

@drewstone

Copy link
Copy Markdown
Contributor Author

Owner readback at 05:05Z: exact head b385820 verify run36295519659 failed at05:01:33Z. The one failed case is component-docs: exported ConfigurationRecovery in src/views/tui/configuration-recovery.ts has no component design-document mapping. Other three CI jobs passed; exact-head approval is attached.

portfolio_status owns this narrow correction and rerun; root is preserving that ownership. Raw log retained at /tmp/braid-pr102-verify-failure-20260927.log. Speed field36294950745 is independently green on frozen b5cb/public032476307 and overlap is OFF; no source serialization hold remains.

@tangletools tangletools 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.

✅ Auto-approved PR — 6ab44ae7

Blanket team auto-approval is intentional. The merge gates are CI and codex-p1.
No automated review runs on this PR. This approval rests on the rule above alone.

tangletools · auto-approval · reason: blanket_auto_approve · 2026-09-27T05:05:38Z

@drewstone
drewstone merged commit 59657a5 into main Sep 27, 2026
4 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