All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Transcript Cleanup: LLM-powered cleanup of voice-dictated user messages via LiteLLM (GitHub Copilot API)
- Pure-Python heuristic pre-filter auto-detects garbled messages (repeated words, filler, missing punctuation)
- Batch processing: all messages sent in a single LLM call per chunk (10 msgs/chunk) with assistant context
- Original content preserved for revert — cleanup is fully reversible
- Structured output via
response_formatJSON schema (OpenAI models) with prompt-based fallback
- CLI:
cleanupcommand with--dry-run,--all,--message,--force,--thresholdoptions - CLI:
cleanup-revertcommand to restore original voice-dictated content - Web: Per-message Font Awesome mic icon with tristate color (gray/green/amber)
- Web: Popover with Clean/Toggle/Revert actions, no page reload (AJAX + scroll preservation)
- Web: Session-level Cleanup and Revert All toolbar buttons
- Web: POST API routes
/api/cleanup/<session_id>and/api/cleanup-revert/<session_id> - Database: Schema v5 migration —
original_contentandcleanup_modelcolumns oncst_messages - Dependencies: Optional
[llm]extras group withlitellm>=1.50.0 - Benchmark:
scripts/benchmark_cleanup.pyfor comparing pre-filter strategies and LLM models
- Scanner: Scan VS Code workspace storage (Stable and Insiders editions) to find Copilot chat sessions
- Scanner: GitHub Copilot CLI chat history support (JSONL format from
~/.copilot/session-state) - Scanner: Support for VS Code JSONL append-log format (VS Code >=1.109)
- Database: SQLite storage with FTS5 full-text search indexing
- Database: Two-layer design with raw compressed JSON as source of truth and derived tables
- Database: Incremental scan support (only imports new/changed sessions)
- CLI:
scancommand to import sessions from VS Code and CLI - CLI:
searchcommand with advanced query syntax (field filters, exact phrases, boolean logic) - CLI:
statscommand for database statistics - CLI:
exportcommand for JSON export - CLI:
export-markdowncommand for Markdown export - CLI:
export-htmlcommand for self-contained HTML export - CLI:
import-jsoncommand for JSON import - CLI:
rebuildcommand to recreate derived tables from raw JSON - Web: Flask-based web interface for browsing chat sessions
- Web: Full-text search with highlighting
- Web: Dark mode support via CSS
prefers-color-scheme - Web: Syntax highlighting for code blocks
- Web: Incremental refresh without restarting
- Tracking: Tool invocations, file changes, and command runs from chat sessions