Full deployment history for this project.
chore: merge open PRs into main
Merge PR #79: ⚡ Bolt: optimize countWords using zero-allocation character scan
⚡ Bolt: optimize countWords using single-pass charCodeAt scan loop - Replace `split(/\s+/)` in `lib/term-analysis.ts` with a single-pass `charCodeAt` character scan loop to eliminate string and array allocations during active editor typing and API processing. - Re-use central `countWords` utility across `components/notes/note-editor-view.tsx` and `lib/service-api.ts`. - Support standard ASCII whitespace (charCodes 32, 9-13) and non-breaking space (charCode 160).
🎨 Palette: Add dismiss action to Learning Sidebar status message banner
⚡ Bolt: optimize word counting and text normalization to eliminate GC pressure - Replace split-and-filter regex word counting with a single-pass character scan loop in `lib/term-analysis.ts` supporting standard whitespace and non-breaking spaces (\u00A0). - Reuse centralized `countWords` and `stripHtml` utilities in `NoteEditorView` on editor keystrokes to eliminate intermediate string/array allocations during active typing.
feat(ux): add Escape key restoration to MCP command search input Add an Escape key handler to the MCP command search input in TiptapEditor. Pressing Escape clears active search query text if present, or closes the @ MCP command palette if the search input is empty.
⚡ Bolt: optimize countWords with single-pass scan and reuse utility - Replaced regex split (`/\s+/`) in countWords with a high-performance single-pass charCodeAt loop in lib/term-analysis.ts. - Deduplicated word counting in components/notes/note-editor-view.tsx by importing countWords from lib/term-analysis.ts. - Eliminates array allocations and GC pressure during active note editing.
🎨 Palette: Add ARIA expanded and dynamic label accessibility to sidebar toggles Added aria-expanded and dynamic aria-label/title attributes to desktop and mobile Learning sidebar and Notebooks sidebar toggle buttons to communicate open/closed state clearly to screen reader and keyboard users. Added frontend test coverage for toggle accessibility state.
⚡ Bolt: optimize countWords with zero-allocation single-pass scan - Replace value.trim().split(/\s+/).filter(Boolean).length with a single-pass charCodeAt scan loop in lib/term-analysis.ts. - Deduplicate word counting in components/notes/note-editor-view.tsx by importing countWords from lib/term-analysis. - Eliminates string, split array, and filter array heap allocations on every keystroke during editor typing.
🎨 Palette: Add Escape key handler to MCP Command Palette Added keydown listener for Escape key on the MCP command search input in Tiptap editor to close the palette, clear search query, and return focus directly back to the editor instance.
⚡ Bolt: optimize countWords with zero-allocation single-pass character scan loop - Replaced `split(/\s+/).filter(Boolean).length` in `countWords` (`lib/term-analysis.ts`) with a single-pass `charCodeAt` character scan loop. - Consolidated duplicate ad-hoc inline word count splitting in `NoteEditorView` (`components/notes/note-editor-view.tsx`) and `lib/service-api.ts` to reuse `countWords`. - Added edge case tests for `countWords` in `tests/unit/term-analysis.test.ts`.
ux: add escape key recovery and clear button to MCP command search Add keyboard Escape key handler and explicit clear search button to the @ MCP command palette input in TiptapEditor. - Escape clears search query if non-empty, or closes the command palette if empty. - Visible clear search icon button allows single-click reset.
🎨 Palette: Add ARIA expanded state and dynamic accessible labels to sidebar toggle buttons
⚡ Bolt: optimize countWords with zero-allocation single-pass charCodeAt scan loop - Refactor countWords in lib/term-analysis.ts to use a single-pass charCodeAt character scanning loop, eliminating split(/\s+/) string and array allocations (~3.9x speedup). - Consolidate inline split(/\s+/) word counting in NoteEditorView and service-api.ts to use the shared countWords utility.
🎨 Palette: enhance MCP Command Palette focus, keyboard navigation, and accessibility - Auto-focus the MCP command filter input when the command palette is toggled open - Add Escape key handling to clear the search query or close the palette gracefully - Render a helpful empty state with a "Clear filter" button when no commands match - Set aria-pressed on the @ MCP Commands toolbar button - Add acceptance tests in tests/acceptance/tiptap-editor.test.tsx
Bolt: optimize countWords with single-pass scan Replaces split(/\s+/) with a single-pass charCodeAt loop in countWords to eliminate string array allocations and GC pressure during typing and API requests. Centralizes word counting in NoteEditorView and service-api routes to reuse lib/term-analysis.ts.
chore: auto-close PR #61 via merge path
chore: auto-close PR #56 via merge path
chore: auto-close PR #55 via merge path
chore: stack PR #61
chore: stack PR #56
chore: stack PR #55
Merge pull request #54 from mbarbine/consolidate/platphorm-notes-20260811-cont3 consolidate 39 PRs into one commit
Merge pull request #15 from mbarbine/jules-4763219657738876743-b538849d 🎨 Palette: Notes search empty state and notebook creation dialog micro-UX improvements
improve note trace journey semantics
Merge pull request #13 from mbarbine/jules-15576717390266640808-1cdda3a7 🎨 Palette: Add keyboard shortcut and helper badge to focus sidebar search
Merge pull request #12 from mbarbine/bolt-term-analysis-optimization-8479816250571114164 ⚡ Bolt: Optimize Term Analysis and HTML Stripping
Consolidate 1 open pull request Merged consolidation of open PRs: #10
Merge pull request #9 from mbarbine/jules-827429825004338365-bfcdff54 ⚡ Bolt: Optimize render performance by memoizing array operations in NotesClient and NoteEditorView
Merge pull request #2 from mbarbine/jules-14483518767344429971-65e627de 🎨 Palette: Add Double-Confirmation Safety Dialogs for Deleting Notes and Notebooks
Merge branch 'main' into jules-14483518767344429971-65e627de
Merge pull request #8 from mbarbine/palette/ux-a11y-improvements-6189641365088091102 🎨 Palette: Workspace and Editor Accessibility & Interactivity Improvements
Merge branch 'main' into palette/ux-a11y-improvements-6189641365088091102
Restore Notes platform contract routes
fix: support Vercel alias compliance status
fix: support Vercel alias compliance status
feat: expose canonical route compliance
chore: reconcile and restore pnpm build
Merge pull request #7 from mbarbine/bolt/memoize-learning-sidebar-11302930428037821795 ⚡ Bolt: Memoize filtering logic in LearningSidebar
Merge pull request #6 from mbarbine/palette-create-notebook-a11y-9901035904520732370 🎨 Palette: Couple label and input in Create Notebook dialog
Merge pull request #5 from mbarbine/jules-14463860781718061183-06e8b1b0 ⚡ Bolt: optimize sidebar note sorting and tag filtering
Merge pull request #4 from mbarbine/palette/learning-sidebar-a11y-17259661445851026700 🎨 Palette: Improve label-input accessibility on Edit Definition form
Merge pull request #3 from mbarbine/bolt/sidebar-memo-group-by-2425647100872791430 ⚡ Bolt: Optimize NotebooksSidebar with memoization and O(N) grouping lookup
fix: declare canonical platform sources
fix: canonicalize Note domain identity
fix: canonicalize Note domain identity
feat: make Notes Aurora and Trace observable
feat: make Notes Aurora and Trace observable