Repository navigation
Conversation
Contributor
Author
|
no owner; reopen with a new order |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Paired sidebar ownership repair
Unfinished checkpoint:
f1e3866e0. Do not build/install yet. Toad #694 still pins the earlier Core04d414e4b; its updated unread/notice consumers are local and will receive the final Core pin once the complete change is ready.The ordered finish is zero
| Noneannotations in both historical_views.py and sidebar.py. Current checkpoint counts are 0 and 1, not complete. Historical births now consume E2E's #965 incarnation family, normally integrated at published owner checkpoint0b94c628(merge1647cba34); the remaining row model value will consume UI2's #987 canonical thread model. #965 remains a draft dependency, not a feature implemented by this PR. Its newerbirth_descriptionAPI awaits owner review/integration for the paired Toad header. Model/context integration must use UI2's final owner, not its rejected interim runtime-label implementation.The observation family existed, but callers kept recovering its state from a nullable snapshot. That was pointless: the family now answers order, read notice, filters, unread state and thread-row construction. Waiting/failed observations give an unobserved unread result and no notice, use the empty view's default ordering, and refuse requests for unavailable snapshot/filter data; a failed member raises its original error. ObservedSidebar owns the real snapshot and answers from it. SidebarModel.snapshot is deleted, not replaced with another availability flag.
CoordinationSnapshot now owns one ListingFilter value instead of two independent fields. The current row model takes an UnreadPresentation, never an optional snapshot. Toad removes its snapshot probes, asks the family for unread state, and renders the model's canonical keyed rows; it does not add widget state copies.
The channel-member loop now uses threads.keys() once per derive() rather than rebuilding all thread names for each member. Channel owns its tag description: #all/#any/#none render their actual BuiltinChannel member, not a false 'all' fallback. String tags themselves have no all-member.
Source evidence
NRA ModuleSyntaxIndex before/after query covers Core src/tools/tests, paired Toad and Python dependencies. Exact classes, fields, imports and consumers are in
.artifacts/sidebar-observation/. Computed imports/calls and compiled dependency internals are not statically proved.sidebar.py current counts: is not None 2 → 0; | None 6 → 1. The remaining row model annotation awaits #987. Observation methods are now
channel_unread(target)andbus_unread(target); snapshot callbacks and their function-local imports are deleted. The read ledger decodes its native text/null value once through the existing WireValue capability into a notice member. Null means NoReadMarkerNotice; empty text is malformed and is rejected by the text member's own invariant. The no-notice member has no data field and encodes native null. Case-specific messages/take answers are abstract on the base and implemented by the two members; the shared repeat-suppression algorithm remains on the base. Waiting sidebar observations return NoReadMarkerNotice. Toad's notifier consumes the notice's messages rather than testing nullable text.historical_views.py current counts: | None 8 → 0. HistoricalMessage retains sender_incarnation/target_incarnation; the original declaration supplies its existing member under the original message name, while absent/later births produce the owning family's Unrecorded member. Nullable copied birth floats and old metadata fields are deleted. Declared archive/specific viewers own page reading and human display evidence. HistoryTargets owns unrestricted/named membership, offset constraints and clock/count reduction across all source consumers; nullable target sets are removed, including the page index. The disposable display-checkpoint format is now schema 4, so old derived files are not decoded as the new shape. Durable channel/read-ledger formats remain unchanged.
Source APIs are split into attach_history(path)/attach_original_history(source) and historical_threads()/historical_thread(name). Original-source validation brackets the copy through the original HistorySource owner; the common archive writer has no optional source argument. Tool and test consumers are migrated. Historical reader source/revision fences remain strict.
Verification in progress
Actual Core sidebar roster/derivation on the configured live root completed: 73 visible thread rows, 11 channels, correct distinct #all/#any/#none descriptions and the original ListingFilter object. This was 0.063s for this bounded read, not a UI latency claim. No provider input.
Core checks: 40 passed / 1 unchanged-main failure in 39.16s. The existing
test_unreadable_history_observation.py:86asks forThreadStatusModel.available, which the unchanged main status model no longer declares; the test and owning class match the base source. That failure is preserved infocused.logand was sent to Codex for the existing status-model owner; no compatibility flag was added and no assertion was removed.The earlier published pair's Core and Toad production debt checks passed with zero increases. New checkpoint verification remains in progress: 36 targeted API checks passed in 39.88s before the final notice-decoder correction; the final notice contract has 3 checks passed in 0.49s. Actual attached immutable archives (2 sources) supplied a bounded original row with typed sender/target births and public-codec roundtrips; original source fences held, and no input or source attach occurred. This is source checkout/backend evidence, not installed pair/UI evidence. The larger serial selection batch reached its 75-second bound, the post-birth batch its 55-second bound, and the combined ratchet its 40-second bound; incomplete results are preserved, not called passes. Final coherent dependency verification will use appropriately bounded serial batches. No Toad tests or synthetic app are being used.
The actual paired st/isolated-display saved-session UI check is waiting for Codex's reviewed build. It stays with this implementation owner. No shared installation or UI success is claimed; no Toad tests or synthetic application. No new native/provider input. The ordered deadline is 16:00 EDT, as the fleet board specifies, not UTC. Source and generated evidence stay in the existing owned checkouts;
progress.jsonrecords the exact heads, results, owner and next step.