design a fully containerized ward #1562

Closed
opened 2026-07-25 11:14:28 +00:00 by coilysiren · 4 comments
Owner
No description provided.
Author
Owner

This really comes down to: can you run a containerized broker? Said broker would be a sister to the director, same as the engineer or QA

This really comes down to: can you run a containerized broker? Said broker would be a sister to the director, same as the engineer or QA
Author
Owner

It would need to be docker compose at minimum, the broker can't be inside the same container as the director... I think

It would need to be docker compose at minimum, the broker can't be inside the same container as the director... I think
Member

ward#1562 implementation contract

Goal - Replace the in-process host dispatch broker with an independently supervised broker container that serves the director over a stable Compose network address and launches engineer/QA siblings without sharing the director or terminal lifecycle.

Done-condition - The landed Ward release starts a broker + director stack, brokered dispatch uses the broker service, director/client exit cannot kill the broker, broker restart reconciles accepted work without duplicate launch, targeted lifecycle/chaos coverage and the full Ward validation suite pass, and the Forgejo release is green.

Non-goals - Redesigning token or permission boundaries, creating a host-wide singleton broker, changing engineer/QA product behavior, or changing unrelated fleet infrastructure.

**ward#1562 implementation contract** **Goal** - Replace the in-process host dispatch broker with an independently supervised broker container that serves the director over a stable Compose network address and launches engineer/QA siblings without sharing the director or terminal lifecycle. **Done-condition** - The landed Ward release starts a broker + director stack, brokered dispatch uses the broker service, director/client exit cannot kill the broker, broker restart reconciles accepted work without duplicate launch, targeted lifecycle/chaos coverage and the full Ward validation suite pass, and the Forgejo release is green. **Non-goals** - Redesigning token or permission boundaries, creating a host-wide singleton broker, changing engineer/QA product behavior, or changing unrelated fleet infrastructure.
Member

Implemented and released in Ward v0.809.0: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/tag/v0.809.0. Broker lifecycle: warded director now prepares a persistent Compose stack under ~/.ward/director-stacks/PROJECT/. The broker is a separate restart-unless-stopped service, while the director remains a one-off client. Stability boundary: director or client exit no longer owns the broker process, so broker loss is no longer coupled to a director surface ending. Recovery: durable request IDs, fingerprints, and a request journal let a restarted broker reconcile accepted work without launching duplicate engineers. Broker health stays unready until reconciliation finishes. Isolation: worker failures stay contained, while host identity and supported harness credentials flow into the persistent stack. Documentation covers the lifecycle, recovery contract, container contract, operator behavior, and feature inventory. Verification: ordered asynchronous broker tests, ward exec vet, and the full pre-commit suite pass. Promotion run #2429 passed on Linux and promoted the implementation to release: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/actions/runs/2429. Commits: 6c929787b4 and 91606fc320.

Implemented and released in Ward v0.809.0: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/releases/tag/v0.809.0. Broker lifecycle: warded director now prepares a persistent Compose stack under ~/.ward/director-stacks/PROJECT/. The broker is a separate restart-unless-stopped service, while the director remains a one-off client. Stability boundary: director or client exit no longer owns the broker process, so broker loss is no longer coupled to a director surface ending. Recovery: durable request IDs, fingerprints, and a request journal let a restarted broker reconcile accepted work without launching duplicate engineers. Broker health stays unready until reconciliation finishes. Isolation: worker failures stay contained, while host identity and supported harness credentials flow into the persistent stack. Documentation covers the lifecycle, recovery contract, container contract, operator behavior, and feature inventory. Verification: ordered asynchronous broker tests, ward exec vet, and the full pre-commit suite pass. Promotion run #2429 passed on Linux and promoted the implementation to release: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/actions/runs/2429. Commits: https://forgejo.coilysiren.me/coilyco-flight-deck/ward/commit/6c929787b4b653f2a9ae7ba93f22c7a0b3da06fe and https://forgejo.coilysiren.me/coilyco-flight-deck/ward/commit/91606fc3208ef256a4784cef3accc71ace774dc4.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/ward#1562
No description provided.