Skip to content

Commit d701bdb

Browse files
chore: sync beads — close vz-34p OCI service implementation
1 parent 6ff52b6 commit d701bdb

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

.beads/issues.jsonl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
{"id":"vz-328.2","title":"TUI services panel: table with phase, health, container ID, ports","description":"Services tab: ratatui Table widget showing service name, image, phase (color-coded), ready status, container ID, mapped ports, last error. Selectable rows with j/k or arrow keys. Phase colors: Running=green, Failed=red, Pending=yellow, Creating=cyan, Stopping=dim.","status":"closed","priority":1,"issue_type":"task","owner":"james@littlebearlabs.io","created_at":"2026-02-22T15:21:42Z","created_by":"James Lal","updated_at":"2026-02-22T15:37:37Z","closed_at":"2026-02-22T15:37:37Z","close_reason":"TUI dashboard implemented: ratatui-based 3-tab dashboard (Services/Events/Logs) with real-time polling, color-coded phases, keybindings, help overlay. 118 tests pass. Integrated into vz stack up (--no-tui to disable) and standalone vz stack dashboard command.","dependencies":[{"issue_id":"vz-328.2","depends_on_id":"vz-328","type":"parent-child","created_at":"2026-02-22T08:21:41Z","created_by":"James Lal","metadata":"{}"},{"issue_id":"vz-328.2","depends_on_id":"vz-328.1","type":"blocks","created_at":"2026-02-22T08:21:52Z","created_by":"James Lal","metadata":"{}"}]}
4848
{"id":"vz-328.3","title":"TUI logs panel: streaming log viewer with service filter","description":"Logs tab: scrollable log viewer. Poll logs from StateStore/control socket. Service selector (left sidebar or dropdown). Auto-scroll to bottom unless user scrolled up. Color-code service name prefixes. Support tail -f style following.","status":"closed","priority":1,"issue_type":"task","owner":"james@littlebearlabs.io","created_at":"2026-02-22T15:21:44Z","created_by":"James Lal","updated_at":"2026-02-22T15:37:37Z","closed_at":"2026-02-22T15:37:37Z","close_reason":"TUI dashboard implemented: ratatui-based 3-tab dashboard (Services/Events/Logs) with real-time polling, color-coded phases, keybindings, help overlay. 118 tests pass. Integrated into vz stack up (--no-tui to disable) and standalone vz stack dashboard command.","dependencies":[{"issue_id":"vz-328.3","depends_on_id":"vz-328","type":"parent-child","created_at":"2026-02-22T08:21:44Z","created_by":"James Lal","metadata":"{}"},{"issue_id":"vz-328.3","depends_on_id":"vz-328.1","type":"blocks","created_at":"2026-02-22T08:21:52Z","created_by":"James Lal","metadata":"{}"}]}
4949
{"id":"vz-328.4","title":"TUI events panel: real-time event stream with timestamps","description":"Events tab: scrollable event list from load_events_since() with cursor tracking. Show timestamp, event type (color-coded), service name, details. Auto-scroll. StackApplyStarted=blue, ServiceReady=green, ServiceFailed=red, HealthCheckPassed=green, HealthCheckFailed=yellow, DependencyBlocked=magenta.","status":"closed","priority":1,"issue_type":"task","owner":"james@littlebearlabs.io","created_at":"2026-02-22T15:21:47Z","created_by":"James Lal","updated_at":"2026-02-22T15:37:37Z","closed_at":"2026-02-22T15:37:37Z","close_reason":"TUI dashboard implemented: ratatui-based 3-tab dashboard (Services/Events/Logs) with real-time polling, color-coded phases, keybindings, help overlay. 118 tests pass. Integrated into vz stack up (--no-tui to disable) and standalone vz stack dashboard command.","dependencies":[{"issue_id":"vz-328.4","depends_on_id":"vz-328","type":"parent-child","created_at":"2026-02-22T08:21:47Z","created_by":"James Lal","metadata":"{}"},{"issue_id":"vz-328.4","depends_on_id":"vz-328.1","type":"blocks","created_at":"2026-02-22T08:21:52Z","created_by":"James Lal","metadata":"{}"}]}
50+
{"id":"vz-34p","title":"Implement OCI service in Linux guest agent","description":"Replace the stub OciServiceImpl in vz-guest-agent/src/grpc_server.rs with real youki integration. The guest agent runs inside the Linux micro-VM and needs to shell out to youki at /run/vz-oci/bin/youki for all 6 OCI lifecycle methods: create (youki create --bundle), start (youki start), state (youki state + JSON parse), exec (youki exec with env/cwd/user), kill (youki kill \u003csignal\u003e), delete (youki delete --force). Use /run/vz-oci/state as youki root dir. Must handle all proto fields: container_id, bundle_path, signal, force, exec env/args/cwd/user. After implementation: cross-compile, rebuild initramfs, deploy, verify vz stack up works end-to-end.","status":"closed","priority":1,"issue_type":"feature","owner":"james@littlebearlabs.io","created_at":"2026-02-22T19:02:58Z","created_by":"James Lal","updated_at":"2026-02-22T21:00:21Z","closed_at":"2026-02-22T21:00:21Z","close_reason":"All 6 OCI lifecycle methods implemented with youki integration. 10/11 e2e tests passing (cgroup test expected to fail on minimal VM kernel)."}
5051
{"id":"vz-3a1","title":"Implement gRPC client on host","description":"Replace channel.rs JSON framing with a tonic gRPC client connecting over vsock. Update agent.rs to use the gRPC client for handshake, exec, and OCI operations. HTTP/2 multiplexing means one connection serves all concurrent operations — no more per-exec connection overhead (~500ms savings per rapid-fire exec).","notes":"parent: vz-bdm","status":"closed","priority":1,"issue_type":"feature","owner":"james@littlebearlabs.io","created_at":"2026-02-21T19:41:51Z","created_by":"James Lal","updated_at":"2026-02-22T08:13:44Z","closed_at":"2026-02-22T08:13:44Z","close_reason":"Implemented GrpcAgentClient in vz-linux. Connects tonic Channel over vsock via custom connector using Arc\u003cVm\u003e. Full API: ping, system_info, resource_stats, exec (buffered + streaming), all 6 OCI ops, network_setup/teardown. Added LinuxError::Grpc and GrpcTransport variants. All 24 existing tests pass.","dependencies":[{"issue_id":"vz-3a1","depends_on_id":"vz-o09","type":"blocks","created_at":"2026-02-21T12:42:13Z","created_by":"James Lal","metadata":"{}"}]}
5152
{"id":"vz-3hp","title":"Implement gRPC server in guest agent","description":"Replace the JSON vsock listener in the guest agent with a tonic gRPC server listening on vsock. Implement all service methods from the protobuf definitions. Use tonic's server-side streaming for exec stdout/stderr (replaces base64-encoded chunks). The gRPC server gets HTTP/2 multiplexing for free, eliminating the need for separate connection pooling.","notes":"parent: vz-bdm","status":"closed","priority":1,"issue_type":"feature","owner":"james@littlebearlabs.io","created_at":"2026-02-21T19:41:49Z","created_by":"James Lal","updated_at":"2026-02-22T08:13:40Z","closed_at":"2026-02-22T08:13:40Z","close_reason":"Implemented gRPC server in guest agent. AgentServiceImpl (Ping, SystemInfo, ResourceStats, Exec streaming, StdinWrite/Close, Signal, PortForward bidi), OciServiceImpl (6 methods, returns UNIMPLEMENTED), NetworkServiceImpl (Setup/Teardown with Linux gating). Uses VsockIncoming adapter for serve_with_incoming. --grpc flag selects transport.","dependencies":[{"issue_id":"vz-3hp","depends_on_id":"vz-o09","type":"blocks","created_at":"2026-02-21T12:42:12Z","created_by":"James Lal","metadata":"{}"}]}
5253
{"id":"vz-3uz","title":"Stack E2E Validation \u0026 Production Readiness","description":"Prove vz-stack works end-to-end with real VMs and containers, then close critical gaps for docker-compose replacement. Covers: OCI runtime smoke tests, stack lifecycle E2E, health check polling loop, log streaming, service discovery, and env file support.","status":"closed","priority":1,"issue_type":"epic","owner":"james@littlebearlabs.io","created_at":"2026-02-20T22:57:58Z","created_by":"James Lal","updated_at":"2026-02-21T00:09:00Z","closed_at":"2026-02-21T00:09:00Z","close_reason":"All 8 sub-issues completed: OCI runtime E2E, stack lifecycle, health polling, log streaming, service discovery via /etc/hosts, and env_file/variable expansion"}

0 commit comments

Comments
 (0)