Campaign friction log¶
Record entries while the campaign is running. Preserve the earliest actionable failure and distinguish product defects from model behavior.
| Time | Stage | Category | Earliest actionable evidence | Immediate disposition | Durable fix-forward artifact | Independent verification | Status |
|---|---|---|---|---|---|---|---|
| 2026-09-12T13:12:00Z | RESEARCH | missing-identity | Worktree launcher reports 1.0.0 while source release is v1.2.1. | Continue because module path and commit are exact; retain mismatch. | Ticket if still present after campaign. | Worktree module path and commit check. | open |
| 2026-09-12T13:14:00Z | RESEARCH | manual-workaround | Repo-scoped controller tools unavailable in this session. | Use verified worktree CLI fallback. | Environment attachment explicitly deferred. | Tool catalog inspection. | open |
| 2026-09-12T13:18:00Z | RESEARCH | missing-identity | Product and Windows GPU views succeeded; Docker Desktop lacks nvidia-smi and a stale WSL distribution could not attach. | Do not infer empty lane; use managed owner inventory. | Unrelated WSL repair deferred. | Recipe-container inventory plus Windows telemetry. | open |
| 2026-09-12T13:15:00Z | RESEARCH | ambiguous-output | Healthy incumbent remains loaded but current registry no longer resolves its selector; one older same-family container is exited unhealthy. | Preserve exact labels/image/revision and retained healthy container for restoration. | Added guarded models recipes stop/start support so a registry-independent exact container can be retained and restored. |
349 focused CLI/model lifecycle tests plus real incumbent stop/start dry-run. | resolved-before-mutation |
| 2026-09-12T13:41:04Z | BASELINE | model-behavior | Incumbent returned 107–126 of the requested 128 exact code words in all five strict capacity requests. | Preserve the 0/5 strict result; use the same observe-mode workload only for descriptive latency. | No product change: strict mode already failed closed and retained sanitized response timing. | Incumbent deterministic preflight and repeated quality suites passed independently. | open-model-defect |
| 2026-09-12T13:47:41Z | DOWNLOAD | operator-error | First live cache-inventory retry used unsupported --json-out and failed before inspection. |
Read focused help and rerun with supported --output. |
No code change needed; CLI usage error was explicit and non-mutating. | The corrected inventory showed one growing Signal partial and the download later verified exact completion. | resolved |
Live fix-forward addenda (2026-09-12)¶
- The earlier lifecycle row was provisional, not a general-release approval. Independent review found missing-registry, fingerprint handoff, readiness, deadline, admission, and transport-contract gaps. Regression tests reproduced and fixed them through the managed CLI/MCP path. General merge/release remains held on the shared host-lifecycle lock and process-identity allowance contract; see the tracked retained-lifecycle/evidence-gaps ticket. Serialized campaign use was conditionally accepted. A live restart preview refused the active Qwopus peer with no mutation.
- Windows reports the pre-existing camera utility as a compute client. It is protected starting state, not a model process to terminate. The explicit baseline-PID allowance keeps the Docker-peer and 1024 MiB memory guards; immediate process identity/start-time verification is required for restoration.
- Signal and Swift each failed all five original strict 128-word requests. Swift still failed 5/5 with speculation disabled, ruling out speculation as a sufficient fix for that case. A separately declared 32-word diagnostic then passed 5/5. Preserve the original failure; never rank repetitive cap-hitting output as useful speed. Matched Signal no-spec also failed all five128-word requests, so removing speculation is not a sufficient fix for either model.
- Signal and Swift reasoning scouts each passed 9/10 and exhausted the same computer-science question's 5120-token total budget. A larger-budget retry fixture preserves the original question and independent answer key.
- Qwopus reasoning scout passed 1/10 under exact output syntax: eight visible answer-format failures and one reasoning-budget exhaustion. Disabled mode passed 24/30 repeated attempts, with two questions exhausting the1024-token visible budget. Reinforced syntax plus2048 visible tokens passed7/10; the mixed mitigation is diagnostic, not a matched performance cell.
- The first full test run stopped after5332 passes/340 skips on the intentionally changed MCP public-schema snapshot. Updated the snapshot after reviewing the typed allowance/stop/start contract; focused foundation tests passed. A fresh full run is in progress. No raw benchmark failure was overwritten.
- The documented old
eval benchmark runspelling failed at parsing; focused help selected the supportedeval benchmark capacitycommand. External-only quality normalization also emits warnings for unselected built-ins. Both are recorded in the retained-lifecycle/evidence-gaps ticket, not disguised as model failures.
All telemetry and logs cited here are diagnostic; a passing code test does not qualify a model. Final dispositions must be reconciled before publication.
Windows Pi regression investigation¶
The second full run stopped after7961 passes/350 skips with Pi exit134.
A bounded isolated-process reproduction retained the earliest error:
Assertion failed: ncrypto::CSPRNG(nullptr, 0). The test's minimal environment
omitted SystemRoot; supplying only that Windows prerequisite changed the
same startup probe from exit134 to a successful RPC response. The fixture
now preserves that one OS value without inheriting credentials.
The real smoke then exposed an independent transport defect: Windows
select() cannot poll subprocess pipes (Python's official select documentation).
A new real-child pipe regression failed before the fix. The Windows path now
uses stdlib _winapi.PeekNamedPipe and reads at most the reported available
bytes; POSIX behavior is unchanged. Six focused tests, including actual
Pi0.85.1 history/fork/resume/model controls, passed. Independent review and a
fresh full run remain required. Durable code and tests are in
anvil_serving/workbench_app/pi_rpc.py and tests/workbench/test_pi*.py.
Segmented HTTP test-reader correction¶
The next full run stopped after 2,103 passes and 323 skips. Authoritative router
stderr showed the intended 504 startup_timeout; the test retained only
headers because its unframed 0\r\n\r\n search matched the last request-ID
header ending in hex zero. A deterministic segmented-socket regression
reproduced this before the fix. The test helper now searches only the body for
that final-chunk marker; other marker searches and production router code are
unchanged. All 19 request-runtime tests passed. A new full run is in progress.
Durable artifact: tests/router/test_request_runtime.py.
Final operational dispositions¶
The time-ordered entries above retain what was known at each failure; this section supersedes their open campaign statuses without deleting failures.
- Installed-version drift, unavailable session controller tools, and stale WSL attachment are deferred product/environment gaps in the tracked lifecycle ticket. Exact module/commit identity and the managed CLI provided a verified execution path; no raw Docker mutation or unrelated WSL repair was used.
- Managed retained-container restoration completed with exact camera process
identity/start-time checks, no competing candidate, and a healthy incumbent.
See
restoration.json,recovery-admission.json, andrestored-state.json. General lifecycle release remains held on shared locking and immutable process-identity attestation; bounded campaign acceptance is not release. - Signal no-spec's larger 9,216-token retry still exhausted its reasoning budget without an answer. This also changed speculation versus the original scout, so it is not a one-variable budget comparison. Qwopus syntax/budget mitigation improved strict passes to 7/10 but left wrong answers and a cap. Minitron retained wrong-answer and output-adherence failures. These profiles are rejected as replacements under the tested contract, not silently fixed.
- The revised 32-word diagnostic passes for incumbent, Signal no-spec, Swift no-spec, and Qwopus do not erase the original 128-word failures. Swift's warm cache is separate from the other cold-cache populations. CPU contention was not controlled; no diagnostic is promoted to a finalist latency result.
- Independent Sol review accepted the bounded Pi pipe correction and HTTP test-reader correction with no blocking findings. Focused gates passed; final broad regression verification is recorded separately when complete.
- A publication regression caught this new dossier's missing canonical
Review narrativelabel after 2,918 passes and 325 skips. Restoring the required dossier structure passed all 19 benchmark-documentation tests. Evidence-consistency tests also caught an unfinished summary and a terminal-newline mismatch in the recipe copy; both were reconciled against native artifacts and the exact registry, not by weakening tests.
Reusable operational lesson: restore a registry-missing incumbent by its retained immutable container only after independent admission and identity checks, then prove functional health. The engineering-learning skill is unavailable in this session; this evidence-linked invariant and the tracked ticket are the durable fallback.
Final verification closure¶
The final full suite passed 8,117 tests with 391 skips in 381.30 seconds. Ruff, 22 focused documentation/evidence checks, strict MkDocs, 669-file Markdown link validation, five template JSON parses, skill validation, and the full 1,164-file CLI reference audit also passed. The skipped tests do not prove missing live client, full-context, or model-quality gates.
Independent evidence review caught a missing dedicated Signal license source
entry. The pinned publisher card declares Apache 2.0; the source registry now
retains its exact URL, date and limited interpretation. Windows checkout
conversion could also change the two canonical recipe bytes while evidence
copies are byte-preserved. Exact .gitattributes entries now preserve those
registry bytes. Native artifact line endings and intentional registry terminal
blank lines are retained for their hashes; whitespace validation explicitly
accepts CR-at-EOL and those terminal blanks. No evidence values were changed.