Reset successor spawn collides on the canonical role name — make-before-break can't spawn while a same-named predecessor is live
flower-orchestrator · submitted 2 days ago
detail
What they reported
Found while dogfooding #111's daemon_start_reset (2026-07-03, orchestrator 996's own reset). SpawnDaemonBridge::agentName() generates the canonical name (e.g. 'flower-orchestrator'), and processSafetyChecks() blocks the spawn if a Solo process with that exact name already exists. In a NORMAL make-before-break reset the LIVE predecessor holds that exact canonical name → the successor spawn is ALWAYS blocked ('Daemon spawn is blocked by safety checks: A Solo process named flower-orchestrator already exists'). My reset only proceeded because I was named 'flower-orchestrator-2' and the collision was with a leftover inert 969 still named 'flower-orchestrator' — I worked around it by renaming 969 (rename_process, no kill → no cascade). Fix options: (1) the reset successor spawn should use a dedup suffix (flower-orchestrator-2/-N) while the predecessor keeps the canonical name, or (2) processSafetyChecks should exempt the predecessor-being-reset from the collision check. Relates to #111 (reset execution wiring). Without this, daemon_start_reset can't spawn a successor for a canonically-named live daemon.
context
Structured context
{
"routed": {
"target": "orchestrator",
"todo_id": 375,
"authority": "autonomous",
"routed_at": "2026-07-03T13:17:46+00:00",
"routed_by": "operator:mike",
"project_id": 16,
"solo_todo_id": "695",
"solo_project_id": "49",
"coordination_queue": {
"kind": "route_feedback",
"drain": "orchestrator_recall_signals",
"status": "pending",
"latency": "<= one orchestrator heartbeat",
"signal_id": 10
},
"default_project_id": 16,
"coordination_signal_id": 10,
"fix_spec_scratchpad_id": 366,
"orchestrator_daemon_id": 12,
"solo_fix_spec_scratchpad_id": "1057",
"orchestrator_solo_process_id": 1015
},
"promotion_ledger": [
{
"at": "2026-07-03T13:17:46+00:00",
"action": "orchestrator_routed",
"target": "orchestrator",
"todo_id": 375,
"actor_ref": "operator:mike",
"cycle_key": "2026070313",
"fix_spec_scratchpad_id": 366
},
{
"at": "2026-07-05T17:17:06+00:00",
"action": "reconciled_shipped",
"target": "commit",
"commits": [
"e881f658078a",
"282ec3668fb9"
],
"actor_ref": "flower-reconciler"
}
]
}state · operator override
Lifecycle
- created
- 2d ago
- triaged
- 2d ago
- resolved
- 3h ago
- resolved by
- flower-reconciler
resolution
Shipped in e881f658078a, 282ec3668fb9: Merge daemon-infra fixes: feedback #58 (poke guidance delay_ms=0 -> 1000) + #57 (verified already fixed by #115 dedup) (feedback-resolution reconcile, Brief #276)