Skip to content

fix(控制台): next must not claim ready on doctor FAIL - #55

Merged
Dandre126 merged 1 commit into
mainfrom
cursor/next-fail-honesty-37a3
Aug 21, 2026
Merged

fix(控制台): next must not claim ready on doctor FAIL#55
Dandre126 merged 1 commit into
mainfrom
cursor/next-fail-honesty-37a3

Conversation

@Dandre126

Copy link
Copy Markdown
Contributor

Why

After #54, dyro next --format json on a workspace whose doctor has only missing origin/<branch> FAILs still returned state: "ready", commands: [], and summary: "工作区已就绪。". Findings were extra payload. Isolated Console never saw real next.commands because _inspect_worker built ConsoleOverviewService with the default empty commands_loader.

This is CLI next + Isolated honesty only. ADR 0005 is unchanged: the page still cannot merge, push, --yes, or task-status. dyro start still treats missing-origin as non-blocking.

Inverted locks

  • Ready-on-missing-origin: tests/test_workspace.py::test_local_only_line_creates_but_doctor_and_next_are_not_ready and tests/test_cli.py::test_control_plane_next_preserves_an_explicit_workspace_selector no longer accept state: "ready" + empty commands while missing-origin FAILs are attached. They now require needs_repair, scoped dyro --workspace ALIAS doctor, mutation_available: false, and findings present. Human text must print the FAILs and point at doctor, not 「工作区已就绪。可用 dyro start…」.
  • Isolated empty commands: Isolated _inspect_worker must construct ConsoleOverviewService with commands_loader=next_commands. _capture now passes the registry alias into that loader. A FAIL workspace must not recommend a bare dyro --workspace ALIAS, and Isolated is not stuck with empty commands while production _capture is not.

Non-bootstrap FAILs (missing repo without a safe clone, symlink parent, etc.) also put doctor in commands so Isolated and CLI share one repair list. Bootstrap --yes stays the mutation command when it is the only applicable FAIL.

Ready-path next tests that were accidentally sitting on unpublished origin (test_next_with_one_live_objective_points_to_follow_up, test_next_with_two_live_objectives_does_not_pick_one) now publish origin/feat/alpha so they still lock the honest ready/briefing contract.

Hunch (verified)

The ready branch after blocking_failures (which excluded is_missing_origin_finding) was the entire next lie: missing-origin-only FAILs fell through to _workspace_ready_briefing, which hardcodes state: "ready" and commands: []. Isolated’s empty loader was the remaining console hole from the #54 review. Both are fixed; start() was left alone.

Do not

  • No version bump, tag, or Release. Public train stays 0.7.x (0.7.9).
  • No browser merge/push/--yes.
  • No customer or company names. Tests use core, core_pay, release_a, test-workspace only.

Verify

python3 -m pytest tests/test_workspace.py tests/test_cli.py \
  tests/test_console_overview.py tests/test_console_inspection.py \
  tests/test_console_twin.py tests/test_console_twin_live.py \
  tests/test_hub.py -q

232 passed, 16 subtests passed.

Open in Web Open in Cursor 

Treat any doctor FAIL, including missing-origin-only, as needs_repair
with a scoped doctor read command. Isolated Console now loads the same
next.commands source instead of an empty loader.

Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dyro Error Error Aug 21, 2026 9:20am
dyro-engineering-flow Error Error Aug 21, 2026 9:20am

@Dandre126
Dandre126 marked this pull request as ready for review August 21, 2026 09:20
@Dandre126
Dandre126 merged commit 1b39f40 into main Aug 21, 2026
9 of 11 checks passed
@Dandre126
Dandre126 deleted the cursor/next-fail-honesty-37a3 branch August 21, 2026 09:28
@Dandre126 Dandre126 mentioned this pull request Aug 21, 2026
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