feat: lazy-load memory browse and Flashbacks - #26
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eddf0df15b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Codex Review: Didn't find any major issues. Keep them coming! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary:
/memoriesarchive-wide loading with cursor-paginated SQLite browse pages.?flashback=<id>filters server-global before pagination.gitcommands.Subtask / commit mapping:
d9d810028def273c5a24bfd43d414babf1600dc9706a1d3f2,eddf0dfBehavior covered:
/memoriesinitial route loads a 30-row first page./memories?q=<term>searches the full archive, including rows not loaded on the first page./memories?flashback=<id>still finds the owning memory and hydrates the selected excerpt.loadRecentFlashbackBrowseRows({ limit: 5 }), not all memories.Verification:
mise exec -- bun run test tests/memories/browse-data.test.ts tests/components/browse-data-query.test.ts: passed, 2 files / 28 tests.mise exec -- bun run test tests/server/db/schema.test.ts tests/server/db/repositories.test.ts: passed, 2 files / 36 tests.mise exec -- bun run test tests/server/memories/browse.test.ts tests/server/browse-loaders.test.ts tests/server/flashbacks/repository.test.ts: passed, 3 files / 24 tests.mise exec -- bun run test tests/components/browse-loader.test.ts tests/components/flashbacks-loader.test.ts tests/components/app-shell.test.ts tests/components/memory-browse-actions.test.ts tests/components/reader-flashback-tabs.test.ts: passed, 5 files / 62 tests.mise exec -- bun run test tests/components/reader-flashback-tabs.test.ts tests/components/reader-memory-loader.test.ts tests/components/memory-reader-actions.test.ts tests/components/memory-reader-flashback-selection.test.ts: passed, 4 files / 36 tests.mise exec -- bun run test tests/server/backup/backup-environment.test.tswith parentGIT_DIR/GIT_WORK_TREEset: passed, 1 file / 10 tests.mise exec -- bun run typecheck: passed.mise exec -- bun run test: passed, 103 files / 799 passed / 5 todo.mise exec -- bun run build: passed. Existing NodeDEP0155warning remains fromdefuddle -> temml.mise exec -- bun run test:e2e: passed, 47 Playwright tests.typecheck, fulltest, andbuild.Performance evidence:
Measured with the Task 20 harness against a copy of the local
/Users/vvx/.traumadataset to avoid mutating the live database/store. Dataset: 110 memories, first page 30 rows, 39 renderable Flashbacks, largest source memory 249,025 bytes.loadBrowseMemories()721 ms, 110 rows, 39 nested FlashbacksloadBrowseMemoryPage()1.28 msnextCursor=trueloadFlashbackBrowseRows()756 msKnown local state:
eddf0df..sawyer/exclude-whitelist.txtwas checked; whitelisted paths such as.tmp/,TASK_19_INSTRUCTION.md,TEMP_MAIN_CONTENT_EXTRACTION_VALIDATION_REPORT.md,app.config.timestamp_1778391094301.js, andrefined_sample/were not staged.Backup safety: