Skip to content

cfgd v0.4.0

Latest

Choose a tag to compare

@tj-smith47 tj-smith47 released this 30 May 09:27
ae4ecb6

Changelog

Features

  • b0d10cd drain known-bugs Active + dual-sink Windows daemon logging (TJ Smith)
  • 98272f9 --shell flag on cfgd apply forces inline-script interpreter (TJ Smith)
  • a218458 add 'alias' subcommand tree for spec.aliases CRUD (TJ Smith)
  • f6bc988 add 'ls'/'rm' clap aliases on ConfigCommand and fix long_about examples (TJ Smith)
  • 9a75046 add 'rm' alias to profile/module delete subcommands (TJ Smith)
  • ddc704e add kube-rs mock tests for kubectl plugin commands (TJ Smith)
  • c41e3f8 deny_unknown_fields on user-facing config shapes to catch typos (TJ Smith)
  • a4c530a add shell field to ScriptEntry for interpreter selection (TJ Smith)
  • 582bf99 wire brontes as cfgd MCP server (TJ Smith)
  • 17eef92 Printer prompt-response mock + use to cover profile/update restore loop (TJ Smith)
  • 3ce4cab adopt accent + secondary at cfgd module list (TJ Smith)
  • 82c2168 adopt secondary at cfgd status drift attribution (TJ Smith)
  • 2f9f0d8 adopt secondary at cfgd sync source loop (TJ Smith)
  • b8c638a split apply partial-success into Ok + Accent lines (TJ Smith)
  • 922893a ThemeOverrides 18→17 fields with legacy-key warnings (R1.T25) (TJ Smith)
  • 98d6cf4 add _v2 helpers in cli/helpers.rs (R2.F0.T1) (TJ Smith)
  • 9d99981 add _v2 helpers in cli/plan_ops.rs (R2.F0.T2) (TJ Smith)
  • 46da309 add _v2 helpers in cli/source/helpers.rs (R2.F0.T3) (TJ Smith)
  • 4ba04dc migrate cfgd config show to Doc + emit (R2.F1.T1) (TJ Smith)
  • 8844b0a migrate cfgd module list+show to Doc + emit (R2.F1.T2) (TJ Smith)
  • 302bd11 migrate cfgd profile show to Doc + emit (R2.F1.T5) (TJ Smith)
  • 2fadb80 migrate cfgd source show to Doc + emit (R2.F1.T3) (TJ Smith)
  • ebbfb91 migrate cfgd status to Doc + emit (R2.F1.T4) (TJ Smith)
  • a52bc82 migrate cfgd compliance diff to Doc + emit (R2.F2.T3) (TJ Smith)
  • 49cb702 migrate cfgd compliance snapshot+export+history to Doc + emit (R2.F2.T2) (TJ Smith)
  • bd048a1 migrate cfgd decide to Doc + emit (R2.F2.T6) (TJ Smith)
  • 48db06e migrate cfgd doctor to Doc + emit (R2.F2.T4) (TJ Smith)
  • 4dd6839 migrate cfgd enroll to Doc + emit (R2.F2.T8 — close audit gap) (TJ Smith)
  • b5a979c migrate cfgd explain to Doc + emit (R2.F2.T7) (TJ Smith)
  • f41947d migrate cfgd init to Doc + emit (R2.F2.T1) (TJ Smith)
  • 511af22 migrate cfgd verify to Doc + emit (R2.F2.T5) (TJ Smith)
  • 878f10e migrate cfgd apply to Doc + emit (R2.F3.T1) (TJ Smith)
  • 74f05bb migrate cfgd checkin to Doc + emit (R2.F3.T7) (TJ Smith)
  • af7686e migrate cfgd diff to Doc + emit (R2.F3.T5) (TJ Smith)
  • e5e36d0 migrate cfgd log to Doc + emit (R2.F3.T8) (TJ Smith)
  • dcfea81 migrate cfgd plan to Doc + emit (R2.F3.T2) (TJ Smith)
  • c652cb3 migrate cfgd pull to Doc + emit (R2.F3.T4) (TJ Smith)
  • 7ae783a migrate cfgd rollback to Doc + emit (R2.F3.T6) (TJ Smith)
  • ce4e4d6 migrate cfgd sync to Doc + emit (R2.F3.T3) (TJ Smith)
  • 0b57a2e migrate cli/{generate,upgrade,plugin,workflow,mod} extras to Doc + emit (R2.F3.5.T7) (TJ Smith)
  • 277fc9d migrate config_cmd.rs + secret.rs to Doc + emit (R2.F3.5.T4) (TJ Smith)
  • 9b860a2 migrate module/crud.rs (R2.F3.5.T3b) (TJ Smith)
  • 3ae290e migrate module/{build,keys,apply_crd,export} (R2.F3.5.T3a) (TJ Smith)
  • afd5595 migrate module/{registry,signature} + close T1 profile→module hybrid (R2.F3.5.T3c) (TJ Smith)
  • 6a13277 migrate profile/* to Doc + emit (R2.F3.5.T1) (TJ Smith)
  • 5b8f49f migrate source/* to Doc + emit (R2.F3.5.T2) (TJ Smith)
  • 1606f20 migrate cli/daemon.rs + close F4a-adjacent helper (R2.F4a.T1) (TJ Smith)
  • d6b3dba migrate daemon lib chain (mod.rs + runner.rs + consumer flips) (R2.F4b.T1) (TJ Smith)
  • 67e5be9 migrate reconciler action paths to v2 + collapse T1 scaffolding (R2.F4c.T3) (TJ Smith)
  • 4d46406 migrate reconciler apply core + provider seam to v2 (R2.F4c.T1) (TJ Smith)
  • 458db4b migrate CfgdFileManager (files/{apply,plan}) to v2 + cli/diff cmd restructure (R2.F4d.T3) (TJ Smith)
  • d04b525 migrate modules to v2 + caller cascade + daemon/reconcile.rs final v1 forwarder collapses (R2.F4d.T4) (TJ Smith)
  • ea4966e migrate server_client to v2 + checkin/enroll caller flip (R2.F4d.T1) (TJ Smith)
  • 22fea6d migrate sources to v2 + CLI callers + legacy_printer cleanup (R2.F4d.T2) (TJ Smith)
  • be48879 flip SystemConfigurator trait to v2 + migrate 20 impls + drop reconciler v1_forwarder (R2.F4e.T1) (TJ Smith)
  • 59d8fba flip PackageManager trait + all 16 impls to v2 Printer + drain reconciler v1_forwarder shims (R2.F4f.T1) (TJ Smith)
  • 554d5ae migrate OCI pull/push helpers to v2 + drop CLI v1 printer arg (R2.F4f.T2) (TJ Smith)
  • 36ee1fd migrate upgrade module + cli/upgrade caller to v2 (R2.F4f.T3) (TJ Smith)
  • c76aac7 consolidate cross-OS path/io text normalization (TJ Smith)
  • d46bfa7 wave 1 — route path-to-JSON through to_posix_string (TJ Smith)
  • 89c40f1 wave 4 batch 4 — cli/ .display() → .posix() (TJ Smith)
  • 6ecbf9e wave 4 batch 5 — cfgd subsystems .display() → .posix() (TJ Smith)
  • e8070f9 wave 5 — generate/files.rs blocked-pattern check via to_posix_string (TJ Smith)
  • dea67a3 add --require-cosign flag for strict signature verification (TJ Smith)

Bug Fixes

  • cc5b515 restore green CI by addressing platform-gating and missing deps (TJ Smith)
  • 91e1bb7 align pin-version naming + fix SIGHUP e2e grep (TJ Smith)
  • da04ed5 find_subcommand_index handles every value-taking global flag (TJ Smith)
  • 338af39 print help and exit 0 when no subcommand given (TJ Smith)
  • f8cf1a1 rename 'completions' subcommand to 'completion' (singular) (TJ Smith)
  • 4461399 execute_module_export_dispatch leaks test-mod/ into repo cwd (TJ Smith)
  • 3557908 drain remaining Windows test failures + E2E setup regressions (TJ Smith)
  • b725bd3 make E2E gateway suite pass without rate-limit cranking (TJ Smith)
  • 57c2b4e scope git add/commit to repo_root so parallel tests don't collide (TJ Smith)
  • 1ae6500 surface restore failures during cosign key rotation (TJ Smith)
  • 0d8e7ed replace TOFU signature sentinel with real cosign verify in pull_module (TJ Smith)
  • c9e8df5 centralize multi-line error → subject collapsing (TJ Smith)
  • 2d60b15 narrow output_types visibility + strip narrative test comment + drop unused Doc heading (R2.F0.T4 review) (TJ Smith)
  • e9c6446 From impls for Verbosity/OutputFormat + assert_*_snapshot_in + tighter Enabled assertion + drop redundant flush (R2.F1.T1 review) (TJ Smith)
  • 305b857 Last Apply key Status→Result + borrow with_data payload for parity (R2.F1.T4 review) (TJ Smith)
  • 5657dab drop last old-API call from source show + not_found Doc + SHORT_COMMIT_LEN const (R2.F1.T3 review) (TJ Smith)
  • b50c395 drop unused _cfg binding in cmd_profile_show (R2.F1.T5 review) (TJ Smith)
  • bc41c91 fold Config/Profile into Docs; drop dup-error from not-found Docs; ExitCode::NotFound; profile-show {name, resolved} envelope (F1 family review) (TJ Smith)
  • 98be286 with_data on module-not-found doc + simplify JSON test prefix-skip (R2.F1.T2 review) (TJ Smith)
  • 52be2b4 add bridge-invariant snapshots for init apply + enroll cmd_token flow (R2.F2 family review B) (TJ Smith)
  • 00b2166 delete v1 display_pending_decisions + port multi-source/singular coverage to v2 + narrow payload visibility (R2.F2.T6 review) (TJ Smith)
  • b129899 drop dead buf.clear() + unused buf binding in verify-after-apply test (R2.F2.T5 review) (TJ Smith)
  • 85a026d drop stale T3-owns banner + spec ref + dead cli.output write (R2.F2.T3 review) (TJ Smith)
  • 3514468 restore per-module package checks + bootstrap method + sops path + section ordering + bare-fixture coverage (R2.F2.T4 review) (TJ Smith)
  • d74e743 thread v2_printer through apply/plan/maybe_update_workflow + 4 callers; narrow InitOutput visibility (R2.F2.T1 review) (TJ Smith)
  • a87cdc0 with_data on init/explain/enroll error paths + camelCase serde + snapshot floor (R2.F2 family review A) (TJ Smith)
  • db96738 wrap export summary in section + add export JSON golden (R2.F2.T2 review) (TJ Smith)
  • 4216155 Role::Ok on checkin Saved-to + section_or_collapse for log Entries (R2.F3 family review A) (TJ Smith)
  • 2e7d31a accept snapshot + Warn header + Info-on-zero + build_rollback_doc DRY (R2.F3.T6 review) (TJ Smith)
  • a2dfca1 clarify checkin bridge-synthetic docstring divergence (R2.F3.T7 review) (TJ Smith)
  • 4f5fe3d replace hand-rolled apply snapshots with real cmd_apply capture + drain T1 review (R2.F3.T1 review) (TJ Smith)
  • 0a07c3e restore accept-perms commit line + drain T3 review (R2.F3.T3 review) (TJ Smith)
  • 9736258 show_output empty-entries snapshot + JSON coverage + visibility tighten (R2.F3.T8 review) (TJ Smith)
  • 546cbc3 tighten pull_status_from_result visibility (R2.F3.T4 review) (TJ Smith)
  • 4fa4650 with_data on diff module-not-found path + DRY summary emit via build_diff_doc + docstring fix (R2.F3.T5 review) (TJ Smith)
  • 0c0be3c drain T1 review (snapshot floor + error-path Docs + real cmd_x capture) (R2.F3.5.T1 review) (TJ Smith)
  • a94efea drain T2 review (Accept-confirm-then-success snaps + EditorGuard lift + error_doc helper + Cancel option for source remove) (R2.F3.5.T2 review) (TJ Smith)
  • d78d426 drain T3 review (bridge snapshots + floor gaps + dead param + comment cleanup) (R2.F3.5.T3 review) (TJ Smith)
  • bd3ea10 drain T4 review (cmd_config_show emit-then-bail + secret edit label + spec amends) (R2.F3.5.T4 review) (TJ Smith)
  • e80cf7e drain T6 reviewer findings (emit-then-bail + role discipline + §17.3 amend + module_build bridge + visibility narrowing) (R2.F3.5.T6 review) (TJ Smith)
  • b11cc8c drain T7 review (bridge snapshots + plugin disconnected + comment + spec updates) (R2.F3.5.T7 review) (TJ Smith)
  • 496c558 thread .duration() through apply summary (drain known-bugs) (R2.F3.5.T5) (TJ Smith)
  • 753446d drain T1 reviewer findings (narrative comments + unused param + runtime_failed emit + install_failed extras) (R2.F4a.T1 review) (TJ Smith)
  • e908a4e drain T8 carry-forward — source-layer fixes for embedded-\n Status subjects + write_line debug_assert (R2.F4c.T8 drain 2) (TJ Smith)
  • 8a563f5 drop cosmetic hybrid-quiet in source/add + source/update (R2.F4d.T2 drain) (TJ Smith)
  • bba7778 drop redundant CLI status_simple for cmd_module_push (R2.F4f.T2 drain) (TJ Smith)
  • 1cf4603 surface stderr in run_pkg_cmd_live install/uninstall errors (TJ Smith)
  • 3e6e454 address review findings — apk parser, lock-step seams, test hygiene (TJ Smith)
  • 7a67bce --phase {pre,post}-scripts catches module-level scripts (TJ Smith)
  • fb46b02 address MEDIUM/LOW audit findings + bump workspace to v0.4.0 (TJ Smith)
  • 7202dd0 collapse multi-line systemctl errors before status_simple subject (TJ Smith)
  • 7c4e3e1 CRLF + file:// + windows asset suffix + macos bind via privileged port (TJ Smith)
  • bef16d3 close remaining macos/windows/coverage holes (TJ Smith)
  • b89692d comprehensive Windows cfg-gating sweep via cross-compile (TJ Smith)
  • 0cf825e cross-platform stability across windows + macos hangs/diffs (TJ Smith)
  • f41f16f isolate cosign-missing tests from CFGD_COSIGN_BIN seam (TJ Smith)
  • c649ccc windows snapshot path-sep normalization + macos metrics gated (TJ Smith)
  • 0709883 cfg-gate assert_snapshot import in module_keys_snapshots.rs (TJ Smith)

Others

  • 516e51a skip Krew publisher pending index PR review (TJ Smith)
  • 21c47de release prep #minor (TJ Smith)
  • bd93902 bump brontes 0.1.0 → 0.2.0 (TJ Smith)
  • 5775e57 flip brontes from git-master to crates.io 0.1.0 (TJ Smith)
  • b76eea1 acceptance — R3++ narrative drain closed (TJ Smith)
  • 7d054fb strip narrative session comments from _v2 helpers (TJ Smith)
  • 7044089 strip dead_code allow on load_config_and_profile_v2 (R2.F1.T6) (TJ Smith)
  • 643e7de strip dead_code allows on F2-wired F0 helpers + collapse check_subject→check_key (R2.F2.T8) (TJ Smith)
  • 6c887a6 strip dead_code allows on F3-wired F0 helpers + §17.3 entries (R2.F3.T9) (TJ Smith)
  • 453c410 acceptance — drain family reviewer minor + add cfg! rationale comment (R2.F4a.T2) (TJ Smith)
  • 66ab7e9 acceptance — lift F4a carve-out + drain family reviewer (R2.F4b.T3) (TJ Smith)
  • 636f93d acceptance — F4c family closes; drain T6 family-review minor (R2.F4c.T6) (TJ Smith)
  • b4b921d acceptance — F4d family closes (R2.F4d.T5) (TJ Smith)
  • 1b25b9a acceptance — F4e family closes (R2.F4e.T4) (TJ Smith)
  • aea496b acceptance — F4f family closes (R2.F4f.T5) (TJ Smith)
  • 67a6cca keep manifests at 0.3.5 (TJ Smith)
  • 62fd9e3 forward CLI_ARGS to test + test:crate:* wildcard pattern (TJ Smith)
  • 1f3cffe clippy fixes — struct-init form for PolicyItems / ModuleSpec / CCPSpec test fixtures (TJ Smith)
  • d7d4ff7 re-attempt v0.4.0 after anodizer publish-only fixes (TJ Smith)
  • fb17d92 re-attempt v0.4.0 after upload read-after-write fix (TJ Smith)
  • 521f0c5 re-attempt v0.4.0 with Discussions enabled (TJ Smith)
  • ae4ecb6 re-attempt v0.4.0 with binary-producing determinism harness (TJ Smith)
  • 35da887 clarify alias dispatch prefix and List hint (TJ Smith)
  • 894a099 clarify is_value_taking_flag short-flag wording (TJ Smith)
  • 8f9a4f7 drop stale v1/v2 narrative in comments (R3+.T5) (TJ Smith)
  • 09deb95 drop stale v2 narrative from comments touched by T1 (R3+.T1) (TJ Smith)
  • c90a72d drop stale v2 narrative in registry/enroll comments (R3+.T3) (TJ Smith)
  • 5135eb5 N2 deref simplify + F1-reviewer notes on policy/decisions v2 (R2.F0.T3 review) (TJ Smith)
  • f138bc1 bridge marker on prompt_backup_choice_v2 + drop format!() (R2.F0.T2 review) (TJ Smith)
  • 2514723 note R3 kill-date on _v2 dead_code allows (R2.F0.T1 review) (TJ Smith)
  • bde67e2 add accent and secondary entries to overrides docs (TJ Smith)
  • b992c80 surface tool serialization errors and capture anthropic api error body (TJ Smith)
  • 7716fa3 externalize tests to cli/tests.rs (TJ Smith)
  • 3ce6b3c extract cmd_checkin + cmd_decide to siblings (TJ Smith)
  • b7e41aa extract cmd_compliance_* to cli/compliance.rs (TJ Smith)
  • 4998edb extract cmd_config_* to cli/config_cmd.rs (TJ Smith)
  • 92d7d14 extract cmd_daemon* to cli/daemon.rs (TJ Smith)
  • a44e2a0 extract cmd_doctor to cli/doctor.rs (TJ Smith)
  • 77e5186 extract cmd_log* to cli/log.rs (TJ Smith)
  • 13191b7 extract cmd_plan to cli/plan.rs (TJ Smith)
  • e057836 extract cmd_rollback, cmd_sync, cmd_pull to siblings (TJ Smith)
  • 6b84347 extract cmd_secret_* to cli/secret.rs (TJ Smith)
  • d463257 extract cmd_source_* to cli/source.rs (TJ Smith)
  • 28daa47 extract cmd_workflow_* to cli/workflow.rs (TJ Smith)
  • 2103da6 extract plan helpers to plan_ops.rs (TJ Smith)
  • 5e4f926 extract provider registry + secret backend wiring to registry.rs (TJ Smith)
  • 2ff57c7 extract remaining helpers + composition to helpers.rs (TJ Smith)
  • 2b3e717 extract structured output types to output_types.rs (TJ Smith)
  • 56491af split into per-schema submodules (TJ Smith)
  • 5625b2a split into per-concern submodules (TJ Smith)
  • 24860d7 split into per-handler submodules (TJ Smith)
  • 4f3e756 split into per-handler submodules (TJ Smith)
  • 4117dd8 split mod.rs into per-concern submodules (TJ Smith)
  • 5870e3e tighten resolve_source_path visibility (10B review fix) (TJ Smith)
  • f946a9c externalize tests to packages/tests.rs (TJ Smith)
  • 1705b2f split mod.rs into per-backend submodules (TJ Smith)
  • 89395f5 split into per-impl submodules (TJ Smith)
  • 8b72fb4 carve apply into cli/apply.rs (S-6) (TJ Smith)
  • 72c64de carve diff into cli/diff.rs (S-6) (TJ Smith)
  • 02a1dfc carve status into cli/status.rs (S-6) (TJ Smith)
  • aa6db7c carve upgrade into cli/upgrade.rs (S-6) (TJ Smith)
  • b085caf carve verify into cli/verify.rs (S-6) (TJ Smith)
  • 903be3b drain S-6 reviewer cleanup-pass items (TJ Smith)
  • 8dc2e1b expose Cli via lib.rs for integration testing (TJ Smith)
  • 7837a3d switch checkin to anyhow::Context and surface error chain in spinner detail (TJ Smith)
  • 2a627ea extract build_device_credential + next_steps_lines (TJ Smith)
  • e7cf257 split cli/module.rs into module/ submodules (TJ Smith)
  • 76a1c09 extract compute_lock_url + compute_pinned_ref + ensure_module_in_profile_doc (TJ Smith)
  • 2a7e070 extract search filter + review-summary helpers + 11 tests (TJ Smith)
  • 9153306 extract build_inject_patch_json + 4 tests (TJ Smith)
  • 76d8095 rename *_v2_snapshots.rs → *_snapshots.rs (TJ Smith)
  • de2776a replace Printer::style with StatusBuilder::label (TJ Smith)
  • ff842f8 drop PrinterV2 alias post-rename (R3+.T1) (TJ Smith)
  • 43bc0b5 drop _v2 suffix from cli helpers + diff fns (R3+.T4b) (TJ Smith)
  • 6817387 drop _v2 suffix from plan_ops fns (R3+.T4a) (TJ Smith)
  • 94bbf09 drop _v2 suffix from test_printer helper (R3+.T4c) (TJ Smith)
  • 6f9ea53 drop remaining v2 type aliases (R3+.T2) (TJ Smith)
  • cb09df5 drop v2 from make_* / test_* test helpers (R3+.T4d) (TJ Smith)
  • 93662c4 rename lib_printer → silent_printer in sync/show (R3+.T4) (TJ Smith)
  • 138f3af rename v2_printer + v2_buf identifiers to plain names (R3+.T3) (TJ Smith)
  • e83313a rename v2_quiet helper, fix stale comment (R3+.T2) (TJ Smith)
  • 80cc87e rename v2_theme_name + v2_local production locals (R3+.T4) (TJ Smith)
  • ef7dacd drop all v1 Printer callers outside output/ (R3.T1) (TJ Smith)
  • 4eee433 rename output_v2/ → output/ after R2 migration (R3.T2) (TJ Smith)
  • 1cc1665 bootstrap_via_shell_script helper + 2 happy/sad tests (TJ Smith)
  • 366b9dc split packages/mod.rs into per-manager submodules (TJ Smith)
  • ad57dcf split per-manager tests into submodule test blocks (TJ Smith)
  • ba38d19 use install_named_path_shim — drops local 22-line curl-shim helper (TJ Smith)
  • 036c931 route install/uninstall/update/list shell-outs through tool_cmd seams (TJ Smith)
  • e83a6bb add tool_cmd seams for apt-cache/apk/pkg/pacman/dpkg-query/rpm/dnf/yum/zypper (TJ Smith)
  • 30647a7 split system/mod.rs into per-configurator submodules (TJ Smith)
  • a3a4222 add NoopDaemonHooks + install_named_path_shims; drop local duplicate impls (TJ Smith)
  • f4b9a42 consolidate inline #!/bin/sh + PATH-shim patterns via install_named_path_shim (TJ Smith)
  • 8811804 finish test_printer migration across signature/init/profile/files/node tests (TJ Smith)
  • 329f7cd replace inline Printer::new(Verbosity::Quiet) with shared test_printer helper (TJ Smith)
  • 36238f5 hoist install_named_path_shim — dedupes 4x ~22-line PATH-shim helper across scoop/choco/cargo/nix (TJ Smith)
  • fdc9c4e delegate 15 normalize fns to normalize_for_snapshot (TJ Smith)
  • 6678c49 delegate 41 local assert_snapshot fns to shared harness (TJ Smith)
  • d26592e add git_cmd_local + route 4 prod sites through it (TJ Smith)
  • 29a78f3 extract iso8601_to_filename_safe helper (TJ Smith)
  • 8484574 externalize tests in 5 more 1k+ line modules (TJ Smith)
  • 04d87ea externalize tests in 6 more 600+ line modules (TJ Smith)
  • af7d3ca externalize tests in 6 more 800+ line modules (TJ Smith)
  • 3b3ba7e externalize tests in csi/node, gpg_keys, shared, crds (TJ Smith)
  • ccaa1f5 externalize tests in server_client, oci/auth, system, cli/generate (TJ Smith)
  • 32459f3 drop bumped versions; tags were deleted, let anodizer re-bump (TJ Smith)
  • 1d6ca2e drop pre-bumped 0.4.0 versions; let anodizer tag bump fresh (TJ Smith)
  • 43dd4ba scrub session narrative from non-output test files (TJ Smith)
  • f7b61b8 scrub session narrative from non-test production code (TJ Smith)
  • 2e50caf inject CFGD_ANTHROPIC_URL seam + 5 mockito tests (TJ Smith)
  • 8a7c33b pin Err arms for read/list/adopt files + validate/write yaml dispatchers (TJ Smith)
  • ebf0cad replace tautological matches! assertions with field-checking equivalents (TJ Smith)
  • 396a9d0 add dispatcher + helper tests, lift cli/mod.rs coverage 51% → 89% (TJ Smith)
  • 8105790 adopt prompt-mock harness for delete/rollback prompts (TJ Smith)
  • a492cab cover apply-prompt-confirmed branches in init and module create (TJ Smith)
  • 58e656f cover editor-validate-loop save-with-errors paths (TJ Smith)
  • 9b32cf2 cover kubectl shell-out, ApplyPhase maps, module create interactive (TJ Smith)
  • c8246a9 expand_aliases happy-path + no-subcommand exit-0 contract (TJ Smith)
  • 9fa72ab extract find_subcommand_index from expand_aliases + 12 tests (TJ Smith)
  • cbc5675 finish plan_ops dedup — remove duplicate pattern_matches tests (TJ Smith)
  • edb602c add unit tests, lift coverage 50% → 92% (TJ Smith)
  • 715ef8f add inline unit tests for cmd_compliance helpers (TJ Smith)
  • 8865758 add unit tests for config subcommand handlers (TJ Smith)
  • 12c53cb add unit tests, lift coverage 59% → 87% (TJ Smith)
  • ae77c66 extract render_daemon_status + 4 tests for the display branches (TJ Smith)
  • 4273642 cover every-manager declared arm + config-sources section (TJ Smith)
  • 03b49dd cover remaining section-builder branches, lift 79% → ≥93% (TJ Smith)
  • 13941bd remove section divider block (TJ Smith)
  • 2bfe282 cover json/structured output paths (TJ Smith)
  • 6768dc4 add scan/dispatch tests, lift coverage 67% → 89% (TJ Smith)
  • 7140fbd cover tool_use loop, present_yaml Accept arm, consent-decline abort (TJ Smith)
  • a6dc642 switch bare is_ok() asserts to .expect() with diagnostics (TJ Smith)
  • 34f39fd add unit tests, lift coverage 67% → 90.93% (TJ Smith)
  • 105bcaf address review — git_cmd_local, drop dead var, strengthen source-compose assertion (TJ Smith)
  • f6ce1b4 cover compose_with_sources end-to-end against local-bare source (TJ Smith)
  • 37721c0 cover --apply-module module-only branch via bare-repo fixture (TJ Smith)
  • 3986862 cover --apply-profile + --apply-module combined arm + unknown-module bail in profile branch (TJ Smith)
  • 0b7fae3 drive cmd_init --from local bare repo + apply orchestration arms + 6 tests (TJ Smith)
  • 98540db drive pick_profile multi-profile branch via JSON-format printer (TJ Smith)
  • a0248ab cover apply_plan prompt-declined branch (Skipped + early return) (TJ Smith)
  • d23d65b cover cmd_enroll branches via mockito, lift 73% → ≥88% (TJ Smith)
  • aa802ff cover key-based enroll_info failures via mockito (TJ Smith)
  • f2aaf9e drive cmd_enroll via mockito + 4 tests (TJ Smith)
  • a20bb78 extract first_existing_ssh_key + 8 priority tests (TJ Smith)
  • 8a1f6a9 build_module_crd_json pure-helper extraction + CRD contract tests (TJ Smith)
  • 9321d5e cover cmd_module_delete dir-target purge + dir-source restore arms (TJ Smith)
  • b37a9fb cover detect_git_remote/head helpers (TJ Smith)
  • 5c1e261 pin cmd_module_update duplicate-basename bail (TJ Smith)
  • ac7a2b5 extract URL builder + apply-mode predicates (TJ Smith)
  • bb57c75 add unit tests; fix(cli/module/build): collapse multi-line errors before emit (TJ Smith)
  • 3fdb18a add unit tests, lift coverage 67% → ≥80% (TJ Smith)
  • 832a9dc polish — drop unneeded #[serial], dedup assertions, deterministic missing-cosign (TJ Smith)
  • b99795c remove section dividers; chore(cli/plan_ops): fix expect_fun_call clippy (TJ Smith)
  • 8b656ac cover wide-format table + platform-filtered package arm (TJ Smith)
  • 7bc7998 add unit tests, lift coverage 24% → 84% (TJ Smith)
  • 0da6453 polish — CwdGuard, RFC 5737 unreachable ref, move misplaced tests (TJ Smith)
  • e85a3f7 cover cmd_module_add_from_registry end-to-end against a local file:// registry (TJ Smith)
  • aa2cbaf cover cmd_module_search end-to-end against local registry (TJ Smith)
  • af92968 cover cmd_module_upgrade no-new_ref + same-commit no-op (TJ Smith)
  • 338cc1e cover -o json|yaml wire shapes (TJ Smith)
  • 72865e3 add unit tests, lift coverage 77% → ≥90% (TJ Smith)
  • a1a286f cover ResolveEnv, module-cache symlink, unmanaged-file prompts, pending decisions, Update-diff render (TJ Smith)
  • 57f4c01 dedup filter_plan tests, strengthen duration assertion (TJ Smith)
  • af5e7d0 cover kube-connect-failed + cmd_version paths, lift 35→40 tests (TJ Smith)
  • 98379ed cover env/alias/file/module/hooks/error branches, lift 83% → 87% (TJ Smith)
  • 6b15982 cover module-removal lockfile + cache + state cleanup branches (TJ Smith)
  • cf41577 cover platform-profiles auto-detect + empty-profiles bail (TJ Smith)
  • 613fd70 cover resolve_non_interactive_profile + parse_priority_input (TJ Smith)
  • ba52e6c drive cmd_source_add via local bare repo + 3 tests (TJ Smith)
  • e6f23e0 extract conflict-preview helpers + 11 tests (TJ Smith)
  • e03671e extract display_source_manifest with 8 output tests (TJ Smith)
  • 95732a4 cover happy-path with EDITOR=/bin/true → "Source manifest is valid" (TJ Smith)
  • 5f8ed78 cover count_policy_items + display_policy_items + display_pending_decisions branches (TJ Smith)
  • ca1b2b0 cover --keep-all branch transferring resources to local management (TJ Smith)
  • e32d9ad cover cached-manifest display + Policy Summary section (TJ Smith)
  • 055500c cover cmd_source_update happy + named + error-status branches end-to-end (TJ Smith)
  • 1cd758b cover permission-change prompt-cancelled skip arm (TJ Smith)
  • 581c157 tighten named-filter assertion — must also exclude the un-named source (TJ Smith)
  • e1d41fd add unit tests for cmd_status renderers and exit codes (TJ Smith)
  • a85916d add cmd_upgrade mockito tests, lift coverage 33% → ≥80% (TJ Smith)
  • fd408f8 remove section dividers (TJ Smith)
  • 4351c22 pin 11 previously-untested error variants (TJ Smith)
  • 701ea9f SystemConfigurator::apply + verify_enrollment success paths (TJ Smith)
  • 645f876 add focused unit tests for theme, process, and simple managers (TJ Smith)
  • 5bb926b ai::Conversation getters + cfgd-csi::env_or helper (TJ Smith)
  • bad605b batch-cover daemon, reconciler, sources, controllers, modules, gateway (TJ Smith)
  • b47f7fd cfgd::main exit_code_for_anyhow + cfgd-operator::main log_crd_info (TJ Smith)
  • d9d88f8 cli::helpers managers_map / module_state_map / default_device_id (TJ Smith)
  • a0b8f01 cmd_init install_daemon + apply_plan prompt-declined arm (TJ Smith)
  • 48da590 cmd_source_create interactive prompt branches (TJ Smith)
  • 4515e7b cover apply git_sources_json branch + diff Skip-arm + build_diff_doc role selection (TJ Smith)
  • e12babd cover git module URL parsing, doc builder methods, and go package operations (TJ Smith)
  • e4ea1ec cover prompt_select/text/confirm seeded + structured-refuse arms (TJ Smith)
  • fc288d3 cover read_command_output success/err paths + registry remove NotFound-with-registries branch (TJ Smith)
  • 2cedea3 cover scan, environment, plan_ops, and daemon CLI paths (TJ Smith)
  • b57a3f3 cover scoop + choco bootstrap powershell pipeline via named shim (TJ Smith)
  • 0ab044f deep-cover sources, csi/node, leader, daemon CLI, build, mcp (TJ Smith)
  • 8d266a5 exercise LeaderElection::run win + retry+win paths via MockKubeHarness (TJ Smith)
  • cde18b1 exercise windowsRegistry diff+apply iteration arms (TJ Smith)
  • da81a23 expand plugin, upgrade, module/build, and csi/node coverage (TJ Smith)
  • 9326bc4 expand workspace coverage across system, packages, and generate modules (TJ Smith)
  • da5e5b2 final-push — bare-repo end-to-end + secret-env + keys edge branches (TJ Smith)
  • 9a8bd10 plan_modules manager-priority sort + pipx available_version via curl shim (TJ Smith)
  • 0f9b543 drive 6 more end-to-end paths through existing harnesses (TJ Smith)
  • 0e477c9 extract testable helpers + 13 new tests (TJ Smith)
  • 79fff52 drift arms for autoApply, onDrift scripts, notify_on_drift + 4 tests (TJ Smith)
  • ec5c240 tempdir tests for apply + macOS env paths (TJ Smith)
  • e1b777e cover symlink/hardlink strategies + readonly-parent + dir-as-file (TJ Smith)
  • 0eb8c68 cover uncovered branches, lift coverage 69% → 85% (TJ Smith)
  • 26610b8 remove section divider block (TJ Smith)
  • d06f673 add unit tests, lift coverage 78% → ≥90% (TJ Smith)
  • 12df5ac remove section dividers (TJ Smith)
  • 33c2eb1 cover dotfile/shell-config scan branches, lift 83% → 85% (TJ Smith)
  • bfab897 bucket-g regression goldens for accent surfaces (TJ Smith)
  • d4d4522 regenerate sync/happy snapshot for per-source secondary (TJ Smith)
  • cf19089 round-trip output_types via emit() (R2.F0.T4) (TJ Smith)
  • ca7ae73 normalize tempdir paths + spinner durations + git SHAs in source_{add,update,replace} snapshots (R2.F4d.T2 drain 2) (TJ Smith)
  • 7e4a7c7 add bridge snapshot tests for seccomp + certificates (R2.F4e.T3) (TJ Smith)
  • 26bff9f add bridge snapshot tests for ssh_keys + systemd_unit (R2.F4e.T2) (TJ Smith)
  • d1defa2 add bridge snapshot tests for brew + OCI helpers (R2.F4f.T4) (TJ Smith)
  • 3a33089 extract testable parsers + cache fix from previous commit (TJ Smith)
  • ed47ecd cover install/uninstall/update/available_version branches, lift 70% → 88.57% (TJ Smith)
  • bf10d91 tool seam + ToolShim across all 3 brew managers (TJ Smith)
  • 82a0438 tool seam + ToolShim across all 5 flatpak shell-out sites (TJ Smith)
  • a60ef89 extract scan_go_bin_dir + go_install_path with 7 tests (TJ Smith)
  • de6961f tool seam + ToolShim across nix profile + nix-env paths (TJ Smith)
  • cfe7adf extract build_template_invocations + 7 escape tests (TJ Smith)
  • 2608d4a cover bootstrap/caveats/strip helpers, lift 72% → 88% (TJ Smith)
  • 41927ef cover untested seam + bootstrap helpers (TJ Smith)
  • 002d1e9 tool seam + ToolShim covering install/uninstall/update/list/info (TJ Smith)
  • aa89335 tool seam + ToolShim across 4 managers (TJ Smith)
  • cae46bc cover prompt_restore_backups arms (TJ Smith)
  • 6cca7f8 cover interactive mode via prompt-mock harness (TJ Smith)
  • 4da946b comprehensive 1Password provider coverage via mock op binary (TJ Smith)
  • ae37b63 add unit tests, lift coverage 65% → ≥80% (TJ Smith)
  • 7a5f55d cover edit_file early-return + editor-failure paths (TJ Smith)
  • 6b4a22d polish — strip test narration comments, fix import placement (TJ Smith)
  • 456bce3 generic ToolShim + per-tool env-var seams (TJ Smith)
  • 0444b3f tool seam + ToolShim across vault/op/lpass/bw (TJ Smith)
  • afc4867 make version-bearing goldens version-agnostic (TJ Smith)
  • 2a56d76 revert version strings 0.4.0 → 0.3.5 (TJ Smith)
  • b610497 cover macos+windows writers, lift coverage 61% → 79% (TJ Smith)
  • ffe2044 remove divider, strengthen apply-test assertions (TJ Smith)
  • ecb4084 CFGD_GPG_BIN tool seam + ToolShim coverage (TJ Smith)
  • 826fb59 cover ContainerdConfigurator::apply paths (TJ Smith)
  • 3f9b9df cover KubeletConfigurator::apply paths (TJ Smith)
  • 2433c10 cover apparmor + kernel_modules apply early-returns (TJ Smith)
  • ad2941e cover containerd apply rollback-restore arm (TJ Smith)
  • 6d7da5f cover kubelet apply rollback-restore arm (TJ Smith)
  • af83d29 strengthen no-op tests, drop tautological one (TJ Smith)
  • 37535f9 cover diff/apply/current_state branches, lift 67% → 84% (TJ Smith)
  • c452d99 cover diff "absent" drift branch (TJ Smith)
  • ec8a0f0 extract sc_create_args/sc_config_args + 14 tests (TJ Smith)
  • c847941 use 9.9.x sentinel range for bridge fixture versions (TJ Smith)
  • 7769269 download_to_file printer branches + keys.rs cosign seam (TJ Smith)
  • 2291ab9 fix daemon shutdown timeouts + libgit2 OS-error fold (TJ Smith)
  • f4f50d3 route test path substitution through to_posix_string/normalize_for_snapshot (TJ Smith)
  • cced09c cover setup_file_watcher + cli/source/add edge flags (5 new tests) (TJ Smith)
  • e225803 inline 6 local shim() wrappers, expose env-var at call site (TJ Smith)
  • 076cf35 migrate 3 CosignShim variants to consolidated CosignTestShim (TJ Smith)
  • 3265f28 migrate 3 local EnvVarGuard structs to shared helper (TJ Smith)
  • f9c35b5 migrate 5 with_env consumers to shared with_test_env_var (TJ Smith)
  • a79560c replace 9 local printer() wrappers with test_helpers::test_printer (TJ Smith)

Full Changelog: v0.3.5...v0.4.0