Follow-up: summary hardening and review debt after PR #744
Author: safvanatzackCreated Sep 5, 2026Updated Sep 9, 2026
Context
This tracks deferred reviewer suggestions from PR #744, not merge blockers for that PR. PR #744 remains Markdown-first: generated and supported final summaries are Markdown.
The pure-JSON ActionItems / Decisions / summary_json formats were deprecated long before PR #744. Users cannot create summaries in those formats through supported flows, so do not reopen that compatibility path without a separate product decision.
Relevant review thread updates:
Deferred hardening
- Strip a leading UTF-8 BOM before outer Markdown-fence detection; retain current CRLF and inner-fence behavior.
- Clamp terminal analytics duration with
Math.max(0, Math.floor(durationSeconds))before the RustOption<u64>Tauri boundary. - Strengthen summary-process CAS tests with RFC3339-nanosecond
start_timeround-trip coverage and an explicitly single-connection SQLite test pool before concurrent cases. - Reassess the Auto Summary single-slot per-meeting guard and rename
onAutoGenerateCompleteif its name continues to mean request consumption rather than generation completion. - Log failed best-effort stale-generation cancellation/cleanup paths without changing stale-result or token/CAS semantics.
Deferred scalability and architecture
- Re-evaluate summary detection duplication and consolidate only after preserving Rust/TypeScript behavior with shared fixtures or equivalent contract tests.
- Profile and address tiny-context chunk sizing, long-transcript chunking, and Custom OpenAI context handling only with a reproducible supported-provider case.
- Consider extracting summary polling from
SidebarProvider, decomposingprocess_transcript_background, reducing summary component prop fan-out, and tightening summary-flow types as separately reviewable refactors. - Correct minor timeout wording only if the timeout policy itself is revisited.
- Add support for additional reasoning syntaxes only after evidence that a supported provider emits them.
Acceptance criteria
- Every item is revalidated against the then-current code and a supported normal-user flow before implementation.
- No change reintroduces persisted/rendered model reasoning into current Markdown summaries.
- No migration, dependency, or deprecated JSON-summary support is added without an explicit product decision.
- Each accepted behavior change has focused regression coverage plus the relevant Rust/frontend build checks.
Source: Zackriya-Solutions/meetily