feat(app): embed indexer in Electron with file-watching service and UI refinements
Extract schema DDL into scripts/schema.sql shared between CLI and app. Add an in-process chokidar-based indexer-service that watches ~/.claude/projects for JSONL changes, debounces, and triggers background rebuilds via a worker thread. Rename Usage view to Activity, flesh out MemoryDetail and SubagentDetail views, and refine App.vue layout/routing. The main process now starts/stops the indexer lifecycle and notifies renderer windows on index updates.
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
Advanced reference for the obelisk database.
|
||||
Read this when `search()`, `context()`, or `sql()` are not enough.
|
||||
|
||||
Executable schema source: `scripts/schema.sql`. This document explains that
|
||||
contract for agents and humans; it is not the runtime source of truth.
|
||||
|
||||
---
|
||||
|
||||
## 1. Database Schema
|
||||
@@ -215,6 +218,14 @@ CREATE TABLE index_state (
|
||||
);
|
||||
```
|
||||
|
||||
Sentinel rows use synthetic `jsonl_path` keys:
|
||||
`__last_build__` stores the last completed build time, `__app_heartbeat__`
|
||||
stores the optional app indexer's liveness heartbeat,
|
||||
`__app_last_successful_build__` stores the app's last successful index build,
|
||||
`__indexer_owner_app__` marks app ownership, and `__last_source_mtime__` records
|
||||
the newest indexed source mtime. Skill-side lazy builds skip work only while the
|
||||
app heartbeat and app successful-build marker are both fresh.
|
||||
|
||||
### memories
|
||||
|
||||
Human-approved markdown memory records registered in Obelisk. The markdown
|
||||
|
||||
Reference in New Issue
Block a user