Commit 0d71a59
fix(控制面): stop JSON doctor/status/next from bare-failing at 5s (#61)
* fix(控制面): scale JSON observation deadline by git-scope fan-out
JSON doctor/status/next no longer share a flat 5s ReadBudget cliff.
The deadline starts at 5s and grows 0.4s per additional git scope,
capped at 45s. If the ceiling is still hit, completed FAILs stay
visible with a timeout finding and partial=true; next stays
needs_repair and never reports ready.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
* test(控制面): prove a 7s fan-out fits the scaled JSON budget
The flat 5s ReadBudget still expires at 5.34s. After fan-out scaling
for 58 git scopes, a 7s observation remains inside the deadline with
more than 10s of margin.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
* fix(控制面): start JSON doctor/status/next at the 45s ceiling
Mac verification dies at a stable ~5.35s DEADLINE_EXCEEDED. Scaling
after config load still created those budgets on the 5s Bridge cliff.
Create the fan-out commands at 45s from the first tick, and if a
deadline still escapes, emit doctor/status/next JSON with
code=DEADLINE_EXCEEDED and partial=true instead of kind=error.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
* fix(控制面): convert leftover JSON DEADLINE to structured timeout
Mac verification still prints {kind:error, command:status} when a
DEADLINE_EXCEEDED escapes past doctor/status_rows. Convert that at
the JSON error printer (match command or func) and start the fan-out
budget from func when dest=command is missing. Keep
_PROTOCOL_DEADLINE_SECONDS as the Bridge 5s default, not the JSON cap.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
* test(控制面): lock the five-run Mac JSON status baseline
Independent verification: five consecutive JSON status walls at
5.35–5.41s are 0/5 DEADLINE on the 5s protocol budget. Prove those
same samples all succeed on the 45s JSON budget, and that a timeout
still returns structured partial plus completed FAILs — never a bare
DEADLINE_EXCEEDED envelope.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
* fix(控制面): keep leftover timeout honest and fail JSON status
Leftover DEADLINE now reuses stashed doctor FAILs and status rows, and
next keeps a non-empty doctor repair command. next_commands maps an
escaping ReadLimitError to that repair instead of []. JSON status
deadline partial exits 2; status --all DEADLINE is partial, not a
missing workspace. Docs no longer claim Isolated Console attaches the
0.4s/scope fan-out.
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Dandre Yang <Dandre126@users.noreply.github.com>1 parent 85affd0 commit 0d71a59
7 files changed
Lines changed: 1286 additions & 132 deletions
File tree
- src/dyro
- continuation
- integrations/assets/dyro-control-plane
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
5 | 22 | | |
6 | 23 | | |
7 | 24 | | |
| |||
0 commit comments