fabro/docs/internal
Bryan Helmkamp 3510d5081d
Implement the lithos CredentialProvider trait directly
fabro-auth defined its own `CredentialSource` trait beside the lithos
`CredentialProvider`, with a parallel `ResolveError` and an adapter between
them, because lithos had no way to ask which providers a store can serve
right now. It does now: `credentials::readiness`, `ClientBuilder::build_ready`,
and `CredentialError::Unusable`.

- The vault, SQL vault, API-key, and extra-headers stores implement
  `CredentialProvider` directly. Material that is present but unusable (an
  expired token with no refresh, a wrong-typed vault entry, a header secret
  that did not resolve, a store read failure) is `CredentialError::Unusable`
  with the operator-facing reason; its `Display` replaces
  `auth_issue_message`. `is_configured` is the cheap presence check.
- `fabro_llm::build_client` calls `build_ready`; `FabroClient::auth_issues`
  carries `CredentialError`. `fabro_llm::configured_providers` replaces the
  per-store `configured_providers` method.
- `CredentialSource`, `ResolvedCredentials`, `lithos_credentials`,
  `ResolveError`, and `auth_issue_message` are deleted. Twenty files that
  held `Arc<dyn CredentialSource>` hold `Arc<dyn CredentialProvider>`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 09:16:39 -06:00
..
assets/brand docs: move published docs under docs/public 2026-04-26 21:19:46 -04:00
demo Shared-checkout parallel execution (recovered from run 01KY7YH7RYCJ1BDVTTP96ZA4HV) 2026-07-24 06:19:11 -04:00
licenses docs: move published docs under docs/public 2026-04-26 21:19:46 -04:00
product docs(secrets): document settings-declared credentials, fix stale local-run guidance 2026-07-25 09:04:59 -04:00
cargo-target-apfs-churn-plan.md docs: commit plan 2026-04-28 09:46:52 -07:00
cli-workflow-coupling-audit.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
error-handling-strategy.md docs: clarify chain-rendering boundary in error strategy 2026-05-04 11:28:28 -04:00
event-schema-competitive-analysis.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
events-strategy.md fix: fail runs when event persistence is lost 2026-08-21 18:31:22 -04:00
events.md Add version-backed run intent creation 2026-08-24 11:55:43 -04:00
fabro-event-schema-v2-concrete-shape.md docs(events): remove events that are never serialized 2026-07-24 21:56:54 -04:00
fabro-event-schema-v2-proposal.md feat(events): make inference in-flight state observable 2026-07-24 21:47:51 -04:00
llm-client-resolution.md Implement the lithos CredentialProvider trait directly 2026-09-10 09:16:39 -06:00
logging-strategy.md feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00
mcp-server-qa-test-plan.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
migrations-strategy.md Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
panic-policy.md chore: add panic policy 2026-05-26 22:04:04 -04:00
parallel-strategy.md Bound for_each fan-out memory 2026-07-28 20:16:20 -04:00
plan-events-as-source-of-truth-follow-ups.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
plan-events-as-source-of-truth.md Make git metadata sandbox-native 2026-04-27 21:43:15 -07:00
react-effects-policy.md docs: add React effects policy (#419) 2026-05-26 19:30:02 -04:00
run-directory-keys.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
server-secrets-strategy.md Resolve provider secrets through lithos conventional credentials 2026-09-09 23:00:08 -06:00
slow-test-opportunities-2026-04-07.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
testing-strategy.md refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
updating-web-screenshots.md refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00