Affected area
Session / workspace / local sync
Installation method
Built from source
Lody version or commit
b4d5443
Operating system
macOS 26 arm64; the affected Desktop state flow is platform-independent
Agent or runtime
Desktop local runtime
What happened?
On a cold start, Session Detail becomes interactive as soon as the requested root Session is present in the bootstrap metadata cache. The full workspace metadata scan can still be incomplete at that point. If a user immediately archives the root Session, archive target selection reads the partial sessionMetaCacheAtom and can miss a child Tab whose parentSessionId points to that root.
The result is inconsistent archive state: the root is archived while its lifecycle-owned child Tab remains active.
What did you expect?
Archiving a root Session should not start until the metadata needed to identify all direct child Tabs is hydrated, or archive target selection should read from a complete source. The root and every direct parentSessionId child must transition together.
How can we reproduce it?
- Create a root Session A and a child Tab T with
T.parentSessionId = A.
- Cold-start Desktop and arrange for bootstrap metadata to expose A before the full workspace metadata scan exposes T.
- Open Session Detail for A; it resolves because A is already in the active Session cache even though
docMetaCacheReadyAtom is false.
- Immediately choose Archive.
- Observe that archive target selection sees only A, so A becomes archived while T remains active.
How often does it happen?
Sometimes; it depends on user timing during cold-start metadata hydration.
Relevant log output
No log output is required. The race follows from Session Detail allowing actions before docMetaCacheReadyAtom and archive target selection reading sessionMetaCacheAtom.
Additional context
Discovered while narrowing #569 to the archive-only acceptance criteria from #531. This is pre-existing rather than introduced by #569, but it needs an explicit readiness or complete-query contract and regression coverage.
Before submitting
Affected area
Session / workspace / local sync
Installation method
Built from source
Lody version or commit
b4d5443
Operating system
macOS 26 arm64; the affected Desktop state flow is platform-independent
Agent or runtime
Desktop local runtime
What happened?
On a cold start, Session Detail becomes interactive as soon as the requested root Session is present in the bootstrap metadata cache. The full workspace metadata scan can still be incomplete at that point. If a user immediately archives the root Session, archive target selection reads the partial
sessionMetaCacheAtomand can miss a child Tab whoseparentSessionIdpoints to that root.The result is inconsistent archive state: the root is archived while its lifecycle-owned child Tab remains active.
What did you expect?
Archiving a root Session should not start until the metadata needed to identify all direct child Tabs is hydrated, or archive target selection should read from a complete source. The root and every direct
parentSessionIdchild must transition together.How can we reproduce it?
T.parentSessionId = A.docMetaCacheReadyAtomis false.How often does it happen?
Sometimes; it depends on user timing during cold-start metadata hydration.
Relevant log output
No log output is required. The race follows from Session Detail allowing actions before
docMetaCacheReadyAtomand archive target selection readingsessionMetaCacheAtom.Additional context
Discovered while narrowing #569 to the archive-only acceptance criteria from #531. This is pre-existing rather than introduced by #569, but it needs an explicit readiness or complete-query contract and regression coverage.
Before submitting