banger/internal/daemon
Thales Maciel 94c353f317
Add guest.session.send and vm.workspace.export RPCs
guest.session.send — write to a pipe-mode session's stdin without
holding the exclusive attach. The daemon dials a fresh SSH connection,
uploads the payload to a temp file, and cats it into the session's
named FIFO. Linux atomicity for writes ≤ PIPE_BUF covers all pi RPC
JSONL lines. Attach exclusivity is unchanged.

vm.workspace.export — pull changes from guest back to host. Runs
`git add -A && git diff --cached HEAD --binary` inside the guest via a
new RunScriptOutput helper on guest.Client (stdout-only capture,
distinct from RunScript which merges stderr). Returns a binary-safe
patch and a list of changed files. CLI writes the patch to stdout for
`| git apply` or to a file via --output.

RunScriptOutput is implemented as a direct SSH session (same pattern as
runSession) rather than going through StartCommand/StreamSession to
avoid closing the underlying Client, which is required since
ExportVMWorkspace calls it twice on the same connection.

New files: internal/daemon/workspace_test.go
2026-04-14 15:21:50 -03:00
..
capabilities.go Add guest sessions and agent VM defaults 2026-04-12 23:48:42 -03:00
capabilities_test.go Manage image artifacts and show VM create progress 2026-03-21 14:48:01 -03:00
daemon.go Add guest.session.send and vm.workspace.export RPCs 2026-04-14 15:21:50 -03:00
daemon_test.go Rename experimental Void image to void 2026-04-01 20:15:28 -03:00
dashboard.go Serve a local web UI from bangerd 2026-03-21 16:47:47 -03:00
dns_routing.go Route .vm DNS through systemd-resolved 2026-03-22 15:07:22 -03:00
dns_routing_test.go Route .vm DNS through systemd-resolved 2026-03-22 15:07:22 -03:00
doctor.go Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
fastpath_test.go Manage image artifacts and show VM create progress 2026-03-21 14:48:01 -03:00
guest_sessions.go Add guest.session.send and vm.workspace.export RPCs 2026-04-14 15:21:50 -03:00
guest_sessions_test.go Add guest.session.send and vm.workspace.export RPCs 2026-04-14 15:21:50 -03:00
image_build_ops.go Serve a local web UI from bangerd 2026-03-21 16:47:47 -03:00
image_seed.go Manage image artifacts and show VM create progress 2026-03-21 14:48:01 -03:00
imagebuild.go Install claude and pi through mise 2026-04-13 18:29:02 -03:00
imagebuild_test.go Install claude and pi through mise 2026-04-13 18:29:02 -03:00
images.go Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
logger.go Speed up VM create with work seeds 2026-03-18 21:22:12 -03:00
logger_test.go Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
nat.go Move helper NAT management into Go 2026-03-17 15:07:49 -03:00
nat_test.go Move helper NAT management into Go 2026-03-17 15:07:49 -03:00
opencode.go Manage image artifacts and show VM create progress 2026-03-21 14:48:01 -03:00
ports.go Refine vm ports output 2026-03-19 18:21:04 -03:00
preflight.go Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
runtime_assets.go Remove runtime-bundle image dependencies 2026-03-21 18:34:53 -03:00
snapshot.go Harden VM stop cleanup for stale snapshots 2026-03-18 12:28:15 -03:00
snapshot_test.go Harden VM stop cleanup for stale snapshots 2026-03-18 12:28:15 -03:00
ssh_client_config.go Configure direct SSH access for .vm hosts 2026-03-22 16:48:42 -03:00
ssh_client_config_test.go Configure direct SSH access for .vm hosts 2026-03-22 16:48:42 -03:00
tap_pool.go Speed up VM create with work seeds 2026-03-18 21:22:12 -03:00
vm.go Add guest sessions and agent VM defaults 2026-04-12 23:48:42 -03:00
vm_create_ops.go Manage image artifacts and show VM create progress 2026-03-21 14:48:01 -03:00
vm_test.go Add guest sessions and agent VM defaults 2026-04-12 23:48:42 -03:00
web.go Serve a local web UI from bangerd 2026-03-21 16:47:47 -03:00
workspace.go Add guest.session.send and vm.workspace.export RPCs 2026-04-14 15:21:50 -03:00
workspace_test.go Add guest.session.send and vm.workspace.export RPCs 2026-04-14 15:21:50 -03:00