Problem
frontend-state.md requires shell/panel state to be keyed by the complete SessionRef (via sessionRefKey(sessionRef)). The files panel correctly passes panel.sessionKey, but FileTreeAdapter names the prop sessionId:
apps/app/src/features/files/file-tree-adapter.tsx — prop sessionId: string
apps/app/src/features/files/files-panel.tsx — passes panel.sessionKey into sessionId
The name suggests a bare UUID and invites future callers to pass only ref.sessionId instead of the full composite key.
Why it matters
Identity bugs when the same session UUID exists under different projects or harness agents.
Suggested fix
Rename the prop to sessionKey (or accept SessionRef and call sessionRefKey internally). Consider a type alias SessionKey = ReturnType<typeof sessionRefKey>.
Severity
P3
Problem
frontend-state.mdrequires shell/panel state to be keyed by the completeSessionRef(viasessionRefKey(sessionRef)). The files panel correctly passespanel.sessionKey, butFileTreeAdapternames the propsessionId:apps/app/src/features/files/file-tree-adapter.tsx— propsessionId: stringapps/app/src/features/files/files-panel.tsx— passespanel.sessionKeyintosessionIdThe name suggests a bare UUID and invites future callers to pass only
ref.sessionIdinstead of the full composite key.Why it matters
Identity bugs when the same session UUID exists under different projects or harness agents.
Suggested fix
Rename the prop to
sessionKey(or acceptSessionRefand callsessionRefKeyinternally). Consider a type aliasSessionKey = ReturnType<typeof sessionRefKey>.Severity
P3