Commit graph

5498 commits

Author SHA1 Message Date
Scott Werner
8780cb1bf6 Scope run model clients with session headers 2026-10-14 12:44:52 -04:00
Scott Werner
7c020a0d92
Merge pull request #1031 from fabro-sh/bot/internal-deps
Update internal dependencies
2026-10-14 10:59:43 -04:00
fabro-releases[bot]
f2f9388e9c Bump version to 0.386.0-nightly.0 2026-10-14 09:41:28 +00:00
github-actions[bot]
054c94ef2c Update internal dependencies to their current main 2026-10-14 06:49:40 +00:00
Scott Werner
de7ad06de5
Merge pull request #1030 from fabro-sh/bot/internal-deps
Some checks are pending
Rust / Format (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Update internal dependencies
2026-10-13 13:58:53 -04:00
Scott Werner
10e0884079
Merge pull request #1024 from fabro-sh/codex/run-git-identity
Propagate run Git identity to commands and agents
2026-10-13 13:46:11 -04:00
github-actions[bot]
f6e5e99bbe Update internal dependencies to their current main 2026-10-13 15:44:57 +00:00
Scott Werner
f8ce54cafc
Merge pull request #1029 from fabro-sh/codex/internal-deps-github-token-20261013
Use GitHub Actions token for internal dependency PRs
2026-10-13 11:15:34 -04:00
Scott Werner
3288fd7022 Use GitHub Actions token for internal dependency PRs 2026-10-13 10:42:42 -04:00
fabro-releases[bot]
3fffde2134 Bump version to 0.385.0-nightly.0 2026-10-13 09:40:31 +00:00
Scott Werner
d5b5435c11
Merge pull request #996 from fabro-sh/preserve-subagent-usage
Some checks failed
TypeScript / Typecheck (push) Has been cancelled
TypeScript / Test (push) Has been cancelled
TypeScript / Build (push) Has been cancelled
Rust / Format (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Keep subagent usage when an agent stage completes
2026-10-12 16:12:20 -04:00
Scott Werner
04addf9204
Merge pull request #1026 from fabro-sh/codex/settings-migration-permissions
Preserve Unix file permissions during settings migrations
2026-10-12 16:07:28 -04:00
Scott Werner
9e0e356112 Fail the umask permissions test when its child runs no tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:49:46 -04:00
Scott Werner
59f175d876
Merge pull request #1027 from fabro-sh/codex/refresh-host-crash-fix
Refresh sandbox-driver for Local worker crash cleanup
2026-10-12 15:44:04 -04:00
Scott Werner
81d63a0683 Track Petri's root usage breakdown by model
Bump Petri to the commit that reports `pebble.usage_by_model`, the root
session's usage by the route that spent it, and add an end-to-end test:
an agent stage on a scripted model whose primary answers once and then
fails mid-prompt keeps every token Petri reported, and files the
primary's share and the fallback's share under their own models.

Only Petri moves; Pebble and sandbox-driver stay at their locked
revisions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 15:38:02 -04:00
Scott Werner
0027f889db Refresh sandbox-driver for Local worker crash cleanup 2026-10-12 15:14:49 -04:00
Scott Werner
7127ee5936
Merge pull request #1025 from fabro-sh/codex/preserve-completed-result-on-delete
Preserve completed run results when sandbox cleanup fails
2026-10-12 14:31:26 -04:00
Scott Werner
20d8e8235a Preserve Unix permissions on settings migration files 2026-10-12 13:53:39 -04:00
Scott Werner
e09a08f1bb Point refused sandbox cleanup at the force option
A run whose sandbox cleanup fails is kept for a retry, and only an explicit
force deletes it without its sandboxes. Say so in the 409 so a caller with a
run stuck behind an unavailable provider knows how to proceed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 13:46:57 -04:00
Scott Werner
a2ca338514 Preserve completed run results when sandbox cleanup fails 2026-10-12 11:39:52 -04:00
Scott Werner
857ea59cca
Merge pull request #1023 from fabro-sh/codex/pause-automation-schedules
Fix automation schedule pause and resume controls
2026-10-12 10:22:35 -04:00
Scott Werner
dc30d9c1fa Propagate run Git identity to commands and agents 2026-10-10 08:53:50 -04:00
fabro-releases[bot]
5f82fb086e Bump version to 0.382.0-nightly.0
Some checks failed
Rust / Test (Linux) (push) Has been cancelled
Rust / Format (push) Has been cancelled
Rust / Clippy (push) Has been cancelled
Rust / Rustdoc (push) Has been cancelled
Rust / Generated Docs (push) Has been cancelled
Rust / Sandbox providers (Docker) (push) Has been cancelled
Rust / Test (macOS) (push) Has been cancelled
Rust / Process titles (musl) (push) Has been cancelled
2026-10-10 09:39:15 +00:00
Scott Werner
a16144867f Fix automation schedule pause and resume controls 2026-10-09 18:09:02 -04:00
Scott Werner
d6f1ab87c0 Keep subagent usage when an agent stage completes
A finished agent stage replaced its live usage, which included every
subagent session, with the parent session's usage alone, so completed
stage and run totals dropped descendant tokens and spend. The subagent
accounts were also read as an array, while Petri reports them as an
object keyed by session id, so no per-model rows were ever built.

The completed stage now totals the parent's usage and each descendant
account once, and builds per-model rows for the parent and every
descendant. The parent's usage goes under the routes Petri reports in
`pebble.usage_by_model` when present (lithoscomputer/petri#110), and
under the stage's model until then.

Fixes #933

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 16:57:59 -04:00
Scott Werner
0c279ea284
Merge pull request #944 from fabro-sh/bump-internal-deps-daytona-acp
Some checks failed
Rust / Format (push) Has been cancelled
Rust / Clippy (push) Has been cancelled
Rust / Rustdoc (push) Has been cancelled
Rust / Generated Docs (push) Has been cancelled
Rust / Test (Linux) (push) Has been cancelled
Rust / Test (macOS) (push) Has been cancelled
Rust / Process titles (musl) (push) Has been cancelled
Rust / Sandbox providers (Docker) (push) Has been cancelled
Run ACP agents on Daytona
2026-10-09 13:47:39 -04:00
Scott Werner
ae5e825a44 Track the latest Petri and graphviz-sys
Move Petri to current main, which picks up streamed stdin for Daytona
from sandbox-driver, reports how an ACP agent exited, extracts
checkouts as the sandbox user, and bumps lithos-llm and Pebble. Move
graphviz-sys to its latest commit (CI and README only). The Windows
crates return to main's newer versions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:31:56 -04:00
Scott Werner
782190d177 Run ACP agents on Daytona
Move sandbox-driver to the commit that streams stdin into Daytona
commands, and the Daytona SDK to the fix for stdout/stderr markers that
leaked into the session log stream. Together they let an ACP agent start
on Daytona and keep its JSON-RPC output intact. The agents docs no longer
say ACP fails on Daytona.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 12:39:10 -04:00
Scott Werner
5b3689c132
Merge pull request #939 from fabro-sh/required-run-finalization
Commit required publication before reporting run completion
2026-10-09 12:38:30 -04:00
Scott Werner
e9c35911bb Require finalization for every Fabro run
FabroHooks always declares required run finalization instead of only
when the run publishes or checkpoints. Every run takes one path, the
best-effort diff branch in run_finished goes away, and a fork always
declares what its worker's hooks will declare on resume, so the fork no
longer carries its source's flag across.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 12:08:28 -04:00
Scott Werner
b8281d6c1f Settle managed runs through one rule
ManagedRun::settle owns the rule that a run's first terminal status
sticks, and the lifecycle fold, the finish settle, fail_managed_run and
the in-process finish all go through it. One release_managed_run
replaces the two helpers that released a run's live state and also
frees its scheduler slot. The engine reads the finish through the
projection's finished_status, so a cancelled finish carrying a
checkpoint failure, and a failed publication, are mapped in one place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:59:19 -04:00
Scott Werner
04309977e5 Commit checkpoint failures through required finalization
A failed checkpoint cancels the run, so Petri recorded it as cancelled
and the worker overrode its own outcome in memory. Runs that checkpoint
now declare required finalization, and finalize_run rejects with
checkpoint_failed before publishing. The projection and the engine
outcome report a cancelled finish carrying that failure as a workflow
failure with the checkpoint's message, and the in-memory override is
gone. A run whose checkpoint failed is never published.

Retry a host failure that storage rejects with a short backoff, so a
brief storage fault does not leave the run active and holding its
scheduler slot. A failure that never commits still leaves the run's
status alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:00:01 -04:00
fabro-releases[bot]
fbed0c7ae3 Bump version to 0.381.0-nightly.0 2026-10-09 09:40:02 +00:00
Scott Werner
b4aea6128d Tidy host failure handling and restore main's lockfile versions
Share the managed-run cleanup between persist_run_failure and
fail_managed_run, return the committed projection from
commit_host_failure, and keep the run's status when the failure cannot
be stored. Restore the cancelled-launch message and keep the spawn
error's cause in the launch failure.

Rebuild Cargo.lock from main with only the Petri bump so the Windows
crates stay on their newer versions. Import the projection module
rather than the function, wrap long tracing calls, and document the
finalization test fixture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:38:10 -04:00
Scott Werner
af41c7c66c Simplify required run finalization
Name the publish failure once, settle host failures through one flat
helper, share the append-then-finish path for in-process runs, reuse
the source state already read when checking a fork, and drop the
unused finished-run status shim.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:45:25 -04:00
Scott Werner
599b674ec1 Build required publication on Petri main's finalization
Track Petri main now that required run finalization has merged there,
read workflow execution from the engine state, resume the failed-publication
regression with its admitted workflow, and keep the worker lifecycle helper
usable for rejected appends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:45:25 -04:00
Scott Werner
3443a923c0 Carry required publication into fork declarations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:45:25 -04:00
Scott Werner
59f9088b04 Preserve committed outcomes during host failure cleanup
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:45:24 -04:00
Scott Werner
21d4db6766 Commit publication failures through required run finalization 2026-10-08 12:45:24 -04:00
Scott Werner
36f8b61b60
Merge pull request #941 from fabro-sh/codex/petri-test-server-port
Some checks are pending
Rust / Test (macOS) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Rust / Format (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Bind Petri scenario servers to OS-assigned ports
2026-10-08 10:50:56 -04:00
Scott Werner
d3d8893bf9 Bind Petri scenario servers to OS-assigned ports 2026-10-08 10:33:38 -04:00
fabro-releases[bot]
b609f6e015 Bump version to 0.380.0-nightly.0 2026-10-08 09:43:20 +00:00
Scott Werner
fa688cad50
Merge pull request #934 from fabro-sh/codex/macos-dry-run-timeout
Some checks failed
Rust / Clippy (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Format (push) Waiting to run
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
TypeScript / Typecheck (push) Has been cancelled
TypeScript / Test (push) Has been cancelled
TypeScript / Build (push) Has been cancelled
Skip question polling for auto-approved CLI attach
2026-10-07 17:29:00 -04:00
Scott Werner
8b773cdd00
Merge pull request #788 from chunga-ict/fix/schema-mismatch-error-message
Explain schema mismatches as a version skew
2026-10-07 16:33:03 -04:00
Scott Werner
ee86a497d5 Update runner test for schema mismatch diagnostics 2026-10-07 16:21:51 -04:00
Scott Werner
e1932f2c42 Preserve the cause of schema mismatch errors 2026-10-07 16:07:59 -04:00
Scott Werner
a21d3b47c4
Merge pull request #935 from fabro-sh/codex/bump-internal-deps-20261007
Bump internal Git dependencies to latest revisions
2026-10-07 13:17:06 -04:00
Scott Werner
637fab367c Keep dependency bump within nightly updater scope 2026-10-07 11:56:13 -04:00
Scott Werner
08ffe2cc19
Merge pull request #923 from seniorquico/docs/local-run-checkout
Fix docs related to Local runs
2026-10-07 11:27:06 -04:00
Scott Werner
fb79d0bc74 Clarify source and execution directories for Local runs 2026-10-07 11:12:00 -04:00