From fbee428196e47bae0da79ca63b23a75ac7010bde Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Sat, 2 May 2026 16:27:05 +0200 Subject: [PATCH] fix(sf): record sessionId+sessionFile in auto.lock at acquire time acquireSessionLock now accepts an optional sessionInfo arg (sessionId, sessionFile) and writes both into the initial lockData JSON. The caller in auto-start.ts:382 reads them from ctx.sessionManager. updateSessionLock already writes these fields per-dispatch; this closes the gap at acquire time. Lets observers correlate the live auto.lock with the .sf/sessions/ event log (e.g. flow-auditor agents, dashboard, doctor). Resolves: sf-moocx6lv-9grpvt (active-auto-session-pointer-missing). Tests: 32/32 in session-lock + auto-start. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/resources/extensions/sf/auto-start.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/resources/extensions/sf/auto-start.ts b/src/resources/extensions/sf/auto-start.ts index e4faeae46..9579506f3 100644 --- a/src/resources/extensions/sf/auto-start.ts +++ b/src/resources/extensions/sf/auto-start.ts @@ -379,7 +379,10 @@ export async function bootstrapAutoSession( buildResolver, } = deps; - const lockResult = acquireSessionLock(base); + const lockResult = acquireSessionLock(base, { + sessionId: ctx.sessionManager?.getSessionId?.(), + sessionFile: ctx.sessionManager?.getSessionFile?.(), + }); if (!lockResult.acquired) { const reason = (lockResult as { acquired: false; reason: string }).reason; ctx.ui.notify(reason, "error");