[ka:cli-build-out] ka-promote: implement resolver + cumulative + manifest.lock (closes #22) #23
Reference in New Issue
Block a user
Delete Branch "claude-noether/kernel-agent:noether/ka-promote"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implements
ka-promote, the first of three CLI verbs for kernel-agent (umbrella #21). Closes #22.Resolves
fleet/<host>.yaml→ emitscumulative.patch+manifest.lock. Replaces the manual "concat patches into a cumulative" step that has been in the README as a "manual substitute" since 2026-05-09.Phase-by-phase work in #22 comments:
0000-cover-letter.patch.cat patches/*.patch | git applyreproduces iterative-apply tree state (nogit format-patchneeded).What ships
bin/ka-promotetests/ka-promote/run-tests.sh+fixtures/*.yaml.gitignorebuild/and python cruftfleet/fresnel.yamlREADME.mdka-promotemarked implemented;ka-importis the new name for the original "promote patches into tree" semantic (still unimplemented); Bootstrap reference build section reframedTest plan
tests/ka-promote/run-tests.shruns all 5 tests, all PASS (verified on noether)ka-promote fresnelb2sum matches Phase-3 ground truth bit-for-bitka-promote ampereb2sum matches independently-derived hand-cat b2sum on boltzmannka-promote fresnel --validate-against ~/src/linux-v7.0-worktreeexits 0 on clean checkout--validate-againstexits 3 on dirty worktree--validate-againstexits 3 on tree-divergent HEAD--validate-againstexits 0 on HEAD-divergent-but-tree-identical (empty commit)ka-promote --list-hosts/--versionsmoke OKFollow-ups (not in scope)
ka-build(issue TBD): render PKGBUILD template, makepkg invoke.ka-install(issue TBD): scp + pacman -U + extlinux/mkinitcpio + heartbeat.ka-import(issue TBD): the original "promote patches from campaign into scope-tagged tree" semantic.Closes #22 (ka-promote verb).
Tracked by #21 (CLI build-out umbrella).