Skip to content

setup: fast-browser rows ask doctor for four checks; extension row reads extension-installed - #407

Merged
m4ttheweric merged 5 commits into
mainfrom
fb-doctor-checks
Sep 24, 2026
Merged

m4ttheweric merged 5 commits into
mainfrom
fb-doctor-checks

Conversation

@m4ttheweric

@m4ttheweric m4ttheweric commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Every rt setup plan (checklist open, Re-check, Settings) ran a full fast-browser doctor: 22 checks, 13 to 15s here, about 13s of it a live Codex agent smoke the rows never read.

  • probeFastBrowser runs doctor --checks runtime-checksum,extension-installed,extension-loaded,pairing --json (fast-browser 0.1.4+, doctor: --checks runs only the named checks (0.1.4) fast-browser#11).
  • A fast-browser before 0.1.4 refuses --checks as a usage error (exit 2, empty stdout); the probe then reruns the full doctor.
  • The extension row now reads extension-installed first. extension-loaded passes when no managed extension is loaded at all, so the row could read ready with no extension. A failing extension-installed is needs-you with doctor's own message, and its steps are doctor's own remedy (falling back to the load steps): doctor tells a missing extension from a Web Store copy on another version, and the load steps would trade a store copy for one that never auto-updates. An absent check is an error with Re-check.
  • deps.lock: fast-browser 0.1.5 (doctor: Web Store installs pass extension-installed; leftover unpacked records are not installs (0.1.5) fast-browser#12: Web Store installs pass extension-installed, stale Chrome records are not installs). sha256 from the npm tarball; its sha512 matches npm's integrity.

Verified:

  • bun test lib/setup lib/release scripts: 1303 pass, 0 fail. A mutant with the fallback disabled fails the fallback test.
  • This branch's rt setup plan on a real Mac with the bundled 0.1.3 takes the fallback path.
  • The published 0.1.5 tarball, run with the bundled node and rt's exact four-check call on that Mac (Web Store copy of the extension): 0.40s, all four pass.

🤖 Generated with Claude Code

m4ttheweric and others added 2 commits September 24, 2026 09:45
…ion row reads extension-installed

The full doctor spends most of its 13-15s on a live Codex agent smoke
the rows never read. extension-loaded passes when no managed extension
is loaded at all, so reading it alone called a Mac with no extension
ready. A fast-browser without --checks refuses it as a usage error, and
the probe reruns the full doctor.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Warning

Review limit reached

Next included review available in 12 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 83 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 6870fdcf-a1eb-4cf0-ae29-026f529f3505

📥 Commits

Reviewing files that changed from the base of the PR and between 3d975a8 and 0e8fd6e.

⛔ Files ignored due to path filters (1)
  • rt-tray/deps.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • lib/setup/__tests__/validators-tools.test.ts
  • lib/setup/validators/tools.ts

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 4e62a94b-fd5f-40c3-be09-026693537fd3

📥 Commits

Reviewing files that changed from the base of the PR and between b3087c6 and 3d975a8.

⛔ Files ignored due to path filters (1)
  • rt-tray/deps.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • lib/setup/__tests__/plan.test.ts
  • lib/setup/__tests__/validators-tools.test.ts
  • lib/setup/validators/tools.ts

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

The Fast Browser probe now requests selected doctor checks and falls back to the full doctor command when needed. The extension row also checks whether the extension is installed and reports missing or failing installation results.

Changes

Fast Browser doctor validation

Layer / File(s) Summary
Targeted doctor probe and fallback
lib/setup/validators/tools.ts, lib/setup/__tests__/validators-tools.test.ts
The probe requests four checks with --checks and retries with the full doctor command if the targeted command exits 2 with empty stdout. Tests cover the targeted request, fallback, timeouts, and doctor reports from commands without --json.
Extension installation check
lib/setup/validators/tools.ts, lib/setup/__tests__/validators-tools.test.ts, lib/setup/__tests__/plan.test.ts
The extension row checks extension-installed before checking whether the extension is loaded. Tests cover failed and missing installation checks, and the plan fixture includes a passing installation check.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 3d975

The faster setup check retains a full-doctor fallback, and no actionable merge-blocking issue remains after normal checks.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 12 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: requesting four Fast Browser doctor checks and using extension-installed in the extension row.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

m4ttheweric and others added 3 commits September 24, 2026 10:12
doctor tells a missing extension from a store copy on another version;
the load steps would trade a store copy for one that never auto-updates.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ctor reaches the row

A stale unpacked load needs Chrome's reload arrow, and loading unpacked
again wipes the reconnect token. A wrong-typed remedy or message would
fail the app's decode of the whole plan.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@m4ttheweric

Copy link
Copy Markdown
Collaborator Author

Review of record for the commits after CodeRabbit's full review (CodeRabbit was rate limited on them): Opus, Approved, with two non-blocking notes, both fixed in the last commit.

  1. Only string text from doctor reaches the row. A wrong-typed remediation or message would fail the app's decode of the whole plan. Test added.
  2. A failing extension-loaded (a stale unpacked load) now shows doctor's remedy (the reload arrow) too. Loading unpacked again wipes the reconnect token and forces a re-pair. Test added.

Also confirmed: every consumer handles a one-step steps action; the deps.lock sha256 matches the npm tarball; preflight.test.ts's 0.1.3 is a fixture, not a pin. bun test lib/setup lib/release scripts: 1305 pass, 0 fail.

@m4ttheweric
m4ttheweric merged commit c5d64c8 into main Sep 24, 2026
6 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.

1 participant