diff --git a/docs/current-handoff.md b/docs/current-handoff.md index 48bf866..ac2cfdc 100644 --- a/docs/current-handoff.md +++ b/docs/current-handoff.md @@ -1019,7 +1019,9 @@ The remaining boundaries are NOT persistence issues. They belong to the next fea ### v0.49 — MULTI-TURN / COLD-RETURN ACTIVITY VISIBILITY REPAIR (2026-08-28) -**Closed:** Multi-turn/cold-return regression in Open Question activity visibility (INVESTIGATING cue). +**Checkpointed:** Single-turn visibility: passed. Multi-turn identity regression: repaired at 10cbcbd. Cold-return activity visibility: checkpointed subject to the canonical identity rule (`c.targetNodeId === nodeId || c.originatingTargetNodeId === nodeId`). + +**This repair does NOT solve** restored workspace lifecycle or reopened Finding interaction controls (see RESTORE / PRESENTATION FINDINGS section below). **Root cause:** `ThreadContributionsBadge`, `PriorContributionsSummary`, and `SecondaryPreviousLearning` all filtered contributions via `c.targetNodeId === nodeId`. Multi-turn follow-up Contributions carry a different immediate `targetNodeId` while the canonical origin remains on Findings (`originatingTargetNodeId`). When only the follow-up turn survives cold return, the filter finds zero matches. @@ -1035,6 +1037,104 @@ The remaining boundaries are NOT persistence issues. They belong to the next fea --- +## RESTORE / PRESENTATION FINDINGS — MANUAL USER-PATH (2026-08-28) + +### Open restore / focused-workspace presentation issue + +The following findings were established by manual user-path testing after the v0.49 multi-turn activity visibility repair at 10cbcbd. They are **separate and additional** to that repair; the identity fix for INVESTIGING cue on Open Question cards remains valid and unimpaired. + +#### A. Cold return can land on underlying investigation surface rather than focused-overlay + +After manually completing focused investigation work, closing the browser, and returning later: + +- The application can hydrate into the **underlying/main investigation surface** (case overview + situation + open questions with INVESTIGING cues) rather than automatically reopening the focused-investigation overlay. +- The main/restored surface includes: Open Questions (with INVESTIGING cues), Situation, persisted investigation content, and a saved-state message/banner stating that previous investigation state is still saved and can continue or restart. +- **No focused overlay is automatically reopened.** + +This indicates there appear to be **distinct presentation states**: + +A. Restored underlying investigation surface (case overview) +B. Focused-investigation overlay (opened per Open Question) + +The ownership / lifecycle relationship between A and B has NOT yet been traced or resolved. + +#### B. Restored surface + saved-state banner presents semantically odd signal + +The main investigation is already visibly restored when the UI simultaneously presents messaging equivalent to: + +> "Your previous investigation state is still saved. You can continue where you left off or start fresh." + +This may indicate a **restored/resumed workspace-state distinction** that is not currently obvious to the user. + +**Do not conclude persistence is broken.** Persistence remains demonstrated working. This is a **presentation / workspace-lifecycle observation**. + +#### C. Reopened focused stream loses Finding interaction controls + +After returning to the restored investigation and manually reopening the previously investigated focused stream: + +- Prior Finding proposition(s) are visible under "What this tells us" +- The Finding text itself survives +- **The controls "Not quite" / "Not relevant" are absent** + +This differs from the live current-turn focused surface where canonical Findings display those controls. + +**REOPENED CANONICAL FINDING CONTROLS — UNRESOLVED** + +Leading hypothesis (unproved): the reopened/restored rendering path may be presenting Contribution-derived observation text or another historical representation instead of the same canonical Finding objects used by the live current-turn path. **This is NOT YET PROVED.** + +--- + +### Separation from prior repair + +The recent activity-visibility repair at 10cbcbd: + +- Repaired INVESTIGATING cue identity for direct/originating focused-thread identity via `c.targetNodeId === nodeId || c.originatingTargetNodeId === nodeId` +- **Does NOT solve** restored workspace lifecycle (section A) +- **Does NOT solve** reopened Finding interaction controls (section C) + +These are distinct issues with distinct boundary surfaces. + +### What remains proved (unchanged from prior handoff) + +- post-authoritative Current Understanding isolation was proved +- Done-for-now promotion was deterministically and live verified +- promotion survives reload +- no case/update or extra LLM call is required for Done-for-now promotion + +The new manual observations are **presentation/lifecycle issues downstream of persisted state**, not evidence that the promotion seam failed. Do NOT reopen those completed v0.49 findings. + +### What remains unresolved + +| Item | Status | +|------|--------| +| Cold-return can land on underlying surface rather than focused overlay | MANUALLY OBSERVED — unproven presentation/lifecycle gap | +| Saved-state banner + already-restored investigation signal | MANUALLY OBSERVED — semantic oddity of workspace state | +| Reopened Finding proposition survives | PROVED (text persists) | +| Reopened Not quite / not relevant controls absent | UNRESOLVED — hypothesis noted, root cause unproved | + +### NEXT BOUNDARY — REOPENED FOCUSED FINDING PRESENTATION / RESTORE WORKSPACE OWNERSHIP + +**Do NOT implement this trace now. Record as next bounded investigation.** + +The immediate next trace should compare: + +| LIVE CURRENT-TURN FOCUSED RENDERING | versus | COLD-RESTORED / REOPENED FOCUSED RENDERING | +|---|---|---| +| canonical Finding objects present | vs | whether same objects survive reopen | +| Finding.id available | vs | identity continuity | +| proposition | vs | wording continuity | +| userDisposition available | vs | disposition survival | +| onUpdateFindingDisposition | vs | callback availability | +| onUpdateFindingProposition | vs | rewording availability | + +The trace must identify the **first boundary** where any of the fields above stop being available or stop being rendered. + +Also trace whether: +- the main restored surface (A) and the focused overlay (B) are driven by **distinct lifecycle/presentation state**, and if so, what governs the transition between them; +- the reopened Finding controls gap is a rendering-path difference or a data-model gap. + +--- + ### BRANCH CLEAN STATE This branch has NO tracked working tree changes at HEAD b215846. Documentation closure recorded in this section only. No production or test modifications required. @@ -1589,6 +1689,7 @@ With Contribution persistence demonstrated working, the remaining unresolved bou 1. **Follow-up selected-question duplication** (OPEN UI ISSUE) — proposed follow-up appears simultaneously as ACTIVE QUESTION and STILL-AVAILABLE FOLLOW-UP; proposal state vs active-question state disconnect 2. **Focused → global ownership/integration** (STILL OPEN) — how accumulated focused Findings map into the global SituationGraph reasoning layer 3. **Current Understanding incorporating focused learning** (STILL OPEN) — narrative understanding should be reconstructed from globally eligible Findings + graph state, not directly from latest focused result +4. **Reopened focused Finding presentation / restore workspace ownership** (NEW — MANUAL OBSERVATION) — cold return can land on underlying surface; reopened Finding controls absent **Selected next boundary: Focused → global Finding integration / Previous Learning presentation.** @@ -1641,11 +1742,12 @@ State: 1 contribution targeting n58lwnx, 3 findings. - No CSS animation, transition, or expansion behavior — just a static indicator. - Does NOT affect which cards are clickable/investigable (UNCLEAR handles that). -#### Remaining open boundaries (unchanged) +#### Remaining open boundaries 1. **Follow-up selected-question duplication** (OPEN UI ISSUE) — proposed follow-up appears simultaneously as ACTIVE QUESTION and STILL-AVAILABLE FOLLOW-UP; proposal state vs active-question state disconnect 2. **Focused → global ownership/integration** (STILL OPEN) — how accumulated focused Findings map into the global SituationGraph reasoning layer 3. **Current Understanding incorporating focused learning** (STILL OPEN) — narrative understanding should be reconstructed from globally eligible Findings + graph state, not directly from latest focused result +4. **Reopened focused Finding presentation / restore workspace ownership** (NEW — MANUAL OBSERVATION) — cold return can land on underlying surface; reopened Finding controls absent **Selected next boundary: Focused → global Finding integration / Previous Learning presentation.**