forked from jason/echo
Phase 4: shared-write hardening + group lenses
- vault_lock gains bounded retry/backoff (CHORUS_LOCK_RETRIES=4, CHORUS_LOCK_BACKOFF=0.5s); atomic_index_update and recall-index upkeep retry acquisition — unlocked fallback only after exhausted retries, loudly, so an already-written note is never stranded unindexed. - Duplicate-gate candidates carry the existing note's author; STOP message says whose entity the capture collided with. - recall --author <member> filters hits + linked context to one member's notes; recall briefs and --json surface the author: stamp. - load --all-members appends a group-wide view (every member's scope + last-session heartbeat); roster parsing accepts folders as trailing-slash file entries (the REST API's actual shape). - operating-contract.md concurrency section rewritten for N members. - Two-member e2e suite committed as eval/test_multimember.py (26 checks incl. all four Phase-4 behaviors). - Manifest -> 2.0.0-alpha.4; rebuilt chorus-memory.plugin. Verified: 25/25 unit, scaffold, routing-sync, 5 mock e2e suites (incl. new multimember), run_eval metrics unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -64,7 +64,7 @@ All paths below are under `${CLAUDE_PLUGIN_ROOT}/skills/chorus-memory/`. **Invok
|
||||
```bash
|
||||
CHORUS="${CLAUDE_PLUGIN_ROOT}/skills/chorus-memory/scripts/chorus.py" # call as: python3 "$CHORUS" <cmd> ...
|
||||
[ -f "$CHORUS" ] || CHORUS=$(ls /sessions/*/mnt/.remote-plugins/*/skills/chorus-memory/scripts/chorus.py 2>/dev/null | head -1) # CoWork sandbox fallback
|
||||
python3 "$CHORUS" load # cold-start: the 8 orientation reads in one call
|
||||
python3 "$CHORUS" load [--all-members] # cold-start: the 8 orientation reads (+ optional every-member scope/last-session view)
|
||||
python3 "$CHORUS" get <path> # 404 -> exit 44
|
||||
python3 "$CHORUS" ls <dir> ; python3 "$CHORUS" map <path> # listing / document-map
|
||||
python3 "$CHORUS" search <terms...>
|
||||
@@ -166,7 +166,7 @@ Keep the reconcile to a single short line to the operator (e.g. "3 inbox capture
|
||||
**If a specific topic/project/person is in play**, pull its connected context in one call:
|
||||
|
||||
```bash
|
||||
python3 "$CHORUS" recall "<topic or title>" # the matching notes AND their one-hop neighbourhood
|
||||
python3 "$CHORUS" recall "<topic or title>" [--author <member>] # matching notes + one-hop neighbourhood (optionally one member's only)
|
||||
```
|
||||
|
||||
`recall` resolves the term against the entity index, searches, and expands one hop along `## Related` links and `source_notes` — so you get the project note *plus* its linked decisions, people, and prior sessions, not an isolated file. (If you only need the canonical path, `resolve "<title>"` is the O(1) lookup.)
|
||||
|
||||
Reference in New Issue
Block a user