Repository navigation
fix(home): persist bounded Today meeting metadata - #2405
Merged
Merged
Conversation
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.
Today previously parsed uncached meeting previews again after every launch. Persist those bounded rows in a separate SQLite table so a reopened cache can reuse them without parsing full transcript bodies.
The existing full-metadata table and JSON schema stay compatible. Full search and older app versions cannot read partial rows. Today prefers a matching full row, then a matching partial row; a stale full row cannot hide a current partial row. In-memory index entries also record completeness so passing Today’s previous index into full search cannot omit speaker names. Cache maintenance removes both projections while counting each missing path once.
Validation on
0edc793c7:TodayMeetingMetadataCachesuite: 81 assertions passed. Fixtures use only an owned temporary directory and explicit SQLite cache. Covers reopened persistence, direct and bulk lookup, stale full/current partial stamps, full-search isolation from persisted and previous partial rows, full-row preference, and pruning.bash check.shunder invocation-only safety guards: 19 checks passed, including the app build and concurrency census; unfiltered fast tests were BLOCKED with exit 3. Overall deterministic result is FAIL. The exact-head receipt records stable source and a clean worktree.verify-change.sh: rebuild passed; UI and launch-speed checks SKIPPED because Transcripted was already running. Nothing was quit. No native app, user library/preferences, model, or account workflow was exercised by this task.The full fast suite remains unverified on this standalone head because existing fixtures require separate isolation fixes. Combined validation belongs in the isolated integration branch; UI/launch behavior remains unverified. Keep this PR draft pending those checks.
Related: #2399 independently removes the unused scanner diagnosis helper; this PR changes loadIndex and keeps that removal separate. #2336 has cache-isolation assertion cleanup, without this persistence fix. No merge requested.