Record green paid chat matrix and repair verification

This commit is contained in:
Dotta 2026-09-11 16:36:44 -05:00
parent abacbdfd2f
commit d691c01abf
1 changed files with 122 additions and 0 deletions

View File

@ -161,3 +161,125 @@ no-unsolicited-run checks. Stable inconsistent idle states fail promptly instead
of waiting through a long timeout and hiding a product race behind a paid retry.
Focused native Claude project reuse and multiple-repository handoffs, and legacy
Claude multiple-repository handoff, passed on their first attempts with these fixes.
The focused legacy Claude Stop/reset/resume regression also passed on its first
attempt. Latest repository-wide typecheck, build, and token gates passed. Final
runner fixture checks passed 151 tests; fresh chat/prompt/recovery checks passed
209 tests, and the native session executor file passed 207 tests. Broad local
verification is recorded as resumed groups rather than a clean monolithic run:
the original command encountered source edits during execution, generated-evidence
scanner input, and cold-import/process-startup timeouts under concurrent load.
The guidance scanner now excludes only generated runner evidence and has a
regression proving authored runner guidance remains scanned. Focused UI, database,
publication, and canonical-path CLI reruns passed without product changes.
Broader adapter verification exposed OpenCode test fixtures reading the developer's
real configuration directory. Those fixtures now allocate and restore isolated
XDG configuration directories; all 44 source tests and package typecheck pass.
The remaining workspace projects were run even after earlier groups stopped at a
failure, and the original failure logs remain available alongside focused reruns.
Campaign `34642700703` passed 19/24 cells. Its remaining failures were traced to
one clarification-oracle phrasing, revision-write guidance, runner teardown after
a successful restart, and native mutation content passing through diagnostic
redaction. The clarification fixture now also recognizes substantive requests
for a brief or details. Revision instructions and HTTP conflict errors explicitly
map the GET `latestRevisionId` to PUT `baseRevisionId`; a live Codex
plan/revise/accept/handoff run passed on its first attempt with that fix.
Playwright now gives the restart supervisor a bounded SIGTERM shutdown so it can
reap children and close log streams. A real zero-provider Playwright regression
verifies restart, child process exit, and port closure; cleanup failure still
fails the campaign. Native schema-declared task/project/document prose retains
its complete contents while credentials and diagnostic data remain scrubbed.
Regression coverage includes long plans beyond the diagnostic preview limit.
The macOS fake Anthropic service now clears inherited nonblocking socket mode
before its bounded request read; all 271 Rust library tests passed afterward.
All 144 serialized server suites have passing coverage across the resumed shards
and focused reruns. Three route fixtures moved cold module imports into bounded
setup hooks, preserving their HTTP assertion timeouts; the final affected files
passed 119 tests. The completed workspace groups likewise have passing focused
reruns for every observed failure. These results are recorded alongside, rather
than replacing, the earlier failed monolithic invocation.
The ACPX sidecar decoder was an additional execution boundary: it applied generic
diagnostic redaction before the native semantic-input stage. It now uses the same
schema-declared prose policy at decode. The regression feeds a real
`runtime.tool_called` event through decoding, pending-call state, and semantic
projection, checking complete long-plan contents, protected credentials, unknown
operation handling, and matching content digests. The decoder/state checks passed
22 tests and durable-state checks passed 30 tests before the next paid campaign.
The final local native Claude repository handoff preserved the exact previously
corrupted task description, plan, and execution output. Its product assertions
passed on the first attempt; post-run secret scanning then exposed PostgreSQL
removing `instances/<id>/db/postmaster.pid` after directory enumeration. Only
ENOENT for that exact transient path is now tolerated. Existing PID contents,
other scan errors, mandatory evidence, and process/lease cleanup remain enforced.
All 157 runner fixture tests and final repository typecheck/build passed.
Campaign `34645293835` tests the complete set of fixes.
Campaign `34645293835` passed 20/24 cells. Two failures exposed narrow lifecycle
races: a successful native chat turn could be mistaken for productive unfinished
work before response publication, and an agent comment deferred behind an active
execution could wake its assignee after that execution completed. Recovery now
leaves the first case to the conversation finalizer; queue promotion cancels the
stale terminal-task continuation while retaining human reopening and notifications
to other agents. The recovery regression fails with the guard removed and passes
with it restored; all 20 comment-wake batching tests and server typecheck pass.
The other failures distinguish requested approval from ordinary draft planning,
and a persisted Paperclip document from a workspace file. The chat directive now
explains how to create a revision-bound approval card when explicitly requested,
including after a revision. Paid fixtures name the requested Paperclip document
explicitly while retaining strict checks of approvals, transferred plans, and
persisted execution output.
Native reconciliation also preserves assessment lineage within its owning run
when the task's previous status decision belongs to a different run. Decision
lineage still spans runs; the database ownership constraint remains unchanged.
The regression reproduces the original foreign-key failure without the fix and
passes for absent, same-run, and different-run predecessors with it. The next
24-cell campaign is `34646672139`, pinned to `3556fa25f`.
Campaign `34646672139` passed 23/24 cells: all native cases and all legacy Claude
cases passed. The remaining legacy Codex plan-revision failure exposed an adapter
prompt omission. Its resume delta discarded the server's task-context Markdown,
including both the chat directive and document-concurrency guidance. Codex now
selects the same full/compact task-context Markdown as Claude on initial and
resumed sessions. Both adapters suppress generic task-completion and child-task
planning directives in chat, leaving the central chat policy authoritative.
The approval and output assertions remain unchanged.
Fresh chat prompts use a small conversation-safe default template that retains
connection guidance, permissions, budgets, cancellation, and mutation honesty.
Explicit custom agent templates remain intact. Native execution and continuation
prompts also carry the conversation flag so shared wake rendering cannot reinsert
ordinary completion/subtask instructions. The integration regression inspects
both fake-CLI stdin and the recorded adapter invocation with the production chat
directive; removing the task-context section reproduces the failure. Shared prompt
checks (102), actual Codex prompt cases (3), native resume checks (11), affected
package typechecks, and server typecheck pass. Campaign `34648511170` tests all
24 cells on `abacbdfd2`.
The complete Codex/Claude execution regression files passed 46 tests. Final
repository-wide typecheck and build also passed on `abacbdfd2`, after all prompt
changes.
Final paid verification: campaign `34648511170` passed **24/24** chat cases on
`abacbdfd2`: legacy Codex 6/6, legacy Claude 6/6, native Codex 6/6, and native
ACPX Claude 6/6. All cells completed by 21:34 UTC on September 11, within the
requested three-hour repair window. No acceptance assertions were disabled.
- [Exact campaign results](https://d1p6rlowie26tp.cloudfront.net/runner-e2e/campaigns/gha-34648511170-1/summary.md)
- [GitHub run and retained evidence](https://github.com/paperclipai/paperclip/actions/runs/34648511170)
Use the Markdown results for this branch-only suite: the trusted default-branch
HTML dashboard still uses its older catalog, while the normalized results and
Markdown report include all 24 chat cells.
The published summary and normalized results were verified after publication:
exactly 24 unique expected cells, all passed on attempt 1, all cleanup checks
passed, all evidence valid with no evidence errors, and every result bound to
`abacbdfd2f660709ec37312cdb758284c8399d04`. The public report returned HTTP 200.