Commit graph

5611 commits

Author SHA1 Message Date
Scott Werner
cb21ddd58b
Merge pull request #1089 from fabro-sh/codex/fix-render-graph-acp-fixture
Some checks are pending
Rust / Test (Linux) (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 / Sandbox providers (Docker) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Use an explicit ACP backend in the graph-render fixture
2026-10-30 11:13:20 -04:00
Scott Werner
166c89e402
Merge pull request #1088 from fabro-sh/codex/attach-json-event-order
test: stabilize run stream snapshots across valid interleavings
2026-10-30 11:10:59 -04:00
Scott Werner
9081d0fcc5 test: tolerate valid startup interleavings in event snapshots 2026-10-30 10:53:24 -04:00
Scott Werner
c9a01de620 test: select ACP backend in graph render fixture 2026-10-29 08:21:25 -04:00
Scott Werner
9a8b8fb0da test: stabilize attach JSON across event log interleavings 2026-10-29 08:18:20 -04:00
fabro-releases[bot]
ff5b08f8cd Bump version to 0.401.0-nightly.0
Some checks are pending
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Format (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Rustdoc (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
2026-10-29 09:33:36 +00:00
Scott Werner
0310a10ff6
Merge pull request #1084 from fabro-sh/codex/server-credential-docs
Some checks failed
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Rust / Format (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
docs: clarify server and direct model credential sources
2026-10-28 11:40:46 -04:00
Scott Werner
24e2d9ca06
Merge pull request #1081 from fabro-sh/bot/internal-deps
Update internal dependencies
2026-10-28 11:39:55 -04:00
Scott Werner
a2bb7d6372
Merge pull request #1083 from fabro-sh/codex/decision-fallback-reason
Fix Decision tab fallback explanations
2026-10-28 11:39:36 -04:00
Scott Werner
48eabded2d
Merge pull request #1082 from fabro-sh/codex/cli-base-source
fix(cli): show the source branch in the Base header
2026-10-28 11:03:54 -04:00
Scott Werner
7461fc83aa docs: clarify server and direct model credential sources 2026-10-28 10:40:22 -04:00
Scott Werner
24bdc788bf Fix Decision tab fallback explanations 2026-10-28 10:32:39 -04:00
Scott Werner
b2b3140df0 fix(cli): show the source branch in the Base header 2026-10-28 10:29:12 -04:00
fabro-releases[bot]
d8a43b13f4 Bump version to 0.400.0-nightly.0 2026-10-28 09:37:22 +00:00
github-actions[bot]
8bcaf18007 Update internal dependencies to their current main 2026-10-28 06:40:53 +00:00
Scott Werner
022f3df2b1
Merge pull request #1080 from fabro-sh/codex/remove-overview-platform-records
Some checks are pending
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Rust / Format (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
TypeScript / Typecheck (push) Waiting to run
TypeScript / Test (push) Waiting to run
TypeScript / Build (push) Waiting to run
fix(web): remove platform records from run overview
2026-10-27 18:01:40 -04:00
Scott Werner
71abd4658f
Merge pull request #1076 from jsom/failure-banner
Say why a failed run stopped, above its tabs
2026-10-27 18:00:58 -04:00
Scott Werner
a4815ae89f fix(web): remove platform records from run overview 2026-10-27 15:54:28 -04:00
Scott Werner
758ddc532b Fetch provider names only for failed runs, through a shared helper
Every run page asked for the provider catalog, though only a failed or
dead run's banner uses it. useProviders takes an enabled flag, and the
id-to-display-name map settings-models built by hand is now
providerNamesById, shared with the run page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:01:35 -04:00
Scott Werner
7a769525c4 Label the stop step with formatStageLabel
The banner stripped a trailing @1 by hand, a second copy of the
sidebar's visit-suffix rule. Use formatStageLabel so the banner and the
Stages sidebar label a looped step the same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:00:45 -04:00
Scott Werner
6e7b75c0df Cap the failure message's height in the banner
The output block was capped at max-h-48 but the verbatim message wasn't,
so a long stack trace or cause chain could push the tabs out of view in
the full-height sandbox and terminal layouts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:00:24 -04:00
Scott Werner
aed46202b0 Recognize transient infrastructure failures by their reason
The server records a failure's category as deterministic or canceled, so
checking only the transient_infra category never fired. Check the
transient_infra reason as well, the way budget exhaustion already is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 14:00:16 -04:00
Scott Werner
285a1d06be Name the failed branch of a fan-out as the stop step
The stop step was the latest step to start, and only if it failed, so a
sibling branch starting a few milliseconds after the failed one hid it.
Name the latest failed step that no later step went on from, where a
concurrent sibling branch or the step's own branches don't count as
going on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:59:56 -04:00
Scott Werner
3107793f2b Don't report Fabro-side model request failures as the provider's refusal
A configuration, model-selection, network, middleware or resource-limit
error names a provider but never got an answer from it, yet the banner
said the provider rejected the request. Give these kinds wording that
points at Fabro's catalog, the network, or Fabro's own limits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:59:27 -04:00
Scott Werner
fdfa016c3a Don't blame the API key for an access_denied refusal
Every 403 was reported as a rejected API key, so a user whose key works
but whose account isn't allowed the model or region would rotate a good
key. Only lithos-llm's authentication kind or a 401 gets the API-key
wording; access_denied and other 403s say access was denied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:59:04 -04:00
Scott Werner
16abf08fa7 Read lithos-llm's quota_exceeded kind as a billing failure
A spent quota can come back as HTTP 429, which the banner showed as a
temporary rate limit and told the user to retry. lithos-llm marks it
quota_exceeded, which backoff never clears, so give it the billing
wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:58:53 -04:00
Scott Werner
f85866c65b Show the failed step's own output when no output tail is recorded
The server never fills conclusion.failure.detail.exec_output_tail, so the
Output section never appeared. Fall back to the output the stopped stage
recorded in the run state, skipping offloaded blob references and model
request failures, whose step output is the agent's text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:58:44 -04:00
Scott Werner
2e8d11b769 Show a banner for dead runs, which record no conclusion
A dead run's projection never gets conclusion.failure, so the banner
never showed. Fall back to the run summary's lifecycle.error, where the
server keeps a dead run's reason, and to a generic headline when that is
empty too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 13:58:17 -04:00
Scott Werner
b24cb3227f
Merge pull request #1078 from fabro-sh/bot/internal-deps
Update internal dependencies
2026-10-27 13:16:18 -04:00
Scott Werner
13639e8da2
Merge pull request #1079 from fabro-sh/codex/server-tracing-test-readiness
Wait for foreground startup tracing before stopping the test server
2026-10-27 12:18:10 -04:00
Scott Werner
1a03ba9bbe Wait for foreground server tracing before stopping the test server 2026-10-27 08:15:21 -04:00
fabro-releases[bot]
3c16575987 Bump version to 0.399.0-nightly.0 2026-10-27 09:44:26 +00:00
github-actions[bot]
10210ff1e5 Update internal dependencies to their current main 2026-10-27 06:53:04 +00:00
Scott Werner
0179502e5f
Merge pull request #1077 from fabro-sh/codex/correct-404-error-page
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 / Process titles (musl) (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
TypeScript / Typecheck (push) Waiting to run
TypeScript / Test (push) Waiting to run
TypeScript / Build (push) Waiting to run
Show the correct 404 page for missing browser routes
2026-10-26 17:07:59 -04:00
Scott Werner
3091bf5a2e
Merge pull request #1073 from fabro-sh/bot/internal-deps
Update internal dependencies
2026-10-26 12:49:08 -04:00
Scott Werner
9f7b178b1c Fix route error pages to display the correct status 2026-10-26 12:47:38 -04:00
James Robert Somers
123e0944bd Say why a failed run stopped, above its tabs
The status popover shows the reason code ("Workflow error") and
lifecycle.error, which is empty when the failure lives in the run's
state, so a run stopped by the provider's billing refusal showed no
reason anywhere. The message is in conclusion.failure.detail, which the
run page already loads.

Show a quiet banner on failed and dead runs: the step the run stopped
at, a headline and the next thing to do, with the verbatim message and
the tail of a failed command's output in a closed <details>. The advice
comes from the failure's reason and category first (approval denied,
budget, publish, launch), then from the structured model request
message the server records (provider, kind, status, code), then from a
command's exit status. Command output is never searched for provider
or billing words. Provider names come from /providers, cancelled runs
get no banner, and a step that failed earlier but was recovered from
isn't named as the stop.
2026-10-26 08:08:58 -04:00
github-actions[bot]
bb76d73a8b Update internal dependencies to their current main 2026-10-25 06:43:55 +00:00
fabro-releases[bot]
1906d7c9ea Bump version to 0.396.0-nightly.0
Some checks failed
Rust / Test (macOS) (push) Has been cancelled
Rust / Process titles (musl) (push) Has been cancelled
Rust / Test (Linux) (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 / Format (push) Has been cancelled
Rust / Clippy (push) Has been cancelled
2026-10-24 09:34:28 +00:00
github-actions[bot]
a70e7d6a90 Update internal dependencies to their current main 2026-10-24 06:45:45 +00:00
Scott Werner
586fafa9f5
Merge pull request #1072 from fabro-sh/codex/bun-security-update
Some checks failed
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
Rust / Process titles (musl) (push) Waiting to run
TypeScript / Typecheck (push) Has been cancelled
TypeScript / Test (push) Has been cancelled
TypeScript / Build (push) Has been cancelled
security: update Bun to 1.4.4 for compromised CA distrust
2026-10-23 20:27:09 -04:00
Scott Werner
0910630fd3 test: isolate installer session caches between cases 2026-10-23 18:39:36 -04:00
Scott Werner
c01352b0e4 security: update Bun to 1.4.4 for compromised CA distrust 2026-10-23 18:37:20 -04:00
Scott Werner
6f1e0fd0d1
Merge pull request #1071 from fabro-sh/codex/installer-settings
Stop generating ignored run settings during browser installation
2026-10-23 17:38:33 -04:00
Scott Werner
cd9b0be393 Remove unnecessary installer warning regression test 2026-10-23 17:20:56 -04:00
Scott Werner
6ba50e0807 Keep installer tests focused on behavioral contracts 2026-10-23 16:32:19 -04:00
Scott Werner
e047a9adff Stop generating ignored run settings during browser installation 2026-10-23 16:10:25 -04:00
Scott Werner
c2d3735c3e
Merge pull request #1069 from fabro-sh/codex/toml-catalog-serialization
Serialize generated provider overlays with the TOML library
2026-10-23 15:14:27 -04:00
Scott Werner
b1b1306211 Declare text support in the dotted-provider regression fixture 2026-10-23 14:43:13 -04:00
Scott Werner
2d859496e2 Serialize generated provider overlays with the TOML library 2026-10-23 14:38:46 -04:00