mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-08 22:21:45 +00:00
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>
23 lines
417 B
TOML
23 lines
417 B
TOML
[package]
|
|
name = "fabro-vault"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
publish = false
|
|
license.workspace = true
|
|
description = "Workflow-visible secret vault for Fabro"
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
chrono.workspace = true
|
|
fabro-types = { path = "../fabro-types" }
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
ulid.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|