Del av #95. Se doc/plans/nvt-agent-integrasjon.md (PR #94), avsnittet «Driver-lease». Forutsetter M1 (+ M2 for UI-togglen).
Mål
Kontrollert veksling mellom tre måter å drive samme work-in-progress (nvt-instansens workspace + agent-branch): headless (pipelinen driver), hands-on (operatør i code-server/tmux i samme miljø) og ekstern (sr-dev/Claude Code på egen sjekkout av samme branch).
Leveranser
- Lease-fil per topic i bridgens state (
{mode, holder, acquired_at, note}); endringer publiseres som events (synlig i konsollen).
- Bridge-håndheving: prompts injiseres kun i headless; events til topics med annen lease blir liggende i innboksen (opphavstråden beholder «working»-reaksjonen — ingenting tapt, ingenting fabrikkert).
- Sjekkpunkt-protokoll ved leasebytte: før frigivelse fra headless ber bridgen agenten committe og pushe WIP (prompt + vent på
signal done); ved gjenopptak er første prompt «pull og les deg opp på ny historikk». Samme forventning dokumenteres for ekstern driver (push før leasen gis tilbake).
- Toggle i konsollen (via bridge-API) + CLI-fallback.
Akseptansekriterier
Del av #95. Se
doc/plans/nvt-agent-integrasjon.md(PR #94), avsnittet «Driver-lease». Forutsetter M1 (+ M2 for UI-togglen).Mål
Kontrollert veksling mellom tre måter å drive samme work-in-progress (nvt-instansens workspace + agent-branch): headless (pipelinen driver), hands-on (operatør i code-server/tmux i samme miljø) og ekstern (sr-dev/Claude Code på egen sjekkout av samme branch).
Leveranser
{mode, holder, acquired_at, note}); endringer publiseres som events (synlig i konsollen).signal done); ved gjenopptak er første prompt «pull og les deg opp på ny historikk». Samme forventning dokumenteres for ekstern driver (push før leasen gis tilbake).Akseptansekriterier