From b15b9b25b03a787408fbee80b0be7281dc23481a Mon Sep 17 00:00:00 2001 From: garrytan Date: Sat, 31 Oct 2026 15:42:50 +0000 Subject: [PATCH] changelog.d: GSTA-167 PR B review fixes Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- changelog.d/gsta-167-reviewer-pin.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/changelog.d/gsta-167-reviewer-pin.md b/changelog.d/gsta-167-reviewer-pin.md index c32c8ff99..d9e63aaf5 100644 --- a/changelog.d/gsta-167-reviewer-pin.md +++ b/changelog.d/gsta-167-reviewer-pin.md @@ -2,10 +2,11 @@ ### Changed - **Outside-voice default, Anthropic lanes only** (`lib/capy-review-pass.js`): with no `models['outside-voice']` and an `anthropic/` `laneModel`, the voice runs on `openai/gpt-6.1-sol` at medium. Any other lane, or no lane identity, still stops with "none was given", because an OpenAI lane's pairing is not certified. -- **Same-family STOP**: an outside voice whose provider (the part before `/`) matches the lane model or the native voice's model stops the pass before either voice is created. The check runs again on every rerun of the same manifest and before a queued voice is started. An explicit outside voice with no lane model and no native model to compare against also stops. -- **Overrides are labeled**: each dispatched outside voice prints an `OUTSIDE_VOICE:` line saying whether it is the certified configuration. A different model or reasoning level still runs, marked "outside the certified configuration". +- **Same-family STOP**: an outside voice whose provider (the part before `/`, compared without regard to case) matches the lane model or the native voice's model stops the pass before either voice is created. The check runs again on every rerun of the same manifest and before a queued voice is started. An outside voice with no provider prefix, or with no lane model and no native model to compare against, also stops. +- **Voices resume on the models they were dispatched with**: the pass records each Step 11 voice's model and the lane model in `voice-models.json` in the pass directory before creating it. A rerun with different inputs starts a queued voice on its recorded model and checks it against the recorded native model, so it can't pair two voices of one family. +- **Overrides are labeled**: each outside voice prints an `OUTSIDE_VOICE:` line when it is created or started from the queue, saying whether it is the certified configuration. A different model or reasoning level still runs, marked "outside the certified configuration". - **Step 14.5 docs audit runs once on Sonnet 5.5** (`ship/DRIVER.md`). In replay C5 the docs audit first ran on a smaller model whose reply lacked its JSON line, then ran again on Sonnet, which wasted 1.55M tokens. To stay under the driver's 12 KB cap, one sentence that repeated Phase 4 and 5 ("A fix repeats Phases 3-4.") was removed. ### Tests -- `test/review-pass.test.ts`: five new fake-host cases: a same-family override stops; a rerun or a queued start still refuses it; a missing lane identity stops; an Anthropic lane gets the certified default with every brief byte-identical to naming that model; an override with changed reasoning runs and is labeled uncertified. The Step 11 case now passes `laneModel: undefined` to keep its "none was given" check, since an Anthropic lane gets the default. +- `test/review-pass.test.ts`: six new fake-host cases: a same-family override stops; a rerun or a queued start still refuses it; a queued voice resumes on its recorded model; a missing lane identity, an unprefixed id or an unprefixed lane stops; an Anthropic lane gets the certified default with every brief byte-identical to naming that model; an override with changed reasoning runs and is labeled uncertified. The Step 11 case now passes `laneModel: undefined` to keep its "none was given" check, since an Anthropic lane gets the default. - `test/ship-driver.test.ts`: the audit-reader assertion names Step 14.5's Sonnet 5.5 run.