Commit graph

8 commits

Author SHA1 Message Date
Bryan Helmkamp
ecdfdd82d8
feat(install): add browser-based setup flow
Implement the web-first install experience across the server, CLI, API spec,
web app, and packaged SPA assets.

This also removes test-side process env mutation by pushing env-dependent
decision points behind explicit helpers and test wiring.
2026-04-19 11:20:58 -04:00
Bryan Helmkamp
5fa6b6e7a8
fix: resolve test failures and clippy warnings across workspace
- Remove EnvGuard and env-mutating test from fabro-auth (shared mutable state)
- Revert project.toml preserve=true that broke sandbox cleanup event tests
- Fix clippy: use is_some_and, scoped imports for StageStatus and render
- Update snapshot tests for new Run: ULID line and model_test output
- Fix preflight test assertion (name said "allows", asserted failure)
- Update cancel_queued_run test: cancelled runs now appear on board
- Add graph direction query param support to get_graph endpoint

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 11:02:20 -04:00
Bryan Helmkamp
57e0385c98
fix(workflow): use configured providers for default models
Derive configured providers from env and vault when choosing default
models during run creation and materialization, and thread the resolved
run provider through execution handlers instead of recomputing it.

Also return a user-facing error when fabro-agent cannot infer a default
model for the selected provider.
2026-04-15 08:19:04 -04:00
Bryan Helmkamp
54a11e1426 fix(lint): resolve clippy warnings for Rust 1.94 on CI
- Use short imports instead of absolute paths in test assertions
  (fabro-config merge.rs, resolve/mod.rs)
- Remove needless raw string hashes where string body has no quotes
  (fabro-config, fabro-workflow, fabro-server)
- Use struct initializer instead of field reassignment on Default
  (fabro-types resolved.rs)
- Allow disallowed_methods for Command::new in test that exercises
  a real login command (fabro-auth resolve.rs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:26:36 -04:00
Bryan Helmkamp
6e80d8b8f2 Fix OpenAI Codex OAuth device auth
Align the OpenAI device-auth flow with the live Codex endpoints and
allow API-backed OpenAI resolution to fall back to the stored
openai_codex credential. This makes provider login work against the
current OpenAI response shape and lets doctor/workflows use the saved
credential without OPENAI_API_KEY in the environment.
2026-04-13 11:29:01 -04:00
Bryan Helmkamp
f3aa30d782 Complete provider credential auth and scripted install 2026-04-13 09:15:45 -04:00
Bryan Helmkamp
43d73cb4a1 Clean up provider auth helper duplication
Share provider display names and OAuth expiry helpers across auth, CLI,
and server code, and simplify the small match arms and helper plumbing
that full-workspace clippy surfaced during final verification.
2026-04-13 07:02:03 -04:00
Bryan Helmkamp
a1d8b738d8 Add typed provider credential auth flow 2026-04-12 22:10:11 -04:00