- enforce canonical dimensions across app and MCP surfaces
- prioritize title-first node search in UI and query tools
- add regression tests for ranking and dimension validation
- increase base typography and relative date formatting
- add card polish, empty states, and skeleton loaders
- center the nodes pane content like the focus panel
- replace hardcoded dark colors in shared light mode components
- fix focused skill and inline node label readability in light mode
Generated with Codex
- Folder cards: off-black bg (--rah-bg-folder), compact 80px height
- Icon + name in footer, green pill badge for node count
- Description snippet shown below name when set
- Hover-only edit/delete actions
- Add --rah-bg-folder CSS variable to both themes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- make source the canonical field across os routes, tools, ui, and mcp
- align fresh-install schema, search, and embedding flows with source-first ingestion
Generated with Claude Code
Remove padlock button from dimensions pane, priority-toggle behaviour
from node dimension tags, and all supporting state/functions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Top actions (collapse/search/add/refresh) stay at top.
View items (nodes/skills/map/etc) sit in a flex:1 middle
section, vertically centered with a subtle top border separator.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SkillCard: hardcoded dark bg/border/text → CSS vars
- map-styles.css: migrate all hardcoded hex to CSS vars so map
canvas, nodes, edges, and minimap respond to theme
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace dark hex values with CSS custom properties across all panel,
card, modal, and focus components so light mode renders correctly.
Backgrounds, borders, and text colors now respond to data-theme attribute.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add CSS custom property token system to globals.css (dark + light variants)
- Add anti-FOUC inline script in layout.tsx head to apply stored theme before hydration
- Create useTheme hook (src/hooks/useTheme.ts) backed by usePersistentState
- Add Sun/Moon toggle button to LeftToolbar above Settings
- Wire useTheme into ThreePanelLayout and pass theme/onThemeToggle to LeftToolbar
- Migrate hardcoded hex values to CSS vars in LeftToolbar and ThreePanelLayout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename `content` → `notes` in searchNodes and getNodes output schemas
to match what the handlers actually return (was causing validation errors)
- Rename `schema` → `stats` key in rah_get_context outputSchema and
structuredContent return (schema key name confused MCP SDK validator,
caused getContext failures for external users like Linux)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- add a shared external-navigation guard at the document level
- route onboarding, markdown, settings, and node source links through one helper
- stop browser fallback code from replacing the current app page on failures
Generated with Codex
- ship the expanded left-nav and pane header workspace updates
- add dimension-driven browse flow, map view upgrades, and delete-node tooling
- expand eval coverage and refresh the public UI docs for the new layout
Generated with Codex
- port retrieval, validation, and eval improvements relevant to os
- align prompts and dimensions with the flat single-agent model
- replace the old eval suite with the focused core scenarios
Generated with Codex
The previous schema sync (86f43c9) was incomplete — it renamed variables
but left the SQL statements writing to `type` and `content` columns that
no longer exist in the schema. Fresh installs crash on first node create.
nodeService.js:
- Remove `type` from INSERT/UPDATE, replace with `event_date`
- Fix `content` → `notes` in INSERT values and UPDATE SET clauses
- Add `sanitizeTitle()` and chunk fallback logic
sqlite-client.js:
- Remove `is_pinned` from CREATE TABLE
- Add `description` and `icon` to dimensions table
index.js:
- Add temporal filter fields to search schema
- Improved description prompts
- Dynamic date injection in instructions
server.js + stdio-server.js:
- Add content→notes mapping in update handlers
- Fix output returning `notes` instead of `content`
- Add extraction tool schemas and handlers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Surface created_at, updated_at, event_date in queryNodes + queryDimensionNodes responses
- Add date range filters (createdAfter/Before, eventAfter/Before) to NodeFilters + nodeService.getNodes()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Strip kanban, grid, and saved views from ViewsOverlay (1103→631 lines)
- Add sort order dropdown (Updated/Edges/Created) with localStorage persistence
- Polish filter button, dropdown, and filter chips
- Switch to server-side dimension filtering with AND logic (dimensionsMatch=all)
- Add description preview and edge count to node cards
- Add 'created' sort option and dimensionsMatch param to types, service, API
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add minWidth: 0 on all flex containers to enable proper truncation
- Title now truncates with ellipsis instead of pushing panel out
- Explanation row truncates to single line with ellipsis and title tooltip
- Type chip has flexShrink: 0 + whiteSpace: nowrap to prevent wrapping
- Delete button uses compact × with flexShrink: 0 (inline, not separate)
- Edit input has minWidth: 0 to prevent overflow
- Remove expand/collapse (5-item limit) — show all connections in tab
- Tighter spacing (6px padding, 2px gap) matching private repo polish
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>