Skip to content

build(itd-2609201925079472): the whole spec, step 1 of spc-2609301921521360 - #886

Merged
REPPL merged 4 commits into
mainfrom
build/run-2610100550297632-lane-1
Oct 10, 2026
Merged

REPPL merged 4 commits into
mainfrom
build/run-2610100550297632-lane-1

Conversation

@REPPL

@REPPL REPPL commented Oct 10, 2026

Copy link
Copy Markdown
Collaborator

This pull request lands step 1 of spc-2609301921521360 ("the whole spec") for itd-2609201925079472. The implement loop built it in run run-2610100550297632 as lane-1, and wrote this text from the run's records.

  • Branch build/run-2610100550297632-lane-1, from 3f21f58 to 0851a50.
  • Validation round 1 at 8a08de5 passed: ruthless-reviewer SHIP, security-reviewer APPROVE, intent-auditor MET_WITH_CONCERNS.
  • It closes spc-2609301921521360 and ships itd-2609201925079472; the fidelity audit's verdict is on the intent's record.

Delivers: itd-2609201925079472
Assisted-by: abcd:dev
Assisted-by: Claude:claude-opus-5-5

REPPL added 4 commits October 10, 2026 07:15
A claude run whose event stream carries a rate-limit response (a
rejected rate_limit_event, or an assistant message whose error is
rate_limit) and that did not finish now fails as rate-limited, whether
the harness exits non-zero or reports the error in its result. The
dispatcher never falls back on it: every route spends the budget the
run's window paces, so the failure reaches the caller as itself, with no
fallback receipt.

A runner may report its remaining quota, in agent runs, through the
optional QuotaReporter; Config.Quota asks the one a role is routed to.
Neither shipped runner reports one, so each reports none.

Assisted-by: Claude:claude-opus-5-5
… rate limit

The budget check (itd-2609201925079472 criterion 7): once every other
pre-start check passes, each runner a role of the run is routed to is
asked for its remaining quota and compared with the run's estimate on
it, from the spec's size: per step, one implementer and one round of the
two reviewers, and the fidelity audit once for an intent. An estimate
over a quota refuses the start at the check `budget`, naming both
numbers, and writes nothing; a runner that reports none, the host
included, is named and the check skipped out loud in the start's checks,
its text output and the run record. build, build next and drain hand
the runner configuration they read to the check.

The rate-limit checkpoint (criterion 8): a runner's rate-limit response
ends the run's window early for every lane, writing next_eligible_at
once from the run's pause. The lane it came from is checkpointed to its
branch: its agent's uncommitted work and partial receipt are saved
aside for review, never built on, its worktree is reset to its last
commit, and its await is dropped so the first step after the pause hands
the work to a fresh agent; a limited validator has only its partial
return saved aside. Every other lane with work in flight is checkpointed
at its branch's head and left running. The record names the response,
the runner and the lane. The restart's save-aside is now one function
both share.

Assisted-by: Claude:claude-opus-5-5
quotaOf is reached only through Config.Quota, so it is not exported;
the exported-reach audit refused it as scaffolding.

Assisted-by: Claude:claude-opus-5-5
The implement loop's landing for itd-2609201925079472 (spc-2609301921521360, step 1): closed spc-2609301921521360 (itd-2609201925079472 planned -> shipped), audit rcp-c411be255805 ingested.

Delivers: itd-2609201925079472
Assisted-by: Claude:claude-opus-5-5
@REPPL
REPPL added this pull request to the merge queue Oct 10, 2026
Merged via the queue into main with commit d5d444b Oct 10, 2026
14 checks passed
@REPPL
REPPL deleted the build/run-2610100550297632-lane-1 branch October 10, 2026 09:07
REPPL added a commit that referenced this pull request Oct 10, 2026
The reviewers of PR #886 passed it with notes below their bar. Five are
captured: three small defects in the rate-limit and budget code, the
budget check that no shipped runner can reach, and the runners that
cannot recognise a rate limit. The three defects are deferred in
DECISIONS.md with the reason: none is reachable without a second fault,
and the drain's next steps rework the same code.

Refs: itd-2609201925079472
Assisted-by: Claude:claude-opus-5-5
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