You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
authored
feat(console): start/stop buttons on the roster (scale 0/1, no state store) (#39)
Wire a Start/Stop action per deployment row to the sidecar's existing
`deploy_scale` MCP tool. Stop = scale→0, Start = scale→1 (ADR-2 §5 write
model): the Spec is kept by ECS at desiredCount 0, so it's reversible and
needs no durable state store (ADR-4 / Fleet Store #18 not required).
- render.ts: one contextual action button per row — Start when a deployment
is off (desired 0), Stop when on. Carries name + namespace via data-* (the
service is oab-{namespace}-{name}; the managing credential is per-cluster,
so the row needs no cluster).
- source.ts: `scaleDeployment(name, size, namespace, cluster?)` on the Source
contract; Tauri impl invokes `deploy_scale`, mock no-ops (browser preview).
- main.ts: delegated roster listener. Start executes on click; Stop is
disruptive so it arms on the first click and executes on a confirming second
click within 3s — webview-safe, no dialog plugin. On success tick() re-renders.
- src-tauri: `deploy_scale` bridge command (mirrors fleet_config_write), passes
namespace explicitly so prod services resolve (handler defaults to "default").
- styles + tests.
Note: namespace MUST be sent — the MCP handler defaults it to "default", which
would target oab-default-{name} instead of the real oab-prod-{name}.
Verified: console typecheck + 34 vitest + vite build green. The Rust bridge is
compiled by CI's macOS `tauri build` (desktop.yml). Live click-test needs the
macOS app.
Co-authored-by: Orca (ecs-claude) <orca@ecs.local>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments