perf(tui): open the /resume selector from one batch projection
The selector called readSession per listed session under an unbounded
Promise.all: each call re-listed the whole persistence store (O(N^2)
listings), decompressed and parsed the complete log, replay-validated
every event, and deep-cloned it up to three times, only to derive one
row's title, activity time, turn label, route, and goal phase. On a
real 185-session / 87 MB store the selector took tens of seconds.
Candidate rows now come from one projectSessions batch over borrowed
logs; a rejected projection degrades to the same disabled unreadable
row. Preflight still replay-validates the single chosen session through
readSession, which is already live-preferred, so its redundant live
shortcut is gone.
2026-07-31 16:09:17 +08:00
|
|
|
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
|
|
|
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
|
|
|
# after editing either side, bring the other along and re-record with:
|
|
|
|
|
# pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-07-31-resume-selector-batch-projection.md
|
2026-08-31 00:34:59 +08:00
|
|
|
2026-07-31-resume-selector-batch-projection.md: e4809575e03bbd74522b26a8a170ac558d6eee41
|
|
|
|
|
2026-07-31-resume-selector-batch-projection.zh.md: 04646d266c87b96b7c28692663540ffe808d0082
|