Restore a green harness library suite

Merged
VA
3d ago
+372-93

Problem

Main's harness library gate reproduced the four reported failures plus native-accounting regressions: 576 passed, 14 failed at e58b7746b. The decoder's descendant rescans also exhaust the unchanged 65,536-item budgets used by gc-local and #496.

Design and culprit commits

FailureCulpritResolution
Default registry4774d27a82 (#495)Defaults acquired bash/fs; correct the stale absence assertion and verify contextless authorization, execution and reconciliation reject them.
Ref-only memory builder4774d27a82 (#495)Automatic tools exceeded this model-only fixture's existing 4 KiB journal payload bound. Disable tools explicitly and assert both model requests have none; preserve attachment, replay, eviction and owner checks.
Private goal fixture5b5cef5df6 (#615)Its project writes did not address the private goal volume. Upstream #671 now tests the unreachable task-view behavior. Keep main's goal tests unchanged here; isolate the private-output continuation fixtures and their remaining stall investigation into a follow-up.
Configured HTTP MCP9df7691ec8 (#668)The fixture exceeded its unchanged model context capacity. Main's #682 corrects the input fixture and settings isolation; retain it and add response-size and full-script-consumption assertions. Both payloads exceed the independent catalog-byte bound.
Native JSON quotas8638ab53b9 (#608)Object construction rescanned all descendant bytes to count entries. Fund entry-buffer growth as keys arrive, retaining sorting, last-key-wins and conservative B-tree admission.
Nested array quotas4f07582036 (#683)Keep reserve-once arrays and its physical-allocation property. Record array lengths during the existing encoding/copy pass in a funded prefix of that same buffer. Nested decoding reads each length directly, without descendant rescans.
Native denial assertions8638ab53b9 (#608)Match the original direct NativeWork denial, exact counter and empty custody, rather than its former allocating wrapper. Preserve state, hash, copy and growth assertions.

Shrinking properties assert exact structural work for objects and nested/wide arrays independently of descendant text length, with full-scan negative controls. Existing physical allocation-prefix properties cover reserve-once arrays, typed denials and cleanup. A shared canonical-byte/round-trip oracle backs normal corpus replay and a cargo-fuzz target with four checked seeds. No limits, accounting categories or concurrency primitives change.

Deletions

Remove object/array descendant pre-counting and stale test expectations. +368/-93, net +275 text lines, plus four small corpus files. No goal-test diff remains in this PR.

Tests run

Latest main merge: f93f52a3c, preserving #683. Signed head: 2b08496a2c4dda17f6788f4f59a0018026e2c6f2.

  • bb1: rehearsed #496 head b8850f424a8b8b643812985b7b731f45971d81f4 on this head, without committing its changes. 8 harness tests passed in 1.14 s, including native_stock_model_original_lost_ack_uses_native_provider_and_settlement, native tool settlement and configured HTTP MCP. #496's every_adapter_runs_a_stock_turn_on_the_issued_native_task passed all four adapters in 0.58 s, under unchanged quotas. Chat: open 225 + lease 186 + run 64,885 = 65,296 items; other adapters lower. Log: /home/var/log/buildbox/2026-10-16T101430775Z-3458197.log.
  • Same built binary, JSON verification: 18 passed in 0.54 s, including nested/wide-array and object work properties, full-scan negative controls, #683's allocation property, prefix-denial properties and corpus replay. Log: /home/var/log/buildbox/2026-10-16T102005745Z-3495221.log.
  • Earlier full library gate at 1d218844b, before separating private goal fixtures and the final main merge: 617 passed, 0 failed in 22.12 s. This is historical full-suite evidence, not a claim of a new full run at this head.
  • Windows through lb.ps1: cargo check -p acyclic-harness --lib --tests --features filesystem-local,mcp-http passed at this head. The unchanged bounded_json fuzz target also passed its Windows compile gate before the final main merge; no fuzz-engine run is claimed.
  • Formatting, diff whitespace check and SSH commit-signature verification passed.

Slow tests

Measured previously with the built Linux binary, including subprocess startup; no wall-clock assertions:

TestSeconds
store::tests::messages::indexed_conversation_lookup_is_atomic_bounded_and_pinned_after_eviction16.988
filesystem::memory::summary_tests::compaction::alternating_volumes_preserve_linear_payload_staging_work3.943
filesystem::memory::summary_tests::compaction::payload_staging_work_grows_linearly_with_retained_history1.989
executor::tests::sampling_allocations::tool_free_sampling_allocations_are_identical_for_10_and_10000_tools1.946
filesystem::execution_journal::conversation::tests::durable_turn_growth_reopens_and_replays_original_identity1.795

Decisions and follow-up

Production goal writes through stock tools depend on #503's mount routing, tracked by gc-tools (#503) and gc-goal (#671). Preserve main's goal coverage here. The private-output continuation fixture and its diagnostics are preserved in draft #700 so the decoder can unblock other lanes immediately.

The private fixture stall was reproduced on run 20: private-unchanged-active-settles-until-agent-done, third task declared, first two completed, three scripted calls remaining, execution pending. Its root cause remains unconfirmed; diagnostic passes are not proof of a wakeup fix. Keep its eight-second timeout and coverage in the follow-up and require the requested 20-run proof after the root cause is fixed. Optimize the existing 10k-message library test separately.