Repository navigation
Conversation
This was referenced Oct 22, 2026
Open
This was referenced Oct 22, 2026
Owner
Author
…en in the status bar
On launch over a prior capture the window sat with empty plot and trace
views and no feedback for as long as the reopen took - 12-14 s on a
110 M-frame capture - because `restore_scratch_capture` is fired and not
awaited and emitted nothing while it ran. The only notice that existed
started after it returned, and only when the signal caches had to be
rebuilt.
Host (ADR 0002 DS-7, ADR 0047, ADR 0048): every expensive phase of the
restore maps segment files through `open_segments`, which now takes a
per-file callback (one atomic add per file, on the mapping threads).
It is threaded through `ByIdIndex::reopen`,
`DiskRawStore::reopen_reporting`, `SampleSeq::reopen_many_reporting`,
`TraceStore::try_reload_reporting` and
`SignalCacheStore::restore_reporting`; the non-reporting entry points
keep their signatures as wrappers. The pyramid restore plans both sets
before mapping either, so its total is known up front.
`restore_scratch_capture` emits `restore-progress`
`{ phase, files_opened, total_files }` with phases `capture_index`,
`capture_frames` (metadata, then payload - the total grows once) and
`signal_caches`: a first report at 0 of N unpaced, paced reports at the
live-update cadence, a last at N of N. Nothing is emitted when there is
nothing to restore. The reporter takes neither store lock. Reload cost
with and without the seam is noise (2088 files, debug: 113.0 vs 109.4 ms
and 102.5 vs 101.3 ms medians of 15).
Frontend: `RestoreProgress` mirrors the record; `ProgressReport` gains
the variant and `loadProgressReadout` renders "<phase> n / N files";
`App` listens for the event and shows "Restoring prior capture..." with
the same determinate chip the load and cache rebuild use, from the
first report until the invoke settles (a run counter ignores a late
paced report and keeps an older restore from clearing a newer one's
chip). The chip shares the cache-rebuild rule; no new tokens, no button.
Tests: the seam sees every file exactly once on the threaded and
single-file paths; reporter shape and pacing; an end-to-end reload over
a generated scratch and persisted pyramids reports the three phases in
order against on-disk file counts; readout cases per phase; App dom
tests for appear/leave on resolve, leave on reject, late report ignored,
nothing to restore shows nothing. README's relaunch paragraph describes
the chip.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
thebhef
force-pushed
the
fix-startup-restore-feedback
branch
from
October 26, 2026 22:42
fd32b6c to
adb3894
Compare
thebhef
force-pushed
the
fix-plot-y-scale
branch
from
October 26, 2026 22:42
a0093bc to
a4e4c9c
Compare
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.

On launch over a prior capture the window sat with empty plot and trace
views and no feedback for as long as the reopen took - 12-14 s on a
110 M-frame capture - because
restore_scratch_captureis fired and notawaited and emitted nothing while it ran. The only notice that existed
started after it returned, and only when the signal caches had to be
rebuilt.
Host (ADR 0002 DS-7, ADR 0047, ADR 0048): every expensive phase of the
restore maps segment files through
open_segments, which now takes aper-file callback (one atomic add per file, on the mapping threads).
It is threaded through
ByIdIndex::reopen,DiskRawStore::reopen_reporting,SampleSeq::reopen_many_reporting,TraceStore::try_reload_reportingandSignalCacheStore::restore_reporting; the non-reporting entry pointskeep their signatures as wrappers. The pyramid restore plans both sets
before mapping either, so its total is known up front.
restore_scratch_captureemitsrestore-progress{ phase, files_opened, total_files }with phasescapture_index,capture_frames(metadata, then payload - the total grows once) andsignal_caches: a first report at 0 of N unpaced, paced reports at thelive-update cadence, a last at N of N. Nothing is emitted when there is
nothing to restore. The reporter takes neither store lock. Reload cost
with and without the seam is noise (2088 files, debug: 113.0 vs 109.4 ms
and 102.5 vs 101.3 ms medians of 15).
Frontend:
RestoreProgressmirrors the record;ProgressReportgainsthe variant and
loadProgressReadoutrenders " n / N files";Applistens for the event and shows "Restoring prior capture..." withthe same determinate chip the load and cache rebuild use, from the
first report until the invoke settles (a run counter ignores a late
paced report and keeps an older restore from clearing a newer one's
chip). The chip shares the cache-rebuild rule; no new tokens, no button.
Tests: the seam sees every file exactly once on the threaded and
single-file paths; reporter shape and pacing; an end-to-end reload over
a generated scratch and persisted pyramids reports the three phases in
order against on-disk file counts; readout cases per phase; App dom
tests for appear/leave on resolve, leave on reject, late report ignored,
nothing to restore shows nothing. README's relaunch paragraph describes
the chip.
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com