Commit graph

5596 commits

Author SHA1 Message Date
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
Scott Werner
f79e21872e
Merge pull request #1067 from fabro-sh/codex/retain-review-history-links
Preserve human gate review links in Q&A history
2026-10-23 14:22:45 -04:00
Scott Werner
ffe389b5d2 Preserve human gate review links in Q&A history 2026-10-23 13:33:45 -04:00
Scott Werner
56bed5c900
Merge pull request #1064 from fabro-sh/codex/remove-run-prepare
Remove run preparation settings in favor of explicit commands
2026-10-23 13:18:16 -04:00
Scott Werner
dee7dd1ddf Drop duplicate former-prefix hook scenario 2026-10-23 12:49:30 -04:00
Scott Werner
d9bedadfb0 Remove redundant setup graph projection test 2026-10-23 12:39:40 -04:00
Scott Werner
ab3b078154 Trim redundant preparation removal coverage 2026-10-23 11:55:10 -04:00
Scott Werner
a98d5be8ff Expect the settings source path in parser errors 2026-10-23 10:34:40 -04:00
Scott Werner
d374ef0ec1 Integrate Petri preparation removal and update admission checks 2026-10-23 10:30:54 -04:00
Scott Werner
0b38121930 Merge remote-tracking branch 'origin/main' into codex/remove-run-prepare 2026-10-23 10:07:20 -04:00
fabro-releases[bot]
c412cb079b Bump version to 0.395.0-nightly.0 2026-10-23 09:39:10 +00:00
Scott Werner
9d9cbe9f41
Merge pull request #1065 from fabro-sh/codex/skipped-stage-display
Some checks are pending
Rust / Rustdoc (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
Rust / Format (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Sandbox providers (Docker) (push) Waiting to run
Rust / Process titles (musl) (push) Waiting to run
Distinguish skipped stages in CLI progress
2026-10-22 15:52:38 -04:00
Scott Werner
4a5c89e5ba Distinguish skipped stages in CLI progress 2026-10-22 15:18:52 -04:00
Scott Werner
b452f498f5 Remove run preparation settings in favor of explicit commands 2026-10-22 15:01:03 -04:00
Scott Werner
2e525b9e1e
Merge pull request #1062 from fabro-sh/bot/internal-deps
Update internal dependencies
2026-10-22 14:37:56 -04:00
github-actions[bot]
d377e92820 Update internal dependencies to their current main 2026-10-22 06:49:46 +00:00