Status:
draft · ADR-42 · Filed 2026-05-02ADR — Persona-daemon project attach lifecycle
Status
DraftContext
Lafonda’s launcher/install lane needs a stable answer to where project bootstrap behavior lives and whether a daemon attaches to projects dynamically or only at create/bind time. Her SPEC-021 flag-disposition work depends on this because-install-deps and -activate-venv only migrate cleanly if there is a real daemon-owned project-attach boundary.
Two models were on the table:
- persona×project-scoped daemon at create/bind time
- persona-scoped daemon with dynamic attach/detach across multiple projects
Decision
v1 uses a persona×project-scoped daemon model. Normative rules:- A daemon is bound to one persona and one project for its live lifecycle.
- Project attach is a discrete lifecycle boundary, but in v1 it occurs at daemon create/start rather than as a later arbitrary dynamic attach operation.
- Detach happens only through wrap/archive/destroy lifecycle, not through free-floating project switching.
- Multi-project personas are out of scope for v1 unless/until a later SPEC introduces dynamic attach/detach semantics explicitly.
- Project-bootstrap concerns belong to daemon-owned attach-time behavior, not persistent launcher flags.
-autonomyremains a declarative launcher input.-install-depsand-activate-venvmigrate into daemon attach-time lifecycle behavior.
Consequences
- Lafonda’s install lane can proceed against a fixed v1 topology.
SPEC-070 v0.2can define attach-time behavior without pretending dynamic project switching already exists.- The daemon count for v1 scales as persona×project, not persona-only.
- Dynamic multi-project personas are deliberately deferred instead of being smuggled into v1 by ambiguity.
Alternatives considered
1. Persona-scoped daemon with dynamic attach/detach in v1
Rejected for v1. More flexible, but adds runtime state, attach arbitration, and project-switch semantics beyond the scope of the current daemon deliverable.2. No attach boundary at all; keep bootstrap logic on launcher flags
Rejected. Leaves project-bootstrap concerns on the launcher forever and blocks the AI-first end-to-end contract Lafonda flagged.Cross-references
- SPEC-070 v0.2
- SPEC-021
- Lafonda research PR #46 / commit
3dae620/docs/research/daemon-launcher-matrix-2026-05-02.md

