- add external retrieval and confirmation-gated writeback tools across MCP surfaces
- port direct-search-first retrieval support and supporting ranking/query updates
- update MCP docs and skills to treat agent memory files as optional reinforcement
Generated with Claude Code
- 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>
- 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>
Clarifies get_context vs start-here hierarchy ("also" keyword).
Adds batch/result limits to rah_get_nodes, rah_search_nodes,
rah_query_edges descriptions. Adds title length to rah_add_node.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds immutable "start-here" system guide as the master orientation doc
for agents. Enriches all tool descriptions with key rules at point of
use so agents can execute simple tasks without reading guides.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds full guide system to MCP standalone server. System guides (schema,
creating-nodes, edges, dimensions, extract) are bundled and immutable.
Users can create up to 10 custom guides via rah_write_guide. Syncs guide
infrastructure from main repo to OS repo app code.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
All 3 doc files now list all 12 tools including rah_get_context and
rah_update_edge. Fixed local dev path (was stdio-server.js, now index.js).
Added "What to Expect" sections explaining proactive behavior.
Removed "run app first" requirement since DB auto-creates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Single source of truth: OPENAI_API_KEY in .env.local. Deleted the
apiKeyService class/singleton that stored keys in localStorage.
All server code reads process.env directly. FirstRunModal and
Settings now show .env.local instructions instead of key input.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Changed from old stdio-server.js path to npx ra-h-mcp-server
- Added local development alternative
- Fixed tool list (removed rah_update_edge, added rah_list_dimensions)
- Added HTTP method section for real-time UI updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added apps/mcp-server-standalone/ with direct SQLite access
- Works without RA-OS app running
- Install via: npx ra-h-mcp-server
- Updated docs/8_mcp.md with setup instructions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename all tools to rah_* prefix (generic, not Latent Space specific)
- Update server info to be generic RA-H branding
- Add optional write tools behind MCP_ALLOW_WRITES=true env var:
- rah_add_node, rah_update_node
- rah_create_edge, rah_update_edge
- rah_create_dimension, rah_update_dimension, rah_delete_dimension
- Read tools always enabled: rah_search_nodes, rah_get_nodes,
rah_query_edges, rah_list_dimensions
- No embedding search (disabled by DISABLE_EMBEDDINGS on hosted deployments)
This makes the HTTP MCP endpoint a general feature of ra-h_os that any
deployment can use, not specific to Latent Space Hub.
- Remove entire workflow system (API routes, services, tools, components)
- Add guides system from main ra-h repo (for external agent integration)
- Update pane types: 'workflows' → 'guides' throughout
- Update LeftToolbar to show guides icon instead of workflows
- Update SettingsModal with GuidesViewer tab
- Add GuidesPane for browsing guides in main UI
- Clean up prompts to remove workflow references
- Update tool registry to remove workflow tools
- Add gray-matter package for frontmatter parsing
Guides are essential for RA-H Light as they help external agents
(via MCP) understand the knowledge base context and usage patterns.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename to RA-H Light
- Describe as knowledge management backend for AI agents
- Add MCP integration section with Claude Code setup
- List all 11 available MCP tools
- Remove references to chat agents, voice, 3-panel interface
- Keep essential sections: quick start, project layout, commands, docs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>