Flux Labs
|
c8b42ed2ae
|
feat: native perf optimizations — deriveState, JSONL, paths, parsing (#576)
Four native Rust optimizations to eliminate hot-path bottlenecks:
1. deriveState raw content (gsd_parser.rs, state.ts):
- Added rawContent field to ParsedGsdFile in batch parser
- Eliminates 43-line frontmatter re-serialization loop in state.ts
- Batch cache now stores original file content directly
2. JSONL streaming parser (gsd_parser.rs, session-forensics.ts):
- Added parseJsonlTail() — reads from file tail with constant memory
- Handles arbitrary file sizes (no more 10MB OOM risk)
- synthesizeCrashRecovery and readLastActivityLog use native first
3. Native directory tree index (gsd_parser.rs, paths.ts):
- Added scanGsdTree() — walks .gsd/ tree once, returns all entries
- paths.ts builds lookup map from native scan
- cachedReaddirWithTypes/cachedReaddir check native cache first
- Eliminates 20-50 readdirSync calls per dispatch
4. Native plan/summary parsers (gsd_parser.rs, files.ts):
- Added parsePlanFile() — parses tasks, must-haves, estimates
- Added parseSummaryFile() — parses frontmatter, sections, files
- files.ts calls native first, falls back to JS regex parsers
- 3-5x faster per file, ~20 files per deriveState
All optimizations follow the established pattern: native-first with
JS fallback when native module unavailable.
|
2026-03-15 20:16:42 -06:00 |
|