commit bbc238db63c343eb395c9f65d934517481871a51 from: Isaac Meerleo date: Sat Jul 18 18:00:07 2026 UTC Record final three-ticket acceptance state commit - 12670a1d14b664c94b403255368880acf880ccf2 commit + bbc238db63c343eb395c9f65d934517481871a51 blob - dabe96d94618c20e13513fdd049b9ff53c41e48f blob + 88453f0dacab0d7099d9e57b402be77ffc8a96e5 --- .scratch/codex-subscription-adapter/issues/01-implement-pure-c-codex-subscription-adapter.md +++ .scratch/codex-subscription-adapter/issues/01-implement-pure-c-codex-subscription-adapter.md @@ -442,3 +442,19 @@ Criteria 1-14 and 16 are complete. The hermetic portio green, but criteria 15 and 17 remain unchecked until the Owner explicitly runs the non-root credentialed live gate. No real token was requested or used, so the ticket is `needs-info` and intentionally has no Resolution. + +2026-07-18 integration proof: the combined OpenBSD tree at `12670a1` passes +both clean normal and `FUGU_DEBUG=1 CHECK_JOBS=4` gates: 44 suites and 17,515 +checks with zero failures in each run. The focused Codex suite remains 2442/0; +print/local-TLS is 143/0, deployment/package/linkage is 17/0, configuration is +292/0, Agent boot is 24/0, Agent routing is 62/0, OpenAI is 4889/0, and Turn is +424/0. The exact committed source passes isolated port `makesum`/`checksum`, +fake installation, library-dependency checking, package creation, and an +unchanged `update-plist`; `fugu-0.3.tgz` has SHA-256 +`a24638b1ebe49bd428f637a976282dce0df8a72ac596a81f8a50fb8ec59f6d3a`. + +The 43-line live-check help renders, but the non-root credentialed Codex gate +was not run and no personal token or account id was requested. Criteria 15 and +17 remain unchecked, `Status` remains `needs-info`, and no Resolution is added +until the Owner supplies scrubbed live HTTP SSE, Tool-continuation, continuity, +and secret-absence evidence. blob - 568e37d1479bb1b02e51a50084b20e586fb54acf blob + 699804fa427520781f329c0f6bf8295a1d146aca --- .scratch/durable-tool-output/issues/01-retain-bounded-tool-output-artifacts.md +++ .scratch/durable-tool-output/issues/01-retain-bounded-tool-output-artifacts.md @@ -1,6 +1,7 @@ # Retain bounded Tool output as private Artifacts Status: ready-for-agent +Resolution: completed Type: task ## What to build @@ -190,47 +191,47 @@ paging is outside v1; raw byte cursors are stable for ## Acceptance criteria -- [ ] An ADR-0001 amendment accepts the load-bearing `fugu-artifact` Role and +- [x] An ADR-0001 amendment accepts the load-bearing `fugu-artifact` Role and records why Coordinator path promises, project-local files, and a decorative general storage service were rejected. -- [ ] The Artifact Role, typed FD exchange, authority map, pledge/unveil, +- [x] The Artifact Role, typed FD exchange, authority map, pledge/unveil, linkage, descriptor validation, and subprocess non-inheritance match the storage decision above; Journal ownership and every existing Tool/Subagent unveil remain unchanged. -- [ ] Storage uses 0700 Session directories and 0600 atomic files under +- [x] Storage uses 0700 Session directories and 0600 atomic files under `~/.fugu/artifacts/`; ids have the exact random format above and cannot traverse, alias, or address another Session or Owner file. -- [ ] Per-Artifact, per-Session, and global reservations enforce the exact +- [x] Per-Artifact, per-Session, and global reservations enforce the exact 16 MiB / 128 MiB / 1 GiB limits across concurrent processes, with FIFO eviction, active/pending protection, nonblocking deadlock-free lock ordering, pre-Journal same-Session refusal, and conspicuous ENOSPC handling. -- [ ] Foreground and background producers continue beyond the preview boundary +- [x] Foreground and background producers continue beyond the preview boundary but are killed only on crossing the Artifact cap or on storage failure; exact cap plus EOF succeeds, both terminal states settle, and memory, pipe draining, and event-loop work stay bounded. -- [ ] Inline and abbreviated results use the exact 8 KiB structure, +- [x] Inline and abbreviated results use the exact 8 KiB structure, 128 KiB encoded-head, and 120 KiB encoded-tail budgets, remain within the 256 KiB provider-visible ceiling after escaping, and carry generated structured metadata exactly once. -- [ ] Raw Artifact bytes exclude wrappers and remain exact for binary/NUL data; +- [x] Raw Artifact bytes exclude wrappers and remain exact for binary/NUL data; preview escaping and `output_read` text/base64 behavior cannot forge result structure. -- [ ] `output_read` implements the exact Session-bound byte-page and serialized +- [x] `output_read` implements the exact Session-bound byte-page and serialized result contract, distinguishes malformed, unknown, pending, expired, and available ids, and never accepts or exposes a path. -- [ ] Artifact prepare/finalize/sync and structured Journal records obey the +- [x] Artifact prepare/finalize/sync and structured Journal records obey the Turn transaction ordering above; cancellation, abandonment, failure, crash, resume, `/clear`, and Compaction have the pinned lifetime behavior. -- [ ] Background spooling rotates immutably at each poll, applies the per-job +- [x] Background spooling rotates immutably at each poll, applies the per-job and aggregate pump budgets, never drops or replays retained bytes, and cleans unpolled invocation-local state. -- [ ] The first slice is limited to Lead-local `shell`, `grep`, `find`, `ls`, +- [x] The first slice is limited to Lead-local `shell`, `grep`, `find`, `ls`, `shell_output`, and `output_read`; web, read, Skill, agent-report, and all Subagent-internal output remain unchanged. -- [ ] No runtime Owner/model/UI/JSON/NDJSON/Journal surface exposes a private +- [x] No runtime Owner/model/UI/JSON/NDJSON/Journal surface exposes a private path. Manuals may name only the managed root and warn that retained output can contain secrets. -- [ ] Normal, hardened, protocol, Journal, Turn-transaction, Tool, background, +- [x] Normal, hardened, protocol, Journal, Turn-transaction, Tool, background, sandbox/ktrace, concurrent-process, package, and release gates pass. ## Tests @@ -286,3 +287,29 @@ Tool exists yet. premise are resolved above. A narrow Artifact Role preserves the existing Coordinator and Tool filesystem boundaries while making quota, transaction, resume, and binary paging behavior exact. The ticket is ready for an AFK agent. + +2026-07-18 implementation complete: merge `f4e7405` integrates the private +Artifact Role, checked typed-FD data plane, exact serializer/page contracts, +transactional Journal settlement, quota/locking/reconciliation, Lead-only +Tool scope, and foreground/background lifecycle. Follow-up commits `79f05bf`, +`1064bab`, `d5e57bf`, and `12670a1` close the final acceptance gaps: inline +results now obey the 8/128/120 KiB encoded budgets; exact and one-byte-over +printable, escaped, NUL, base64, and valid multibyte UTF-8 results prove +earliest/latest selection and streamed equivalence; a losing real `fugu -r` +leaves both Journal bytes and namespace unchanged and sends zero Provider +requests; and deterministic ENOSPC reservation/write failures cancel the live +executor process group without leaking pending, order, final, or Journal +records. + +The final exact tree passes Artifact result 803/0, Artifact store 303/0, +Artifact lock 9/0, Artifact page 23/0, Tool 291/0, Journal 402/0, Turn +transaction 146/0, Turn mechanics 203/0, sandbox 56/0, Turn 424/0, deployment +17/0, and both aggregate clean gates. Normal and +`FUGU_DEBUG=1 CHECK_JOBS=4` each pass all 44 suites and 17,515 checks with zero +failures. The exact committed source passes isolated OpenBSD port +`makesum`/`checksum`, fake installation, library-dependency checking, package +creation, and an unchanged `update-plist`; `fugu-0.3.tgz` has SHA-256 +`a24638b1ebe49bd428f637a976282dce0df8a72ac596a81f8a50fb8ec59f6d3a`. +Credentialed, public-network, privileged-install, and clean-host deployment +checks remain explicit release procedures; they are not substitutes for or +blockers to this hermetic Artifact acceptance. blob - d55e87bdd530bf21ed734b4f2c4f66529de16480 blob + 737789c6165db0ec95a65129cb2204bfb83070c0 --- .scratch/model-thinking-effort/issues/01-configurable-thinking-effort.md +++ .scratch/model-thinking-effort/issues/01-configurable-thinking-effort.md @@ -1,6 +1,6 @@ # Configurable model effort -Status: ready-for-agent +Status: needs-info Type: task ## Problem @@ -91,13 +91,13 @@ Primary wire references: `high` is not optimized away. - [x] No value is aliased, ranked, clamped, or mapped to another Provider's spelling, and no adaptive-thinking or token-budget field is synthesized. -- [ ] The Lead value reaches first Generations, Tool continuations, manual and +- [x] The Lead value reaches first Generations, Tool continuations, manual and automatic Compaction, one-shot overflow recovery, and Generations after `/model`; resume adopts current configuration rather than Journal state. -- [ ] Subagents inherit `effort` unless `subagent_effort` is explicit, retain +- [x] Subagents inherit `effort` unless `subagent_effort` is explicit, retain the effective value across every child Generation and Palette route, and reject an out-of-range `agent_start` wire value. -- [ ] An unsupported model/value response is visible as the existing bounded +- [x] An unsupported model/value response is visible as the existing bounded Provider error, with no omission, downgrade, changed-Effort retry, or Provider fallback. Existing byte-identical pre-output transport retries remain and carry the exact value on every attempt. @@ -175,3 +175,24 @@ OpenBSD Turn/Agent, normal/hardened/package gates, and Claude run were deliberately not invoked from this worktree, so their four behavioral/gate criteria remain unchecked and the ticket remains `ready-for-agent` for integration proof. + +2026-07-18 integration proof: the combined OpenBSD tree at `12670a1` passes +both clean normal and `FUGU_DEBUG=1 CHECK_JOBS=4` gates: 44 suites and 17,515 +checks with zero failures in each run. Focused coverage includes Anthropic +4895/0, Claude Subscription 155/0, OpenAI 4889/0, configuration 292/0, +Compaction 199/0, Agent 175/0, Agent boot 24/0, Agent configuration 62/0, and +Turn 424/0. Those fixtures prove exact Lead propagation across first and Tool +continuation Generations, manual/automatic/overflow Compaction, retry, +`/model`, and current-policy resume; they also prove Subagent inheritance, +override, Palette routing, repeated child Generations, malformed wire +rejection, and conspicuous no-fallback Provider errors. + +The exact committed source also passes isolated OpenBSD port `makesum` and +`checksum`, fake installation, library-dependency checking, package creation, +and an unchanged `update-plist`. The resulting `fugu-0.3.tgz` SHA-256 is +`a24638b1ebe49bd428f637a976282dce0df8a72ac596a81f8a50fb8ec59f6d3a`. +The 43-line live-check help renders, but no ordinary-Owner Claude Subscription +request with nondefault Effort was run and no credential was requested. The +final composite criterion therefore remains unchecked; the ticket is +`needs-info` and intentionally has no Resolution until scrubbed Owner-run +evidence is recorded.