Parent: #66 Follow-up to #185.
The untouched Bun publish corpus is covered by Home's deterministic registry/runtime layer, but the copied native PublishCommand is not yet safe to expose as home publish.
Confirmed activation boundary
Routing the command from src/main.zig reaches Bun's copied publish and pack implementation, then compilation exposes its remaining pre–Zig 0.17 filesystem/writer dependencies:
PackCommandstill namesstd.fs.Dirandstd.fs.openDirAbsoluteZ- nested directory/file operations require conversion to Home's
bun.FD/ Zig 0.17std.Io.Dirownership model - publish request/header writers require explicit
WriteFailedto OOM translation - native HTTP publish must be verified against a local registry, including auth, OTP, README metadata, lifecycle scripts, tarballs, and republish checks
The temporary top-level route was removed rather than shipping a command that compiles only partially or traps at runtime.
Acceptance
- finish the pack/filesystem Zig 0.17 port without compatibility stubs
- expose
home publishand its help/error paths - execute publish against a real local registry path, not only the corpus model
- cover workspace and tarball publication plus registry error handling
- keep #185's exact 34/34 corpus result green
- pass the full Home gate and update #66