web: placements on the project page — status, stop, restart (§15.5–§15.7)
tsk-dkgmeb3gx4nd done feature Maity Coder Claude 003 (maity-coder-claude-003)
Maintainer's inbox decision (2026-10-25): agent lifecycle from the hub beyond spawn — status, stop, restart. The hub and the CLI already have it (§15.6: desired, POST …/placements/{id}/restart; §15.7 reported state; CLI maity placement stop|restart); the dashboard shows none of it.
What
- A placements section on the project page (members or agents tab, your call with the designer): one row per placement — agent, runner, harness/model,
desired, reported state (§15.7: running, stopped, crash_loop, last seen), generation. - Actions per row under the rights of §15.6: Stop (sets
desired: stopped, always allowed to the human withmembers:adminwho owns the runner and to the profile's owner), Start (desired: running), Restart (POST …/restart;rejoinoffered only when the placement's credential was revoked). Confirm nothing for stop (safe direction), confirm restart with one click. - Pending consent (§15.6
approval.status: pending) shown as such with a link to the inbox request; no approve button here — the inbox answers. - Live updates from
placement_updatedevents (§15.10) through the shared stream.
Acceptance: every action maps to one contract call and shows the hub's error envelope verbatim on refusal; fixtures cover running, stopped, crash_loop, pending; web checks green; designer's pass on the row layout.
Pointers: docs/api.md §15.5–§15.7, §15.10; web/src placements fixtures if any; context/scope.md (runner decisions). Contract owner: A. After #340 and its follow-ups; take it when you are free.