Release next: capture/read hardening and Think Echo backlog#13
Merged
Conversation
New items from documentation-quality, ship-readiness, and code-quality audits. Removed CI-002 (mind discovery in TUI) — shipped in v0.7.0. Inbox (3): mind orchestration docs, window-based read model docs, clarify reflect MCP status Cool ideas (4): externalize prompt families, --remember --global, integrity verification, export to portable format Bad code (2): warp handle reuse, prompt metrics IOPort abstraction
Bad code (4): - Browse fade-in uses single color for all text - Scripted browse has no switch_mind action support - Unused browseStartMs field in model - False bijou bug report needs archiving Cool ideas (3): - Per-mind color themes (distinct palettes, not just shaders) - think --mind=<name> capture flag - Doctor prompt metrics file check
Bad code (6): - modelRef side-effect mutation in browse page - mind-switch loop embedded in command layer - shaderForMind lacks input validation - doctor checks have inconsistent skip logic - showSplash is a 126-line monolith - buildStatsSparkline duplicates formatStats logic Cool ideas (2): - pure splash state machine (testable animation logic) - reusable terminal fade-in utility
- SURFACE_clarify-reflect-mcp-status → asap (misleading README) - SURFACE_document-mind-orchestration → up-next (v0.7.0 docs gap) - SURFACE_document-window-based-read-model → cool-ideas (internals)
GUIDE.md: note that reflect is CLI-only (MCP not yet available), and update agent mind isolation to mention the ~/.think/<name> pattern alongside THINK_REPO_DIR.
Design doc for cycle 0010 written. Failing test confirms the doc does not exist yet.
Covers mind creation, discovery, splash/browse switching, capture routing, THINK_REPO_DIR interaction, agent isolation patterns, and current limitations.
Dead field from cycle 0004 fade-in approach that was replaced by the manual fadeInBrowse function.
Throws with a descriptive message instead of silently producing NaN from modulo-by-zero.
Upstream now reports 'skip' (not 'ok') when URL is set but no checkUpstreamReachable callback is provided. Prevents false confidence that the upstream was validated.
Remove duplicate buckets.map().reverse() → sparkline() from formatStats. Now uses the shared buildStatsSparkline function.
Add YAML frontmatter with `blocks` and `blocked_by` arrays to all 64 bad-code backlog items. Dependencies are expressed as direct edges only (no transitive closure). Items with no dependencies use empty arrays.
Tests expect createEntry/createReflectSession to return frozen class instances with constructor validation. Currently they return plain objects.
Entry and ReflectSession are now classes with constructor validation and Object.freeze. Entry accepts optional reflect fields (seedEntryId, contrastEntryId, sessionId, promptType) at construction instead of post-creation mutation. Factory functions preserved for callers.
storesTextContent now validates against ENTRY_KINDS instead of hardcoded string comparison. formatBucketKey validates bucket against BUCKET_PERIODS and throws on invalid input. Both constants are frozen arrays exported from constants.js.
normalizeUrl now rejects non-http(s) schemes (data:, file:, ftp:, javascript:, etc.) to prevent dangerous URLs from entering the provenance chain. Two new port tests.
saveRawCapture and finalizeCapturedThought no longer read process.cwd() or shell out to git internally. Callers (CLI capture.js, MCP service.js) now resolve ambient context at the boundary and pass it in. The store layer accepts the pre-resolved context as a parameter. Removes the process-global dependency from the sacred capture path.
normalizeCaptureProvenance now returns a frozen CaptureProvenance instance instead of a plain object. Property access unchanged for all callers. One new port test, existing tests updated to check properties individually.
New docs/AMBIENT_CONTEXT.md covers collection (two-phase: cheap capture + git follow-through), persistence (WARP node properties), recall matching (ambient affinity scoring + explicit query terms), and provenance normalization. Single reference for contributors.
Replace the O(N) full-repository scan in deriveSessionAttribution with a graph-based lookup of the latest capture. This fixes the 40s+ capture latency reported on large repositories (e.g. codex mind).
1. Optimized session attribution (O(1) graph jump). 2. Optimized listRecent (O(limit) chronology traversal). 3. Implemented incremental enrichment (O(delta) high-water mark). 4. Added 'newer' edges for forward chronology traversal. 5. Cleaned up dead code and lint errors in queries.js.
1. Added 'KEYWORD_PREFIX' for inverted index nodes. 2. Updated enrichment runner to build 'keyword' nodes and 'mentions' edges. 3. Refactored 'remember' query to use keyword lookup first, falling back to a 2000-entry windowed scan for un-indexed terms. 4. Search performance is now decoupled from total repository size for indexed keywords.
1. Added KeywordTrie class for in-memory prefix matching. 2. Refactored rememberThoughts to use the Trie to expand query terms. 3. Added thread-safe loadSearchIndex to bootstrap the Trie. 4. Optimized search is now O(1) for indexed terms with instant prefix matching.
1. Added searchFuzzy and levenshteinDistance to KeywordTrie. 2. Updated rememberThoughts to automatically perform fuzzy expansion when prefix matches are low. 3. Implemented distance-based scoring to ensure exact matches rank above typos. 4. TYPO RESILIENCE: 'aple' now finds 'apple' with minimal latency.
1. Added getLatestStoredEntry and listRecentStoredEntries to runtime.js. 2. Refactored derivation.js, queries.js, and runner.js to use new helpers. 3. Eliminated manual ID-to-Entry hydration patterns. 4. Hardened the O(limit) recent-access pattern as the default developer path. 5. Resolved race conditions and lint errors across the store layer.
Integrated the 'Runtime Truth Wins' doctrine as the primary engineering standard for the project. Updated CONTRIBUTING.md and AGENTS.md to link to the new authoritative reference.
1. Added F10 key binding to toggle performance stream. 2. Implemented 'Perf stream started/ended' notifications via Bijou toasts. 3. Added 'Theme set to XYZ' notification on shell theme change. 4. Refactored TUI overlays to use native bijou-tui toast component. 5. Resolved various lint errors and hardened store layer with polymorphic entries.
1. Added 'Matrix' and 'Cyberpunk' themes to theme.js. 2. Enabled shell theme switcher in FramedApp with 'Theme set to XYZ' notifications. 3. Implemented F10 toggle for performance stream with status notifications. 4. Refactored TUI overlays to use native Bijou 'toast' and 'perfOverlaySurface'. 5. Hardened TUI state management with modelRef-backed notifications.
|
Important Review skippedToo many files! This PR contains 300 files, which is 150 over the limit of 150. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (300)
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
release/nextas the integration branch back intomain.Validation
npm run test:fastpassed during the final backlog/doc commits.npm run test:ports; 92 tests passed.Notes
origin/main...origin/release/next.d043cb0 docs(backlog): add Think Echo follow-up notesande9f1d98 docs(backlog): add Think Echo proof phases.