You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4b776cd
Browse filesBrowse the repository at this point in the historyBrowse files
fix(oabctl): address code-review findings on the bundle-restore fix
Follow-up commit on #103, from a multi-angle review pass before merge:
- inject_pre_seed_hook: rewritten on toml_edit (format-preserving) instead
of raw string append. Previously, *any* existing [hooks.pre_seed] made
injection a full no-op -- an operator's own hooks.pre_seed (e.g. this
agent's own persistent-state restore, unrelated to the deploy bundle)
meant the new bundle.zip was uploaded but never actually wired in, and
provision_from_library still reported success. Now merges the zip URI
into the existing `sources` array (true no-op only when that exact URI is
already present), mirrors pre_seed's own 5-source cap, and bails instead
of silently producing invalid TOML when `hooks`/`hooks.pre_seed` is
already an inline table (which can't be reopened with a `[table]` header).
- provision_from_library: mutates `bundle.files` in place before deriving
artifact_objects/zip_bytes/digest from it, instead of deriving them from
the pre-injection Bundle. Previously the uploaded zip's own config.toml
never got the pre_seed hook, and ProvisionOutcome.digest didn't match
what was actually uploaded.
- secret_env_vars: attaches the per-secret error context (env var name,
namespace/name) to both the "wrong scheme" and "right scheme, malformed
body" cases. anyhow's Context impl for Option<T> only fires on None, so
the previous `.with_context()??` silently dropped context on the latter.
- EcsDriver::apply: preserves the structured ApplyError in the anyhow
error's source chain (via .context() on Error::new(e)) instead of
flattening it into anyhow::anyhow!(...). A caller can again
`.chain().find_map(downcast_ref::<ApplyError>)` to recover
`.completed`/`.failed_service` for a partial fleet-apply failure.
ApplyError::reconciliation made pub(crate) so driver.rs's test can
construct one without a live ECS call.
24 new/changed tests, 131/131 total across oabctl+studio-cp, clippy clean
(same 3 pre-existing warnings elsewhere, untouched).
0 commit comments