Tracking issue for the fork patch on branch `feat/multiuser-status-fallback` (merged into `eejd/v0.10.3-macports`).
Problem
`colima status ` (and `stop`, `ssh`) falsely report "not running" when the VM was started by a different user than the caller. Root cause: Lima's process-liveness check can't signal a process owned by another uid (`kill(pid, 0)` -> EPERM across the uid boundary).
Fix
Single choke point: `environment/vm/lima/limautil/limautil.go` `Limactl()` — every `status`/`stop`/`ssh` invocation routes through it. When the Lima instance/state dir is owned by a uid other than the caller's effective uid, re-exec limactl as the owner via `sudo -n -u `, forwarding `LIMA_HOME` explicitly. Opt out via `COLIMA_NO_CROSS_USER`.
Design caveats (open, flagged for anyone picking this up):
- Requires a NOPASSWD sudoers grant for caller -> owner `limactl`; without it the re-exec fails closed (`sudo -n` errors rather than prompting).
- This is a colima-layer workaround. The more correct fix may belong in lima-vm/lima's process-liveness check itself (Phase 3, not yet investigated).
Status
Cross-refs
- eejd/macports-ports-local#162
- eejd/macports-ports-local#169 (port repoint)
- hive ecosystem: eejd/hive#7
Tracking issue for the fork patch on branch `feat/multiuser-status-fallback` (merged into `eejd/v0.10.3-macports`).
Problem
`colima status ` (and `stop`, `ssh`) falsely report "not running" when the VM was started by a different user than the caller. Root cause: Lima's process-liveness check can't signal a process owned by another uid (`kill(pid, 0)` -> EPERM across the uid boundary).
Fix
Single choke point: `environment/vm/lima/limautil/limautil.go` `Limactl()` — every `status`/`stop`/`ssh` invocation routes through it. When the Lima instance/state dir is owned by a uid other than the caller's effective uid, re-exec limactl as the owner via `sudo -n -u `, forwarding `LIMA_HOME` explicitly. Opt out via `COLIMA_NO_CROSS_USER`.
Design caveats (open, flagged for anyone picking this up):
Status
Cross-refs