# Review conversations: current-head verification

Target: [#20894](https://github.com/pingdotgg/t3code/pull/20894), [MarconLP/t3code](https://github.com/MarconLP/t3code), branch `feat/timeline-review-threads`.

Head: [b1f5dddcbd](https://github.com/MarconLP/t3code/commit/b1f5dddcbd7f88bde948ab53972eff141ccef2de). Compared with main [d5fdfdcf05](https://github.com/pingdotgg/t3code/commit/d5fdfdcf05330680c2947bbb458772f63dba964f). Contributor history is preserved; main was merged normally. Eight changed files, +784/-122 against this base.

## Behavior and scope

Summary and Timeline use one conversation model. Findings own chronological replies, canonical flat comments preserve editing/reaction metadata, and filters and paging keep a conversation whole. Resolved and dismissed threads fold. Partial threads retain known or unknown missing-reply indicators and host links. Independently loaded discussion comments contribute to the shared discussion count while preserving a larger host total. Conversations retain the finding timestamp; a new reply on an old finding can remain behind older-conversation paging. This is intentional, not a promise of newest-reply ordering.

After main integration, a fresh review found Timeline fold state could remain stale when a retained tab received resolved/reopened activity. The existing Panel case now reproduces that transition. One production line includes resolved and normalized dismissed status in the thread row identity: status changes reset folding; ordinary refresh preserves manual folding. Status transitions remount the row, so an unsaved inline editor in that row can be discarded, consistent with Summary's existing transition behavior. Saved comments and permission metadata remain intact.

No server, contract, agent-provider or mobile behavior changed. Web and Electron share the presentation. Main's checkout-error and background Code-tab refresh changes remain present.

## Focused checks

- Original 17 added cases reduced to six behavior cases. With the current base, all 169 baseline cases remain: **175 tests across three suites**, comprising 140 logic, four Summary browser and 31 Panel browser cases. The current lifecycle regression extends one existing case; it adds no test declaration.
- Before the one-line lifecycle fix, the full browser scope reported 34 passing and one expected failure: the row displayed Resolved but remained expanded with finding and reply visible. After the fix, all 175 cases pass, including resolve/fold, manual expansion, unchanged refresh/preserve, manual fold, reopen/expand, dismiss/fold and dismissal reversal/expand.
- Web typecheck, targeted lint, formatting and diff checks pass. The existing Summary checks-list array-index warning predates this PR. The test/fix commits passed normal hooks; the earlier main merge occurred while dependency installation was in progress and its hook wrapper was unavailable, followed by the complete explicit focused verification.
- Main integration also passed 14 focused keyboard/attachment browser cases. Those source/test changes were inherited from main. These local passes do not establish the old CI failure's root cause or the new head's CI result.
- Tests/checks ran sequentially with niceness 10; Vitest used at most two workers. No repository-wide checks were run.

## Adversarial reviews

Two original full-PR Sol/Opus rounds repaired the independently loaded discussion count. Two more fresh full-diff rounds after main integration repaired the retained-Timeline fold-state regression. The final Sol and Opus pair independently read all eight files against the pinned base and reported no confirmed code finding. Reviewers were read-only; their code verdict is not CI readiness or merge authorization.

## Matched visual proof

Actual production components were rendered in Chromium through the repository's Vite browser-test workflow. Before uses exact pinned-main source, with only mutual imports renamed for adjacent temporary baseline copies; after uses the current head. Both use the same six synthetic comments, two review threads, filters, viewport (1000 by 1150), scroll and shared current styling/markdown. The primary agent inspected all four images. Both capture runs pass. The head capture additionally checks resolved-thread expand/refold, visible loaded replies, seven total replies and the root host URL in both views. All temporary source/test changes were restored and checked against committed bytes.

This is component-level UI evidence, not a full connected-app session or a live host mutation test. Real-host editing, reactions, navigation, human visual approval, performance at high conversation volume and Electron/macOS/Windows/iOS/Android remain unverified. The original integrated preview attempt timed out; no successful full-app preview is claimed. Local/remote/tunnel contracts are unchanged.

## Publication gates

CI and fresh GitHub feedback must be checked on the published head. Old failed runs concern the prior head and are not counted as current verification. Nothing was merged.

Models/harness: gpt-6-astra tests, gpt-6.1-sol implementation, gpt-6-sol and claude-opus-5-5 independent review; Codex/T3 Code and Claude review.
