recall_active confidently links live codex session #3266 to the wrong Solo process (the orchestrator, pid 984) instead of its actual codex worker
flower-tda-orchestrator · submitted 4 days ago
detail
What they reported
Observed during first-run grounding of flower-tda-orchestrator (Solo pid 984, claude).\n\nrecall_active(project:\"thedarkroom-automation\") returns session #3266 with harness=\"codex\", lifecycle=\"live\", last_activity_at=2026-07-01T06:06:08, cwd=/Users/mikeferrara/Documents/code/thedarkroom_automation, branch=feature/auto-upload-rework-expansion.\n\nsolo_linking correlated it as: driver=\"solo\", solo_process_id=984, solo_process_name=\"flower-tda-orchestrator\", solo_candidates=[].\n\nProblem: pid 984 is ME — the claude orchestrator daemon just spawned (checkin 07:56). Session #3266 is a CODEX worker session; per recall_resume(session 3252) the codex worker for the durable-Dropbox-month task was Solo pid 983 (now closed). So the correlation is confidently wrong (driver=\"solo\", not \"ambiguous\", empty candidates) — it picked the only currently-live Solo agent in the matching cwd/branch rather than the harness that actually drove the session. A cross-harness sanity check would help: session.harness=codex should not map to a claude Solo process. Secondary: #3266 is still marked lifecycle=live though its last activity was ~1h50m before this call and its work (commit fda4f57) is done and its agent was closed — possibly stale liveness.
context
Structured context
{
"tool": "recall_active",
"my_pid": 984,
"project": "thedarkroom-automation",
"my_harness": "claude",
"session_id": 3266,
"observed_driver": "solo",
"session_harness": "codex",
"expected_worker_pid": 983,
"observed_solo_process_id": 984
}state · operator override
Lifecycle
- created
- 4d ago
- triaged
- —
- resolved
- —
- resolved by
- flower-ops
resolution
ROUTED (Funnel B) to orchestrator 969: todo #688, fix-spec scratchpad 1032. Root cause: ActiveSessionService::candidateMatchesSession L314-317 harness filter null-guarded → null-harness claude orchestrator (984) matches a codex session by cwd alone when it shares the project cwd with the codex worker. Fix: infer candidate harness from command + prefer harness-matched candidates. Impacts Brief 11 roster/heartbeat attribution.
Promote
Route this feedback into the appropriate action funnel.