Background
The conoha-proxy blue/green refactor changed the on-disk layout from:
```
/opt/conoha// # single slot, overwritten on each deploy
```
to:
```
/opt/conoha//CURRENT_SLOT # text file naming the active slot
/opt/conoha/// # slot-specific work dirs (blue/green)
/opt/conoha///
```
Deploy scopes `docker compose` via `-p -` and accessories via `-p -accessories`.
These commands were left untouched during the core refactor and still assume the old single-slot layout:
- `cmd/app/logs.go` — `workDir := "/opt/conoha/" + ctx.AppName`
- `cmd/app/stop.go` — (runs `docker compose down` in that workDir)
- `cmd/app/restart.go` — same
- `cmd/app/status.go` — `workDir := "/opt/conoha/" + ctx.AppName`
What to do
Rewrite each command to discover the current slot and operate on its compose project:
- SSH-read `/opt/conoha//CURRENT_SLOT` into a slot ID.
- Run `docker compose -p - ...` (or `docker logs`/`docker ps --filter label=...`) instead of `cd `.
- For `status` in particular, merge in the proxy-side phase/active-target info (design spec §3.2 already calls for this).
- For `logs`: follow the active web container by name — `--`.
- Handle the 'no CURRENT_SLOT yet' case (= 'never deployed') with a clean error.
Acceptance
- Each command works against a server that has been deployed via the new blue/green flow.
- Each command fails with a helpful message when no deploy has happened yet.
- Tests mock the SSH layer and verify shell-command synthesis.
Prerequisites
Merge feat/proxy-deploy.
Background
The conoha-proxy blue/green refactor changed the on-disk layout from:
```
/opt/conoha// # single slot, overwritten on each deploy
```
to:
```
/opt/conoha//CURRENT_SLOT # text file naming the active slot
/opt/conoha/// # slot-specific work dirs (blue/green)
/opt/conoha///
```
Deploy scopes `docker compose` via `-p -` and accessories via `-p -accessories`.
These commands were left untouched during the core refactor and still assume the old single-slot layout:
What to do
Rewrite each command to discover the current slot and operate on its compose project:
Acceptance
Prerequisites
Merge
feat/proxy-deploy.