Emit per-turn usage and explicit context diagnostics #678
Open
toasterson
wants to merge 13 commits from
fix/anima-d1-context-diagnostics into fix/anima-a3-model-observations
pull from: fix/anima-d1-context-diagnostics
merge into: toasterson:fix/anima-a3-model-observations
toasterson:main
toasterson:docs/lilith-voices-blend-bias
toasterson:fix/acp-terminal-event-order-round18
toasterson:fix/anima-a2-release-receipts
toasterson:fix/anima-a3-model-envelopes
toasterson:fix/anima-a3-model-observations
toasterson:fix/anima-a1-provider-outcomes
toasterson:fix/ptah-memory-round16
toasterson:fix/ci-sccache-20261018
toasterson:fix/house-schema-upgrade-round12a
toasterson:fix/ptah-bounded-rule-joins
toasterson:codex/mausbot-legacy-provenance-round9a
toasterson:feat/mausbot-native-computer-dispatch
toasterson:fix/akhomed-single-instance-discovery
toasterson:feat/mausbot-native-admission
toasterson:feat/mausbot-acp-owner
toasterson:codex/runtime-auth-writeback-prep-20261017
toasterson:feat/disposable-image-conformance
toasterson:fix/house-merge-symbol-normalization
toasterson:fix/house-metrics-checkpoint
toasterson:fix/house-backup-close
toasterson:fix/odin-inference-lost-ack-20261015
toasterson:fix/apollo-codex-0160
toasterson:docs/tencentdb-agent-memory-harvest
toasterson:fix/claude-inference-proposals
toasterson:fix/native-receipt-directory-mode
toasterson:anima/01a130d9-cd0c-7bb1-ab8b-b9de509b5b3e
toasterson:feat/native-cognitive-backing
toasterson:fix/roman-dojo-teacher-goldens
toasterson:sokar/52f
toasterson:anima/01a0297c-b49b-75f3-a7bf-d7015fdae67d
toasterson:arc/close
toasterson:sokar/52g
toasterson:sokar/52e
toasterson:sokar/52d
toasterson:sokar/52c
toasterson:arc/t3
toasterson:sokar/52b
toasterson:arc/t-plan
toasterson:codex/transcripts-arm-headroom-20261011
toasterson:arc/paper-trim2
toasterson:arc/paper-trim
toasterson:arc/paper-lb
toasterson:arc/paper-cover
toasterson:arc/paper-writeup
toasterson:arc/paper-v04
toasterson:arc/build-record
toasterson:arc/2026-plan
toasterson:arc/s4c
toasterson:arc/s5
toasterson:arc/s4b
toasterson:arc/s4
toasterson:arc/s3
toasterson:arc/s2
toasterson:arc/s1
toasterson:clm/r3-replay
toasterson:docs/clm-m1c
toasterson:clm/cuda-backend
toasterson:testing/gemma4-31b-clm
toasterson:clm/r2-arena-kvops
toasterson:codex/native-chat-receipts-20261006
toasterson:fix/electra-gemma4-decode-window
toasterson:codex/plan14-receipt-mode-20261007
toasterson:fix/electra-prefill-layer-fence
toasterson:fix/electra-bounded-prefill
toasterson:feat/lilith-export-exclude-sources
toasterson:feat/lilith-export-stage-passes
toasterson:codex/plan14-runtime-details-20261007
toasterson:feat/lilith-trainer-collapse-guard
toasterson:codex/plan14-native-conformance-20261007
toasterson:claude/wi-019e2501-define-fluent-infrastructure-home-state
toasterson:feat/lilith-loop-probe
toasterson:feat/lilith-trainer-probe-protocol
toasterson:feat/lilith-answer-turn-pairs
toasterson:feat/lilith-dojo-cli-teacher
toasterson:docs/lilith-program-r5-plan
toasterson:codex/plan14-native-opus-cli-20261006
toasterson:claude/wi-01a03edf-wave-r1a-typed-fail-closed-config-spine
toasterson:fix/strict-clippy-20261006
toasterson:codex/roman-health-pivot-20261006
toasterson:anima/01a0c94f-65b8-7ab2-9234-a7a40c8e935f
toasterson:codex/wi845-native-recovery-20261006
toasterson:fix/lilith-exam-enable-thinking
toasterson:codex/electra-harness
toasterson:feat/lilith-dojo-enable-thinking
toasterson:fix/electra-gemma-handoff
toasterson:vox/native-chat-principal
toasterson:docs/context-language-model
toasterson:clm/2-loop-integration
toasterson:clm/r1-gemma4-kv
toasterson:clm/r1-parity-cap
toasterson:feat/lilith-panel-grounding-rule
toasterson:feat/lilith-r4-run-config
toasterson:feat/lilith-sibling-result-budget
toasterson:feat/lilith-first-divergence-pairs
toasterson:docs/lilith-program-r3-result
toasterson:feat/lilith-shadow-report
toasterson:clm/1-live-context
toasterson:feat/lilith-r3-stage-plan
toasterson:clm/math
toasterson:feat/lilith-runtime-hygiene
toasterson:feat/lilith-gap-loop
toasterson:feat/lilith-gap-records
toasterson:feat/lilith-shadow-families
toasterson:feat/lilith-care-family
toasterson:docs/lilith-r3-shadow-plan
toasterson:docs/lilith-memory-run-20261005
toasterson:feat/hephaistos-lora-adapter
toasterson:backup/2026-10-13/wi527-main-image-20261005
toasterson:docs/lilith-program-r2-result
toasterson:codex/wi-01a10748-runtime-quarantine-inventory
toasterson:feat/roman-audio-prompts-20261003
toasterson:fix/acp-audio-fail-closed-20261003
toasterson:claude/wi-01a08260-seshat-idle
toasterson:anima/01a08262-3ea3-7460-b2de-b2a08e28cd74
toasterson:claude/wi-01a08260-synthesis-validation
toasterson:agent/cef957cb46e7
toasterson:claude/wi-019f90cb-p26-2-retire-llama-cpp-2-migrate-the-nlu
toasterson:claude/wi-01a03edf-deployment-config-manual-recovery
toasterson:claude/wi-01a03edf-5416-7413-ab36-308c8bee1cd1-database-cutover
toasterson:claude/wi-019fa8eb-wi-5-second-language-provider-retire-com
toasterson:claude/wi-01a08262-thinking-persistence
toasterson:claude/wi-019fa8eb-repo-state-manual-recovery
toasterson:claude/wi-01a02982-42d-1-current-tree-rrf-core-and-lossless
toasterson:claude/wi-01a08260-heka-note-traversal-prerequisite-determi
toasterson:claude/wi-019f90cc-p26-5-wire-the-neural-bridge-into-the-in
toasterson:claude/wi-01a07aaa-grug-train-fail-closed-when-a-checkpoint
toasterson:claude/wi-01a0825f-seshat-curiosity-1-implement-structured
toasterson:claude/wi-01a05293-candle-backend-re-prefills-the-entire-co
toasterson:codex/lilith-history-prep-20261001
toasterson:claude/wi-019f8589-wi-3-session-registry-akh-session-list-i
toasterson:claude/wi-01a0297c-emit-runtime-metrics
toasterson:claude/wi-019fa8ea-wi-2-scip-precision-tier-the-resolution
toasterson:claude/wi-019f90cc-p27-2-tripleverbalizer-kg-triples-divers
toasterson:claude/wi-01a05291-agent-tool-description-audit-when-to-use
toasterson:claude/wi-019fffd3-librarian-g5-a-consolidation-gate-real-p
toasterson:claude/wi-01a08260-p3-rl-a2-map-deterministic-engine-replay
toasterson:claude/wi-019f85b9-adversarial-review-observability-stack-3
toasterson:claude/wi-019f90cc-p27-1-switch-the-trainingdatacollector-o
toasterson:anima/01a0878e-53b5-7820-be08-fadc5de1b74b
toasterson:claude/wi-019f85b9-adversarial-review-heka-long-term-memory
toasterson:fix/core-context-recovery
toasterson:fix/akh-shared-ci-test-isolation
toasterson:fix/ci-akhomed-smoke-contract-20261001
toasterson:fix/ci-native-secret-delivery-20261001
toasterson:fix/ci-native-builders-20261001
toasterson:fix/ci-quiet-command-heartbeats-20260930
toasterson:fix/ci-flux-verified-digest-bundle-20260930
toasterson:fix/ci-workspace-profiling-defaults-20260930
toasterson:fix/ci-verified-vesta-image-20260930
toasterson:fix/ci-image-build-log-throughput-20260930
toasterson:fix/ci-release-progress-20260930
toasterson:fix/ci-complete-platform-image-set-20260930
toasterson:migration/runpod-openbao-20260929
toasterson:migration/armini-fleet-secret-guidance
toasterson:migration/lilith-openbao
toasterson:feat/lilith-c2-serve
toasterson:feat/lilith-c2-roman-role
toasterson:feat/lilith-c2-announce-relay
toasterson:docs/lilith-c6b-7900xtx-results
toasterson:feat/lilith-c6a-wireguard-k0s
toasterson:feat/lilith-c4b-exam-harness
toasterson:fix/lilith-recorder-thread-capture
toasterson:feat/lilith-c4-cos-dojo
toasterson:fix/lilith-cuda-numerics-default
toasterson:feat/lilith-c5-trajectory-export
toasterson:fix/lilith-c6-round3
toasterson:feat/lilith-pod-watchdog
toasterson:fix/lilith-c6-smoke-round2
toasterson:docs/p6-5-outcomes
toasterson:fix/lilith-template-hash-convention
toasterson:feat/lilith-c1-cos-role
toasterson:feat/lilith-c6-cuda-harness
toasterson:feat/lilith-c3-recorder
toasterson:feat/lilith-c6a-wireguard
toasterson:docs/crew-names-lakota-english
toasterson:fix/relation-enrichment-odd-orphans
toasterson:feat/53g-pr7-delegation-bootstrap
toasterson:feat/roman-stable-signed-core
toasterson:fix/execd-allocation-leak
toasterson:feat/53g-pr7-cluster-delegation
toasterson:docs/vesta-publish-main
toasterson:fix/akh-runtime-execution-mode
toasterson:docs/lilith-names-kv
toasterson:docs/lilith-local-gpu-qualification
toasterson:docs/lilith-full-autonomy
toasterson:docs/lilith-c5a-findings
toasterson:docs/lilith-supervisor-wireguard
toasterson:docs/fix-adam-kaine-doc-gaps
toasterson:docs/lilith-chief-of-staff-rl
toasterson:feature/lilith-runtime-training-runpod
toasterson:feat/53g-pr8-vesta-sandbox
toasterson:feat/53g-pr5-monitor-source
toasterson:feat/53g-pr6-anima-source
toasterson:feat/53g-pr7-janus-delegation
toasterson:feat/paragraph-streaming
toasterson:fix/roman-core-secret-files
toasterson:fix/roman-core-credentials
toasterson:phase53/full-akh
toasterson:claude/wi-01a0c901-bound-the-process-output-a-model-receive
toasterson:fix/wi-358-candle-kv-suffix-prefill
toasterson:opus1/reviewer-command-output-budget
toasterson:anima/01a0297c-7321-7471-92a3-e4b4e2b38053
toasterson:recover/wi-324
toasterson:claude/wi-01a08260-adr-099-1-typed-communication-directive
toasterson:claude/wi-019fe826-awaken-ritual-a-failed-ritual-strands-a
toasterson:docs/adr-112-kaine-theory-first
toasterson:fix/roman-provider-blocks-20260921
toasterson:archive/2026-09-27-hephaistos-worktree-agent-a274bb44
toasterson:archive/2026-09-27-hephaistos-worktree-chat-e2e
toasterson:fix/roman-wi-pagination-20260918
toasterson:fix/provisioning-reconciliation-20260917
toasterson:claude/wi-01a09fed-isolate-runtime-recovery-and-quarantine
toasterson:fix/shell-cwd-ci-isolation-20260914
toasterson:wip/production-akh-implementors-20260816
toasterson:wip/production-akh-rollout-20260816
toasterson:claude/wi-01a00ed0-code-ingest-detect-repository-breaks-und
toasterson:claude/wi-019f85d6-wave-w1-ritual-genesis-pantheon-packs-di
toasterson:codex/akh-deep-wi234
toasterson:codex/wi180-deep-rebase
toasterson:research/akh-agent-loops-cursor-opencode
toasterson:research/akh-agent-loops-codex-claude
toasterson:claude/wi-019f85b9-adversarial-review-distributed-inference
toasterson:claude/wi-019f85d6-wave-r2-ownership-autostart-owner-host-c
toasterson:claude/wi-01a02966-adr-081-s0-harness-make-the-three-channe
toasterson:manual/tecton-wi329
toasterson:claude/wi-01a0144a-flaky-test-agent-ollama-tests-chat-strea
toasterson:codex/wi183-recovered-prerebase
toasterson:claude/wi-019dd122-phase-41i-unified-trace-envelope-joining
toasterson:claude/wi-019f85d6-wave-r4-akh-doctor-read-only-7-sections
toasterson:claude/wi-019f90cb-p26-3-polarquant-kv-cache-compression-in
toasterson:claude/wi-019fa8f0-adr-081-s0-pay-the-r2-empirical-bet-prob
toasterson:claude/wi-019dd0c5-phase-42b-longmemeval-locomo-harness-wit
toasterson:claude/wi-019f90cb-p26-4-neural-vsa-encoder-project-layer-n
toasterson:claude/wi-019fdd22-the-learn-on-new-triples-trigger-fires-4
toasterson:claude/wi-019fe636-sleep-relocate-leave-the-akh-advisory-lo
toasterson:claude/wi-019fe260-any-acp-call-against-a-non-resident-work
toasterson:archive/wi-019fa44f-rebased-onto-main
toasterson:claude/wi-019fbe82-the-akh-emits-tool-activity-as-prose-in
toasterson:claude/wi-019fbf62-phase-44n-context-rot-curve-bench-per-mo
toasterson:claude/wi-019fcce4-per-turn-dispatch-mode-akh-dispatch-mode
toasterson:agent/e138bd65c5aa
toasterson:claude/wi-019fcd3d-akhomed-on-arm64-should-run-pvc-less-in
toasterson:claude/wi-019e480e-mcp-crud-endpoints-for-agent-goals-expos
toasterson:claude/wi-019fb44f-a-turn-goes-silent-after-its-work-is-don
toasterson:archive/wi-019fa44f-sessions-on-one-akh-still-serialise-on-t
toasterson:claude/wi-019f85d6-wave-r1-config-spine-config-crate-typed
toasterson:archive/2026-07-28-wave-r2-ownership-autostart-owner-host-c
toasterson:archive/2026-07-28-wave-w4-render-tier-psyche-render-pipeli
toasterson:archive/2026-07-28-wave-w2-the-wizard-akh-onboard-verbs-akh
toasterson:archive/2026-07-28-wave-w1-ritual-genesis-pantheon-packs-di
toasterson:archive/2026-08-03-38j-pre-reset
toasterson:claude/wi-019db1bd-anima-integration-workspace-daemon-that
toasterson:archive/2026-08-03-38k-pre-reset
toasterson:claude/wi-019dc599-phase-39-distributed-inference-fabric-ll
toasterson:claude/wi-019dc57a-replace-continuous-learning-wikipedia-wi
toasterson:claude/wi-019f9f56-sessions-report-the-wrong-work-item-teac
toasterson:claude/agent-sandbox-workspace-root
toasterson:claude/wi-019f9a1e-17-work-items-frozen-since-2026-07-23-ag
toasterson:claude/wi-019f85d7-wave-w3-birth-extras-procedural-avatar-f
toasterson:claude/wi-019f85d6-wave-r3-akhadvertisement-akh-daemon-akhs
toasterson:claude/wi-019f85ba-adversarial-review-mcp-tools-kg-operatio
toasterson:claude/cool-carson-b63ef4
toasterson:worktree-phase38f-pg-authoritative-workspaces
toasterson:feat/macmini
toasterson:claude/wi-019db054-phase-36-delegation-external-scheduling
toasterson:claude/wi-019db054-phase-32-llm-knowledge-extraction
toasterson:claude/wi-019db054-phase-30-procedural-skills
toasterson:claude/wi-019db054-phase-28-n-akh-semantic-router
toasterson:claude/wi-019db054-phase-24-sensory-grounding
toasterson:claude/wi-019db054-phase-23-affective-system
toasterson:claude/wi-019db054-phase-27-live-kg-llm-training
toasterson:claude/wi-019db054-phase-26-llm-vsa-deep-integration
toasterson:claude/wi-019db054-release-alpha-kubernetes-deployment
toasterson:claude/wi-019e3397-bug-infer-rules-creates-indiscriminate-p
toasterson:claude/wi-019dbc03-bootstrap-embedding-nlu-llm-models-via-o
toasterson:claude/wi-019db054-phase-20-active-inference
toasterson:claude/wi-019dd0c7-phase-42h-cross-tool-bridge-daemon-opena
toasterson:claude/wi-019dd0c6-phase-42g-akhipedia-auto-extraction-from
toasterson:claude/wi-019e5982-akhomed-migrate-from-redb-to-postgres-fo
toasterson:claude/wi-019e481e-mcp-provenance-filter-find-triples-by-de
toasterson:claude/wi-019e481d-bounded-snapshot-mcp-workspace-snapshot
toasterson:claude/wi-019dd122-phase-41h-ooda-thinkingloop-integration
toasterson:claude/wi-019dd121-2026-04-28-synthesis-prompt-plan-tool-ca
toasterson:claude/wi-019dd0c5-phase-41-the-thinking-engine-unified-thi
toasterson:claude/wi-019dc9c9-phase-39a-llmbackend-trait-candlelocal-i
toasterson:claude/wi-019dc9c9-phase-38a-workspace-entity-lifecycle-loa
toasterson:claude/wi-019dc614-custom-cnpg-image-bake-with-age-pgvector
toasterson:claude/wi-019dc599-phase-38-relocatable-session-based-akh-w
toasterson:claude/wi-019db054-phase-35-t5-training-infrastructure
toasterson:claude/wi-019db054-phase-34-communicative-intelligence
toasterson:claude/wi-019db054-phase-29-capability-exposure
toasterson:archive/2026-09-27-hephaistos-worktree-adr-054-vsa-jump
toasterson:claude/wi-019e26ba-bug-byte-index-panic-on-utf-8-boundary-i
toasterson:claude/wi-019e1598-high-fix-agent-memory-rs-456-byte-index
toasterson:claude/wi-019e3b34-fix-akhomed-llm-integration-for-teacher
toasterson:claude/wi-019dd0c6-phase-42d-hybrid-retrieval-pgvec-vsa-kg
toasterson:claude/wi-019dd0c6-phase-42e-heka-mcp-server-8-tools-rememb
toasterson:claude/wi-019dd0c6-phase-42f-akh-awakening-per-tool-init-cl
toasterson:claude/wi-019e4909-ennead-agents-lack-proper-identity-no-ri
toasterson:claude/wi-019e4909-vsa-symbols-never-grounded-ground-symbol
toasterson:claude/wi-019e3eb9-ground-vsa-symbols-in-tecton-workspace-a
No reviewers
No labels
follow-up
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
toasterson/akh-medu!678
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/anima-d1-context-diagnostics"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Expose known Codex context occupancy and typed failure categories in per-turn diagnostics while retaining unknown SDK totals and historical observations.
Targets #677 branch; supplies Anima D1 #798/revised Q1 #795/S3. No PR merge, deployment, live recovery or canary.
Review fixes
Codex tokenUsage.modelContextWindow now supplies the provider-reported window and occupancy from last input counts; Claude's unreported window remains unknown. event.usage.failure_cause(TurnUsage) and event.observation.failure_cause are nullable ModelFailureCause. terminal_code lifts the cause except incomplete maps to model_incomplete; lifecycle Fault.code is unchanged. usage_known_calls makes partial per-call census visible without inventing totals. Elision-event capacity refusal warns/continues with the canonical receipt; conflicts remain fatal. Session-first rollout, consumer acknowledgment and drained projection switch are enforced/documented.
Exact consumer contract
D1 turn and context diagnostics v1 (Anima Q1/S3)
Additive
model_observation.observationfields (nullable):history_messages:u64,history_bytes:u64are the HTTP continuation historybefore core assembly, excluding the mandatory system instruction;
model_messages:u64,model_messages_bytes:u64measure the final serializedmessages array including that instruction;
context_occupancy_percent:f64isactual input tokens including cache divided by
context_limit_tokenstimes 100.context_window_source:stringisconfigured_model_endpointornative_pinned_config. HTTP window size requires explicit positiveModelEndpoint.context_window_tokens; no alias-based model-spec guess. Theexisting byte/4 estimate stays labeled and never supplies actual occupancy.
Input that excludes cache requires both read/write counts to compute occupancy.
A null window/input/cache convention yields null occupancy; over-100 is retained.
A new event is
{"kind":"turn_usage","usage":{...}}. Required members:schema_version:1,id(job-id/turn-usage),runtime_job_id,session_id,turn_id,generation,accounting:per_call_sum|unknown,call_count:u64|null,usage:ModelUsage, and nullablefinish_reason,terminal_code,context_limit_tokens,context_occupancy_percent. ModelUsage retains the A3nullable
input_includes_cache,input_tokens,output_tokens,cache_read_input_tokens,cache_write_input_tokens,reasoning_output_tokens.Call count is null without reliable per-call accounting. Each count sums distinct per-call observations only if every observation supplies
that count. Missing counts and empty turns stay null. A mixed cache convention
makes input total unknown. Any SDK provider snapshot or uncertain worker outcome
makes the turn accounting unknown, rather than adding potentially cumulative
snapshots. Context/finish fields describe the last observed call, never a sum.
The summary is saved in the same transaction as the worker's durable outcome.
Restart/retransmission does not add another summary; old jobs are not backfilled.
context_transformcontinues the A3 schema. In addition to cognitive-core/nativewindow events, artifact-backed tool output elision emits source
tool_output_artifact, exact serialized before/after byte counts, zero droppedmessages and the complete artifact SHA-256. No content enters these events.
Provider-side transformations with no trustworthy observation remain unknown.
No usage/limit endpoint is polled. These events convey observations, not owner,
admission, replay or cleanup authority. Deployment and canary are pending.
AKH_RUNTIME_LEGACY_EVENTS=true projects out turn_usage for old typed readers; the full durable job log still retains it. Modern central readers need the flag disabled. The standalone bridge explicitly records new event diagnostics without adding them to reply text.
Review additions: Codex thread/tokenUsage/updated.tokenUsage.modelContextWindow supplies context_limit_tokens, source provider_reported, occupancy from last inputTokens. Window joins snapshot fingerprint so changed metadata cannot mutate an immutable event. Claude's observed SDK usage has no context-window field and remains unknown.
Both event.usage.failure_cause (TurnUsage) and event.observation.failure_cause (ModelObservation) are nullable typed ModelFailureCause. terminal_code uses the cause's snake_case category, except incomplete maps to model_incomplete for Anima's existing filter; absent cause keeps the original Fault.code. RuntimeJob.error.code lifecycle semantics stay unchanged. TurnUsage.usage_known_calls is nullable count of distinct per-call observations with known input and output counts; totals still remain unknown when any call omits them, SDK snapshots stay unknown.
Artifact-elision event capacity refusal warns and continues with the canonical tool receipt/result; identity/conflict errors remain fatal. Model observation refusal at a model boundary is Failed via model_boundary. Rollout requires compatibility readers/session service first, then AKH_RUNTIME_MODEL_EVENT_CONSUMER=model-events-v1 plus legacy flag disabled; rollback floor is #674's metadata-tolerant readers.
Prior validation
Fable Round2 approved reviewed head
d322e08bbcc8. Previous follow-up head:d632619d8a07b8044e0de99abf620683db46a764.Ordinary stack integration carries the A1 reset regression, output collection eligibility fix/test, and deployed-mode rollout prerequisite/startup test. D1 wire contracts are unchanged. The final integrated runtime service suite re-exercises the new tests plus failed-worker cause/filter code and observation/transform boundary handling; previously reviewed Codex provider coverage is unchanged.
Current-head runtime service library suite:115 passed,1 existing real OpenBao/Postgres test ignored (r2-followup-d1-final.log). Local workspace crates were cleaned before compilation to prevent cross-worktree Cargo artifact reuse. Final integrated #678 suite115 passed/1 existing real-backend ignored. Full exact-head Solstice CI remains a merge gate; local results do not substitute for it. No merge, force-push, deployment or canary.
Finished task target was reclaimed after verifying no open files;37.08GiB free at10:16Z. Peer target preserved.
CI4360 follow-up
Current head:
0cb59f25821d73df2dcc09e938c5075c6a6c3e1e.Solstice exact-head evidence for #676
dae86ef17bidentifies failed request e257c6a0-5f0a-4a9e-8b58-d372ffb7ad0f, categorystep:cargo-test-features-postgres-lib. The root suite had3961 passed,22 ignored and1 failure:agent::runtime::tests::codex_tools_use_typed_akh_registry_and_record_evidence, src/agent/runtime/tests.rs:117, expecting plain "7" while the fixture echoed the complete ToolResult JSON. This was a missed regression expectation from the reviewed complete-envelope contract, not a refused connection or runner fault. It reproduced locally before the fix. Reported Forgejo job: /toasterson/akh-medu/actions/runs/4360/jobs/7.The root regression now checks all decoded fields
{success:true,text:"7",data:null,receipt:null}and keeps its tool-evidence trace assertion. New Codex envelope coverage preserves both text-only and structured data/receipt results alongside the existing64KiB escaped-envelope refusal. The production envelope implementation hash is unchanged; no wire contract change. The identical stale root test and implementation existed on #677/#678, so normal stack integration carries this fix through both. No force-push or PR merge.Current-head local receipts:
ci4360-678-runtime-root.log: test result: ok. 10 passed; 0 failed; 2 ignored; 0 measured; 3973 filtered out; finished in 1.39sci4360-678-envelope.log: test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 14 filtered out; finished in 0.01sci4360-678-provider.log: test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 0.46sLocal workspace packages were cleaned between worktrees to exclude stale Cargo reuse. Final full Linux CI is still a separate gate. No blind rerun was requested; the normal follow-up commits publish the diagnosed fix. No deployment, Talos/Ptah change or live provider probe. Builds used31.5GiB stop/32GiB preflight guards; the finished task target is reclaimed on handoff.
Own finished target was verified without open files and deleted; 37.269GiB free at 2026-10-19T11:58:41.253438+00:00. Peer targets were untouched.
toasterson referenced this pull request2026-10-19 10:16:42 +00:00
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.