feat(slopshack): per-session ephemeral build/test pods for claude #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "arrdem/slopshack"
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?
Adds slopshack: an ephemeral-pod wrapper for
claudethat solves workstation CPU starvation when several Claude agents runcargo build/cargo testin parallel. Heavy work runs on cluster cores; the interactive loop and the editor stay local.slopshack-claudefinds the git root, parses.devcontainer/devcontainer.json(if any) for the dev image, provisions a Pod (sshd + nfs-ganesha sidecars wrapping the dev container), tar-pipes the working tree in, NFS-mounts the pod's/workspaceover the local repo, and execsclaudewithCLAUDE_CODE_SHELLrouted throughslopshack-cli. On exit (clean, INT, TERM, HUP) the wrapper umounts and detaches; a 15-minslopshack-gcCronJob sweeps orphans whose pod has been gone >2h, in case the trap doesn't fire.See
projects/slopshack/SPEC.mdfor design rationale, prior art, and explicit non-goals.Changes are visible to end-users: yes
Searched for relevant documentation and updated as needed: yes
Breaking change: no
Suggested release notes appear below: yes
Test plan
Manual end-to-end during development:
cargo new + cargo build --releaseran in-pod on 16 cluster cores; cwd persisted across separate wrapper invocations; zero localtarget/.slopshack-claudeagainst a tiny test repo with stubbedclaude/sudo: full chain (provision -> ssh-wait -> tar-push -> mount-call -> claude-launch -> umount -> detach) executed; no residue.Follow-ups (deferred, in
SPEC.md)MODULE.bazelregistration of the two Rust crate sets.image-shell/andimage-fs/BUILD.bazelare stubs — bootstrap images were built with directdocker buildfor the demo; pickrules_buildxvs declarativeoci_imagenext.slopshack-mounthelper to remove the per-host sudoers entry.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.