Commit graph

786 commits

Author SHA1 Message Date
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
github-actions[bot]
f6e5e99bbe Update internal dependencies to their current main 2026-10-13 15:44:57 +00: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
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
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
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
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
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
fabro-releases[bot]
b609f6e015 Bump version to 0.380.0-nightly.0 2026-10-08 09:43:20 +00:00
Scott Werner
637fab367c Keep dependency bump within nightly updater scope 2026-10-07 11:56:13 -04:00
Scott Werner
170a1212b7 Bump internal Git dependencies to latest revisions 2026-10-07 10:44:37 -04:00
fabro-releases[bot]
f7ca525b7d Bump version to 0.379.0-nightly.0 2026-10-07 09:40:07 +00:00
Scott Werner
789ca8427b
Merge pull request #926 from fabro-sh/bump-lithos-llm-fd42e6b
Bump lithos-llm and Pebble to current main
2026-10-06 10:28:28 -04:00
Scott Werner
6d3859f4ec Merge remote-tracking branch 'origin/main' into bump-lithos-llm-fd42e6b 2026-10-06 09:13:53 -04:00
Scott Werner
ddf4b4db8d deps: bump quinn-proto to 0.11.18
Clears RUSTSEC-2026-0185 (fixed in 0.11.15). quinn is only in the lock
through reqwest's optional http3 feature, which Fabro doesn't enable, so
this only stops lockfile scanners from flagging it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 09:13:32 -04:00
fabro-releases[bot]
64b9d88159 Bump version to 0.378.0-nightly.0 2026-10-06 09:36:59 +00:00
Scott Werner
9e4af50863 Move stage credentials to Petri's spawn env and let the managed token win
Pin Petri at e46845b, the merge of its executor layer change. The stage
credential layer is now a Petri `SpawnEnv` applied with
`EnvHandle::with_spawn_env`, so Petri forwards every other environment
method and applies the layer to one-shot containers as well as processes.

A container gets the managed GITHUB_TOKEN, but no credential store refresh
or Git helper configuration: the store lives in the scope's sandbox, which
the container does not share.

The managed GITHUB_TOKEN now replaces one set in the workflow environment,
an ACP agent's environment or the sandbox's own, as Fabro's stage
environment did before Petri. The token carries exactly the access the run
declares; a stage that needs other access changes its declaration.

The new pin also keeps a timeout as the failure a partial success came
from: `PartialSuccess.underlying` is now an `UnderlyingFailure`, so the
projection reports "the step timed out" for a partial success converted
from a timeout. The run format moves from 7 to 8, which the attach JSON
snapshot records; runs stored before this pin are refused, as with earlier
format changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 19:26:08 -04:00
Scott Werner
8db70e072f Merge origin/main into codex/restore-stage-git-auth 2026-10-05 19:25:39 -04:00
Bryan Helmkamp
241f3eac39
Bump Pebble to current main 2026-10-05 09:18:43 -04:00
Bryan Helmkamp
85be2b192b
Bump lithos-llm and adapt retry and attachment APIs 2026-10-05 09:12:28 -04:00
fabro-releases[bot]
7fc0edbf81 Bump version to 0.375.0-nightly.0
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 / Sandbox providers (Docker) (push) Has been cancelled
Rust / Test (macOS) (push) Has been cancelled
Rust / Process titles (musl) (push) Has been cancelled
2026-10-03 09:33:23 +00:00
Scott Werner
3dd0c20aa4 Restore renewable GitHub credentials to workflow stages 2026-10-02 15:36:27 -04:00
Scott Werner
4c4bf3df1f
Merge pull request #922 from fabro-sh/codex/enforce-network-block
Enforce blocked networking for Docker and Daytona runs
2026-10-02 11:21:59 -04:00
fabro-releases[bot]
bfe5b33b6a Bump version to 0.374.0-nightly.0 2026-10-02 09:36:50 +00:00
Scott Werner
cd5f56a4ed Enforce resolved network policy for Docker and Daytona runs 2026-10-01 17:12:03 -04:00
fabro-releases[bot]
5879ebf099 Bump version to 0.371.0-nightly.0
Some checks failed
Rust / Test (macOS) (push) Has been cancelled
Rust / Process titles (musl) (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 / Test (Linux) (push) Has been cancelled
Rust / Sandbox providers (Docker) (push) Has been cancelled
2026-09-29 20:27:47 +00:00
Scott Werner
f53a387630 Use merged Petri and Daytona driver revisions 2026-09-29 15:25:07 -04:00
Scott Werner
c7c8e2cf79 Delegate Daytona allocation normalization to the driver 2026-09-29 14:19:35 -04:00
Scott Werner
d4bb266a52 Use merged Petri Daytona defaults 2026-09-29 13:11:24 -04:00
Scott Werner
2ceea5e62d Update Petri lock to CI-fixed Daytona defaults revision 2026-09-29 12:45:33 -04:00
Scott Werner
cae2a7fcdd Inherit Petri container defaults and preserve resource overrides 2026-09-29 11:26:08 -04:00
Scott Werner
c6464fb646 Restore Daytona container runs and configured resources 2026-09-28 23:02:34 -04:00
Scott Werner
d26b2324f0 Merge remote-tracking branch 'origin/main' into codex/restore-configured-artifact-storage
# Conflicts:
#	lib/apps/fabro-cli/tests/it/scenario/artifacts.rs
2026-09-28 16:27:30 -04:00
fabro-releases[bot]
798910aba1 Bump version to 0.370.0-nightly.0 2026-09-28 16:23:33 +00:00
Scott Werner
c7176bd572 Fix platform blockers in nightly releases 2026-09-28 11:37:15 -04:00
fabro-releases[bot]
3473386927 Bump version to 0.369.0-nightly.0
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 / Test (Linux) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
2026-09-27 09:35:51 +00:00
Scott Werner
6ac6d5495f fix: run built-in sandbox providers in process
Register lazy Host, Docker, and Daytona factories for Petri execution,
fork, and prune. Share server provider configuration, preserve lease
fingerprints, and source Daytona credentials from the vault.

Remove built-in plugin setup and skip gates; add a release-mode worker
and prune regression to catch the failure that blocked nightly builds.

Co-Authored-By: Codex <noreply@openai.com>
2026-09-24 17:14:47 -04:00
Scott Werner
a1926c8632 Restore configured artifact storage for workflow captures 2026-09-24 13:53:46 -04:00
Scott Werner
7f1c871443 Lock the Lithos libraries at their mains after the branch switch
Pebble, Petri, and sandbox-driver now name their internal dependencies by
branch = "main", so move the lock to their mains: pebble 72a51ea, Petri
cbab2c5, sandbox-driver 236196e (the Daytona cursor-listing fix plus a
test-only MSRV fix and a dependency-spelling change), twins 19bf6ae.
lithos-llm stays at 43a42ac: its main has changed Observer::on_retry to
take a RetryEvent, and pebble doesn't build against that yet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-24 13:41:23 -04:00
Scott Werner
00984ce241 build: track Lithos git dependencies on branch main
Every lithoscomputer git dependency (sandbox-driver, pebble, petri,
lithos-llm, twins) now uses `branch = "main"` instead of an exact rev,
matching the libraries, so the workspace resolves one Cargo source per
repository. Cargo.lock is the single place the commits are chosen; move
one with `cargo update -p <crate>`.

The lockfile keeps every commit except sandbox-driver, which moves from
583a164 to b30203c: Daytona removed its paginated sandbox listing, and
b30203c lists through cursors instead (it also moves the driver's
daytona-sdk-rust dependency to 0e69058). The Daytona auth-probe test
mocks now serve the cursor endpoint the driver calls.

CI reads the sandbox-driver commit for the plugin install from the
lockfile through cargo metadata instead of from Cargo.toml.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-23 12:40:52 -04:00
Bryan Helmkamp
7f583c5873
Pin Pebble and Petri at their mains after pebble#27 and petri#36
Fabro #893 merged before petri#36, so main pinned both at their PR
heads. Same trees; only the pinned revisions move to the merge commits.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 20:30:42 -04:00
Bryan Helmkamp
d3d6697aa1
Merge origin/main and pin sandbox-driver 583a164, Pebble eb08b70, Petri 23f78a2
main (#891) upstreamed the Pebble sandbox adapter and deleted
fabro-pebble-sandbox, so Fabro now builds Pebble's sandbox-driver feature
beside Petri's crates and must hold one sandbox-driver copy. The three
pins move together: sandbox-driver to its main after #61 (host
attach-by-path, merged), Pebble to pebble#27's head after it moved its
own sandbox-driver pin to the same revision, and Petri to petri#36's
head, which carries both bumps.

Resolution: Cargo.toml keeps main's shape with the three revisions
rewritten; Cargo.lock regenerated from main's copy and holds one copy of
each library.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 07:50:57 -04:00
Bryan Helmkamp
45d94ce711
Use pebble's sandbox-driver adapter and delete fabro-pebble-sandbox
`lib/components/fabro-pebble-sandbox` moved into pebble as
`pebble_coding_agent::sandbox_driver` (lithoscomputer/pebble#27): the
`Environment` over a driver handle (`SandboxEnvironment`, was
`PebbleSandbox`), the `SandboxExec` policy, the port routes, and
`display_for_log`. The pebble pin moves to that branch head, 6d03b3b,
with the `sandbox-driver` feature on (`sandbox-driver-test-util` for the
server's tests, which take `MockSandbox` from pebble now). Nothing in the
crate was Fabro's by design; what was Fabro's stays: `SecretRedactor`
moves to `fabro-redact` as pebble's `Redactor` over `redact_string`, and
the log renderer takes it where a driver failure is rendered.

`fabro-petri` hands pebble types to Petri's crates, so Petri must pin the
same pebble revision: the petri pins move to lithoscomputer/petri#36
(9ee3f85), which pins pebble at the same head. Both re-pin to the pebble
merge commit together once #27 merges.

The 14 pebble commits between the pins fold the session projection's
lifetime tallies into `SessionProjection::totals` (and `PromptDelta`'s
into a flattened `totals`, which renames the prompt's `subagents` key to
`subagent_counts`, as the projection's already was). The stage progress
fold, the runs handler, the OpenAPI schema, the generated client model,
and the round-trip test follow.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 17:42:15 -04:00