fabro/lib/crates
Bryan Helmkamp 642e312cca
refactor: unify duplicate API types via with_replacement
Eliminate four parallel-type duplications between fabro-api generated
DTOs and fabro-types canonical types. The wire shape is owned by
OpenAPI; canonical types are reused via fabro-api/build.rs
with_replacement so the adapter functions and silent unwrap_or_default
defaults disappear.

- SecretType moves to fabro-types (was fabro-vault); deletes
  secret_type_from_api adapter.
- DiffLineStats renamed to DiffStats, moved to fabro-types, switched
  u64 -> i64 to match the OpenAPI integer; deletes line_stats_to_api.
- ManifestPreRunPushOutcome rewritten as a oneOf+discriminator
  PreRunPushOutcome over five variant schemas, deleting both
  pre_run_push_outcome_from_manifest and build_manifest_push_outcome.
- ManifestGit and PreRunGitContext unify as GitContext: dirty:
  DirtyStatus replaces clean: bool (preserving the Unknown state
  previously truncated on the wire), sha becomes Option<String>, and
  origin_url/branch fold into the unified context. RunSpec and
  RunCreatedProps flatten three fields (repo_origin_url, base_branch,
  pre_run_git) into a single git: Option<GitContext>.

Each replacement gets a fabro-api parity test (TypeId equality plus
JSON roundtrip) modeled on run_summary_round_trip.rs. TS client
regenerated.

Greenfield app, no production deployments — wire contract changed
directly without backwards-compat shims.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 12:29:37 -07:00
..
fabro-agent fix(lints): resolve clippy errors after error-chain refactor 2026-04-27 11:37:09 -07:00
fabro-api refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-auth refactor(types): use trait conversions directly 2026-04-26 21:36:24 -04:00
fabro-checkpoint Make git metadata sandbox-native 2026-04-27 21:43:15 -07:00
fabro-cli refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-client refactor: simplify per-run logs client and handler 2026-04-26 16:06:23 -04:00
fabro-config Make git metadata sandbox-native 2026-04-27 21:43:15 -07:00
fabro-core refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
fabro-dev fix(docker): grant server access to mounted socket 2026-04-27 11:12:44 -07:00
fabro-devcontainer refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
fabro-github refactor(redact): extract redaction into dedicated crate 2026-04-24 15:02:23 -04:00
fabro-graphviz refactor: adopt strum for enum string conversions 2026-04-22 17:16:25 -04:00
fabro-hooks refactor(llm): return Self from Client::from_source 2026-04-23 21:03:21 -04:00
fabro-http refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
fabro-install feat(install): add sandbox provider step to web install wizard 2026-04-27 14:59:17 -07:00
fabro-interview Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-llm refactor(types): use trait conversions directly 2026-04-26 21:36:24 -04:00
fabro-macros refactor(dev): simplify generated docs tooling 2026-04-24 18:41:00 -04:00
fabro-mcp fix: simplify fabro-http crate and fix correctness issues 2026-04-12 12:20:55 -04:00
fabro-model refactor(types): use trait conversions directly 2026-04-26 21:36:24 -04:00
fabro-oauth refactor(redact): extract redaction into dedicated crate 2026-04-24 15:02:23 -04:00
fabro-options-metadata refactor(dev): simplify generated docs tooling 2026-04-24 18:41:00 -04:00
fabro-proc refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
fabro-redact refactor(types): use trait conversions directly 2026-04-26 21:36:24 -04:00
fabro-retro refactor: simplify metadata snapshot + retro upload paths 2026-04-21 08:27:59 -04:00
fabro-sandbox refactor: drop WorkdirStrategy and RunOptions.checkpoints_disabled 2026-04-28 09:24:41 -07:00
fabro-server refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-slack refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
fabro-spa feat(dev): gitignore embedded spa assets 2026-04-26 21:31:11 -04:00
fabro-static Make Rust tests independent of SPA assets 2026-04-27 08:17:37 -07:00
fabro-store refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-telemetry refactor(static): centralize env var names 2026-04-24 12:29:51 -04:00
fabro-template refactor(async): lint std::process::Command across all targets 2026-04-12 13:35:57 -04:00
fabro-test test(fabro-test): reap stale tmp socket daemons 2026-04-24 21:02:23 -04:00
fabro-tracker refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-types refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-util fix(lints): resolve clippy errors after error-chain refactor 2026-04-27 11:37:09 -07:00
fabro-validate refactor(types): use trait conversions directly 2026-04-26 21:36:24 -04:00
fabro-vault refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00
fabro-workflow refactor: unify duplicate API types via with_replacement 2026-04-28 12:29:37 -07:00