Commit Graph
118 Commits
Author SHA1 Message Date
“BeeRad”andClaude Sonnet 4.6 bf175ad125 feat: add persistent light/dark mode toggle
- 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>
2026-03-17 19:32:06 +11:00
“BeeRad”andClaude Sonnet 4.6 4802187f5e fix: resolve MCP output validation errors in HTTP server
- 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>
2026-03-17 19:18:18 +11:00
“BeeRad” 7444599817 fix: harden external link navigation in the web app
- 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
2026-03-17 18:20:37 +11:00
“BeeRad” 213c054c9f feat: sync pane workspace overhaul from private repo
- 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
2026-03-17 18:20:20 +11:00
“BeeRad” 0776bccdbd Merge branch 'feature/skill-use-button-os' 2026-03-15 16:24:03 +11:00
“BeeRad” 5997dead5d feat: polish skills pane ui
- share skill card and markdown rendering
- clean up skill detail layout and scroll reset
- remove nested interactive card structure
2026-03-15 16:02:47 +11:00
“BeeRad” 761cb045e0 Merge branch 'docs/process-sync-status' 2026-03-15 14:59:41 +11:00
“BeeRad” b34c787147 docs: note current synced status in os process doc
- record the march 15 sync scope on main
- add the local better-sqlite3 rebuild note for contributors

Generated with Codex
2026-03-15 14:59:41 +11:00
“BeeRad” 4ea3f854db Merge branch 'codex/os-sync-runtime-search-quality' 2026-03-15 14:55:51 +11:00
“BeeRad” 4c75df101f feat: sync runtime search and schema quality updates from app repo
- 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
2026-03-15 14:55:45 +11:00
“BeeRad” 053c163e31 docs(product): update user docs to skills-first and current MCP tools 2026-03-07 13:48:00 +11:00
“BeeRad” bc226b03c8 cleanup(skills): remove legacy guide bundle and harden skill migration/pruning 2026-03-07 12:00:52 +11:00
“BeeRad” b67a789740 feat(ui): add skills pane in left nav and wire skills api/service 2026-03-07 11:53:55 +11:00
“BeeRad” 2cdd685c04 sync: skills and tool contract overhaul from private repo 2026-03-07 11:45:26 +11:00
“BeeRad” 46ac8d9bde docs: update process and contributor guidance 2026-03-07 11:44:27 +11:00
“BeeRad”andClaude Opus 4.6 467a588713 docs: fix video thumbnail — use hqdefault (maxresdefault 404s)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:24:16 +11:00
“BeeRad”andClaude Opus 4.6 702e96fe50 docs: add demo video to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:07:14 +11:00
“BeeRad”andClaude Opus 4.6 034c9bf0dc readme: add macOS-only callout and expand Linux/Windows install steps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:32:58 +11:00
“BeeRad”andClaude Opus 4.6 7c6197fc0d fix: MCP servers — broken INSERT into dropped type column, stale content refs
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>
2026-02-16 09:16:51 +11:00
“BeeRad”andClaude Opus 4.6 2f6518207d sync: multiple features from private repo
- quick-add-loading: fire-and-forget with loading placeholders, auto-open feed, SSE events, QuickAddInput redesign
- database-table-pane: TablePane + DatabaseTableView, countNodes(), event_date sort
- ui-polish-fixes: focus tab order, dim name editing, tab title sync, cost chip removal, custom sort drag-reorder, refresh button, dimension filter removal (~2,200 lines)
- node-creation-quality: description service prompt rewrite, title sanitization, extraction tool AI prompt rewrites
- feed-pane-ux: stripped kanban/grid/saved views, sort dropdown, AND dimension filtering, description preview

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:57:32 +11:00
“BeeRad”andClaude Opus 4.6 9954792b1d sync: temporal-awareness from private repo
- 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>
2026-02-15 14:34:55 +11:00
“BeeRad”andClaude Opus 4.6 0095641278 sync: chunk-embedding-audit — fix Sync to Source button visibility
- Show button when notes exist (not just when chunk exists)
- Synced from private repo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:35:59 +11:00
“BeeRad”andClaude Opus 4.6 2940e142c8 sync: feed pane UX from private repo
- 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>
2026-02-15 13:19:42 +11:00
“BeeRad”andClaude Opus 4.6 86f43c9975 feat: final schema pass — sync 9 schema changes from main repo
- Rename nodes.content → nodes.notes across all services, tools, API routes, and UI
- Add dimensions.icon column support (GET/POST routes, types)
- Add nodes.event_date column (create/update flows, types)
- Drop nodes.type and nodes.is_pinned references
- Drop edges.user_feedback references
- Drop chat_memory_state table (replaced with DROP IF EXISTS in migration)
- Update schema guide files (system/schema.md)
- Add runtime migration block in sqlite-client.ts for existing databases
- Fix MCP tool schemas (external API keeps 'content' param, maps to 'notes' internally)
- Update standalone MCP server (nodeService.js, sqlite-client.js, index.js)
- Update HTTP MCP server (server.js, stdio-server.js)
- Update all extraction tools (paper, website, youtube)
- Update all UI components (FocusPanel, ThreePanelLayout, GridView, ListView, FolderViewOverlay)
- TypeScript: 0 errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:53:52 +11:00
“BeeRad”andClaude Opus 4.6 1d323de11a fix: edges tab truncation and layout polish
- 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>
2026-02-15 09:28:01 +11:00
“BeeRad”andClaude Opus 4.6 f7374590d9 refactor: move edges from modal to dedicated tab in FocusPanel
- 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>
2026-02-15 09:22:04 +11:00
“BeeRad”andClaude Opus 4.6 c23b743580 refactor: move guides from left toolbar to settings
- 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>
2026-02-15 09:10:38 +11:00
“BeeRad”andClaude Opus 4.6 d723212ed3 sync: contextual substrate UX from private repo
- 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>
2026-02-15 08:55:47 +11:00
“BeeRad”andClaude Opus 4.6 d6987a3dc1 fix(mcp): v1.4.1 — add Node version check and better-sqlite3 error handling
- 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>
2026-02-10 15:58:21 +11:00
“BeeRad”andClaude Opus 4.6 0cb9a24327 docs: add rah_search_content and rah_sqlite_query to README tool table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:54:53 +11:00
“BeeRad”andClaude Opus 4.6 ec3ab74efe feat(mcp): v1.4.0 — FTS5 search, chunk truncation, FTS rebuild on startup
- 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>
2026-02-10 15:26:51 +11:00
“BeeRad”andClaude Opus 4.6 d1b63ea7bb fix: remove backlog from ralph/prd.json — belongs in ra-h backlog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 16:24:34 +11:00
“BeeRad”andClaude Opus 4.6 d5759e63a4 docs: clean up backlog — remove fabricated items, keep only real tasks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:06:24 +11:00
“BeeRad”andClaude Opus 4.6 efb1704cbf docs: add B7 (rename content→notes) and B8 (temporal awareness) to backlog
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>
2026-02-08 12:58:37 +11:00
“BeeRad”andClaude Opus 4.6 918ef637a7 docs: update PRD with phase 2 completion and add backlog
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>
2026-02-08 12:56:08 +11:00
“BeeRad”andClaude Opus 4.6 549476274d feat: separate guides into system and custom sections
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>
2026-02-08 12:51:44 +11:00
“BeeRad”andClaude Sonnet 4.5 7bf94d4c61 docs: update What to Expect sections with guides and proactive capture
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>
2026-02-08 12:29:25 +11:00
“BeeRad”andClaude Sonnet 4.5 0577ec727d fix: strengthen proactive knowledge capture in MCP instructions
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>
2026-02-08 11:42:13 +11:00
“BeeRad”andClaude Sonnet 4.5 e6c8c21f1f fix: tighten MCP instructions and tool description constraints
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>
2026-02-08 11:38:26 +11:00
“BeeRad”andClaude Sonnet 4.5 ed82a85fa9 feat: add start-here master guide + enriched tool descriptions
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>
2026-02-08 11:30:53 +11:00
“BeeRad”andClaude Sonnet 4.5 be675be4e0 feat: MCP server v1.2.0 — guide system + read/write guide tools
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>
2026-02-08 11:15:13 +11:00
“BeeRad”andClaude Opus 4.6 2465e7562c docs: update MCP docs — add rah_get_context, fix local path, auto-create DB
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>
2026-02-08 10:04:15 +11:00
“BeeRad”andClaude Opus 4.6 143587ebf1 feat: MCP server v1.1.0 — proactive knowledge capture, context tool, auto-create DB
Rewrite instructions to encourage proactive capture, add rah_get_context
orientation tool (hub nodes, dimensions, stats), add rah_update_edge,
improve tool descriptions, auto-create database on first connection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 09:59:27 +11:00
“BeeRad”andClaude Opus 4.6 3b04a1bad0 fix: move API keys to .env.local, remove localStorage dual system
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>
2026-02-06 11:46:41 +11:00
“BeeRad” 49ff3678a3 docs: clarify Node 20+ requirement, MCP setup, restart instructions 2026-02-02 15:41:29 +11:00
“BeeRad” 9099b20735 fix: correct docs URL to ra-h.app/docs/open-source 2026-02-02 15:21:52 +11:00
“BeeRad”andClaude Opus 4.5 7beba57f63 fix: fast node creation, first-run modal, simplified docs
- Skip AI calls when no valid OpenAI key (fixes 9-13s timeout)
- Add first-run modal prompting for API key
- Rewrite README for first-time users
- Add /api/health endpoint
- Remove all Anthropic references (not used in OS)
- Fix bootstrap script (dev:local → dev)
- Fix next.config.js devIndicators warning
- Add Node 18+ version check

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 15:10:46 +11:00
“BeeRad”andClaude Opus 4.5 38386afea4 docs: add Mermaid ER diagram to schema docs
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 10:32:35 +11:00
“BeeRad”andClaude Opus 4.5 e8b16e8f50 fix: update all docs with correct MCP setup (npm package)
- docs/0_overview.md - npm config instead of stdio path
- docs/README.md - npm config instead of stdio path
- docs/4_tools-and-guides.md - added standalone server to key files
- docs/8_mcp.md - already updated in previous commit

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 09:53:57 +11:00
“BeeRad”andClaude Opus 4.5 fbbfb737ce fix: update README with correct MCP setup (npm package)
- 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>
2026-02-02 09:50:44 +11:00