Skip to content

Use Core sidebar observations instead of nullable snapshots - #694

Closed
trissim wants to merge 3 commits into
mainfrom
fix/sidebar-observation-owner
Closed

trissim wants to merge 3 commits into
mainfrom
fix/sidebar-observation-owner

Conversation

@trissim

@trissim trissim commented Oct 16, 2026 •

Copy link
Copy Markdown

Pair with Core #986

Unfinished source checkpoint 8998b6f8b. Do not build/install yet. The manifest/lock still pin the earlier Core 04d414e4b, not the current Core #986 f1e3866e0; that pin will be updated once the complete owner integration is ready. The historical header consumes E2E #965's birth_description API at 2979497b, pending Claude review before integration. Core #987's final canonical model/context owner and Toad #693's status/activity changes also land first; only unread hunks here change conversation_kind.py.

Core's existing observation family owns sidebar answers. Native tabs use canonical keyed rows, history tabs call channel_unread(target)/bus_unread(target), and relationship rows ask that observation to build the row. Foreign roots use WaitingSidebar and remain unobserved. Welcome/sidebar rendering consumes the keyed-model lifetime, not a duplicate snapshot-readiness flag. All raw-snapshot unread callbacks and their function-local imports are gone.

The read-position notifier consumes the Core notice member's messages_since(previous), rather than probing nullable text. Historical message headers consume the original ThreadIncarnation member's birth_description, never a nullable copied float or an unrecorded marker printed as a real birth. No new widget state copy, cache, codec or fallback.

Five earlier snapshot-consumer sites across four files were removed. The current Core counts are historical_views.py 8→0, sidebar.py 6→1; the remaining row model annotation awaits #987's canonical required thread.model. Original source data and uncertain inputs remain untouched.

Verification

Earlier paired source: actual live Core roster/derivation passed; 40 focused checks passed with one unchanged-main stale ThreadStatusModel.available assertion, owned by core-goal-retry. The earlier Core/Toad debt checks had zero increases; these are not final-head claims.

Current Core source: the real attached immutable archive reader returned a bounded original row with typed sender/target births and codec roundtrips, with original source fences intact and no input/attach. The final notice contract has 3 checks passed in 0.49s. Two larger serial Core batches and the combined ratchet reached their time bounds and have no final pass result; logs remain preserved.

The final source/debt checks and actual saved-session st/isolated-display sidebar/tab/filter journey remain pending complete owner integration and Codex's matching reviewed build. Verification stays with this implementation owner. No Toad tests, fixtures, fake responses or synthetic application; no installed-runtime/UI-success claim. No new native/provider input, build, installation, restart or data carry. Ordered deadline: 16:00 EDT.

@trissim

trissim commented Oct 19, 2026

Copy link
Copy Markdown
Author

Closing: its Core pair #986 was closed unmerged; the body marks it an unfinished checkpoint.

@trissim trissim closed this Oct 19, 2026
@trissim
trissim deleted the fix/sidebar-observation-owner branch October 19, 2026 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant