Skip to content

fix(home): persist bounded Today meeting metadata - #2405

Merged
r3dbars merged 1 commit into
mainfrom
codex/review-ui-shared-15
Nov 12, 2026
Merged

r3dbars merged 1 commit into
mainfrom
codex/review-ui-shared-15

Conversation

@r3dbars

@r3dbars r3dbars commented Nov 10, 2026

Copy link
Copy Markdown
Owner

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:

  • Exact focused TodayMeetingMetadataCache suite: 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.
  • One negative control restored the original missing Today write: four expected failures out of 81 assertions. Restoring the fix passed all 81. No retry-until-green or elapsed-time assertions.
  • bash check.sh under 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.
  • Independent full-diff and fixture-safety review: GREEN from the coordinator, including the separate-table compatibility design and requested nonempty-count controls.

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.

@r3dbars
r3dbars merged commit f865ee1 into main Nov 12, 2026
12 checks passed
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