Skip to content

Campaign C (C00-C06): command-footprint expansion — descriptors, cloud, container, install-shim decision pipeline, shell-state + redirect#1

Merged
mfwolffe merged 72 commits into
trunkfrom
worktree-command-footprint
May 19, 2026
Merged

Campaign C (C00-C06): command-footprint expansion — descriptors, cloud, container, install-shim decision pipeline, shell-state + redirect#1
mfwolffe merged 72 commits into
trunkfrom
worktree-command-footprint

Conversation

@espadonne

Copy link
Copy Markdown
Contributor

Summary

  • Campaign C00–C06 complete (7 sprints, ~95 commits, ~700 new tests on this branch). Expands shit's command-undo surface across the descriptor / native-delegation path (C02), 4 cloud-tool reverses + 6 cloud descriptor packs (C03), container-runtime undo with separate retention store (C04), the install-prefix shim's pure-logic decision pipeline (C05, composing with trunk's S24.D dlsym interpose layer), and shell-state + redirect handling (C06).
  • Adds: 6 new InverseOp variants (DescriptorReverse, KubectlReverse, GhReverse, AwsReverse, TerraformReverse, ContainerRestore, ShellStateRestore, FileExtend), 4 new InverseTiers (Descriptor / Cloud / Container / ShellState), 10 helper-side classifiers, 9 planner-side executors with Runner-trait test patterns, 6 new CLI subcommands (shit descriptors, cloud-hooks, container-hooks, container-stashes, install, auto-inject-install-env), sqlite migration v4 (container_stashes with 1-day retention), and the per-shell preexec install-pattern wrap functions for bash/zsh/fish.
  • Defers: 30 DR rows (DR-CR-06..50) tracking real-runtime smokes that need a Linux VM / kind cluster / Docker daemon / cloud account / NFS export / Apple Developer ID / installed shell. These are the wire-up + smoke validation passes, not new implementation work — the pure-logic groundwork all sits behind them.
  • Merges trunk (S23.x BSD kqueue + S24.x helper IPC + S24.D LD_PRELOAD interpose + S29.x FreeBSD tree-mutations + multi-tier executor) into the branch with three conflict resolutions documented in the merge commit message. The composition of trunk's dlsym interpose layer with C05's decision pipeline is the substance of DR-CR-39; the modules cohabit cleanly here.

Test plan

  • cargo fmt --all -- --check clean
  • cargo run -p xtask -- license-check — all rust files have SPDX header
  • cargo clippy --workspace --all-targets --all-features -- -D warnings clean
  • cargo test --workspace — no failures across ~1400 tests
  • Real-VM smokes for DR-CR-31..40 (C05 LD_PRELOAD on Linux + macOS DYLD), tracked separately
  • Real-shell smokes for DR-CR-43..46 (C06 state-capture + redirect-race headline test on bash/zsh/fish)
  • Real-cloud smokes for DR-CR-12..15 (kubectl/gh/aws/terraform)
  • Real-runtime smokes for DR-CR-23..27 (docker/podman/compose)
  • Daemon-side capture-pipeline merges with this branch's planner-side surface (DR-CR-06 / DR-CR-11 / DR-CR-21 / DR-CR-26 / DR-CR-41)

The sprint outcome docs at .docs/sprints/C0{1..6}-*.md (gitignored) carry the per-campaign details + the DR-row references.

espadonne added 30 commits May 19, 2026 06:19
…edatectl/sysctl/modprobe-r) + load test (C02.8)
espadonne added 27 commits May 19, 2026 09:43
…AEMON_SOCK) + strip-for-child + injection helpers (C05.4)
…ault; --apply-shell-state precmd path (C06.5)
Bring trunk's S23.x (BSD kqueue) + S24.x (helper IPC, LD_PRELOAD shim
plumbing) + S29.x (FreeBSD tree-mutations + multi-tier executor) work
into the C00-C06 worktree so the campaign can be PR'd against trunk.

Conflict resolutions:
- crates/shit-preload-shim/Cargo.toml: kept both trunk's shit-proto dep
  (S24.D ShimNotification wire) and C05's serde/toml/thiserror +
  tempfile dev-dep (install_config loader path).
- crates/shit-helper/src/main.rs: ordered both trunk's `capture` mod
  declaration and C03/C04's `cloud` + `container` mods alphabetically.
- crates/shit-proto/src/lib.rs: union-merged the ctl re-export list to
  cover trunk's UndoRequest/UndoReportWire/ConflictPolicyWire + C01's
  BookmarkRequest/Summary + C04's ContainerStashSummary.

The composition of trunk's S24.D dlsym RTLD_NEXT interposition with
C05's pure-logic decision pipeline (PrefixSet / install_pattern /
install_config / runtime / dispatch) is the substance of DR-CR-39 —
the modules cohabit cleanly; the wire-up that gates the interpose
hot path on dispatch::should_capture is the one follow-up commit.

Gates green at merge close: cargo fmt --check, cargo run -p xtask --
license-check, cargo clippy --workspace --all-targets --all-features
-- -D warnings, full cargo test --workspace (no failures, ~1400 tests).
The helper can exit ungracefully (signal, OOM, runner shutdown) and the
kernel delivers ECONNRESET on the next recv rather than a clean EOF.
The dispatch loop already treats HelperExited as a normal shutdown
path; we now reach it for the ungraceful case too instead of logging an
ERROR that fails the hook-IPC smoke.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants