- 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>
- Add 'edges' to content tab bar (Notes | Desc | Edges | Source)
- Edges tab shows count badge, has Create/Cancel toggle for search
- Replace full-screen connections modal with inline tab content
- Search input appears conditionally via edgeSearchOpen state
- Connections button near title now switches to edges tab
- Remove ~400 lines of modal overlay code
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove guides from LeftToolbar pane type buttons
- Remove 'guides' from PaneType union and PANE_LABELS
- Remove GuidesPane from pane exports and ThreePanelLayout rendering
- Add migration to reset persisted slots that had type 'guides'
- Guides remain accessible via Settings modal (GuidesViewer tab)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add DimensionIconsContext for app-wide dimension icon sharing
- Enhanced getNodeIcon() with favicon/YouTube/PDF detection + dimension icons
- Propagate dynamic icons to GridView, ListView, SearchModal, FocusPanel, ViewsOverlay, FolderViewOverlay
- Add RahEdge component with hover labels for map edges
- Update RahNode with dimension-colored borders and icon support
- Add MiniMap with dimension color coding to MapPane
- MCP server: add description field to rah_update_node, bump standalone to v1.4.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Check Node version on startup, exit with clear message if >=24
- Catch better-sqlite3 load failure with actionable error message
- Cap engines to node >=18 <24 in package.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Switch rah_search_nodes and rah_search_content from LIKE to FTS5 with word-split LIKE fallback
- Rebuild nodes_fts and chunks_fts indexes on server startup
- Cap chunk field at 10K chars in rah_get_nodes (adds chunk_truncated, chunk_length)
- Multi-word queries now work ("Tesla manufacturing" finds both words anywhere)
- Relevance-ranked results when FTS available
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
B8 includes research into datetime column vs metadata approach,
schema migration considerations for packaged Mac app, and MCP
temporal querying patterns. Depends on B7.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add phase 2 (MCP guides) stories 16-19 as completed. Restructure PRD
into phases with a backlog section. Add B5 for MCP stress testing and
efficiency audit.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add system/custom guide separation with section headers, lock icons,
delete functionality for custom guides, and usage counter.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All 3 doc files now describe the propose-a-node pattern, guide system,
and updated orientation flow.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Replaces generic "offer to save" with specific triggers and the
propose-a-node pattern for minimal-friction approval.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>