feat(workspace): metadata-driven indexing/hygiene, document versioning, and patch support

Foundation for the extensible frontend system. Workspace documents now
support metadata flags (skip_indexing, skip_versioning, hygiene config)
via folder-level .config documents and per-file overrides, replacing
hardcoded hygiene targets and indexing behavior.

Key changes:
- DocumentMetadata type with resolution chain (doc → folder .config → defaults)
- Document versioning: auto-saves previous content on write/append/patch
- Workspace patch: search-and-replace editing via memory_write tool
- Hygiene rewrite: discovers cleanup targets from .config metadata
  instead of hardcoded daily/ and conversations/ directories
- memory_read gains version/list_versions params
- memory_write gains metadata/old_string/new_string/replace_all params
- V14 migration adds memory_document_versions table (both PG + libSQL)

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This commit is contained in:
2026-03-28 00:28:32 -07:00
co-authored by Claude Opus 4.6
parent 2f4eb08613
commit 7532065590
15 changed files with 1585 additions and 288 deletions
+2 -4
View File
@@ -955,8 +955,7 @@ mod tests {
let hygiene_config = HygieneConfig {
enabled: false,
daily_retention_days: 30,
conversation_retention_days: 7,
version_keep_count: 50,
cadence_hours: 24,
state_dir: _tmp.path().to_path_buf(),
};
@@ -1002,8 +1001,7 @@ mod tests {
let hygiene_config = HygieneConfig {
enabled: false,
daily_retention_days: 30,
conversation_retention_days: 7,
version_keep_count: 50,
cadence_hours: 24,
state_dir: _tmp.path().to_path_buf(),
};