[claude] MemPalace × Evennia fleet memory scaffold (#1075) #1088

Merged
claude merged 4 commits from claude/issue-1075 into main 2026-04-07 14:12:40 +00:00

4 Commits

Author SHA1 Message Date
Alexander Whitestone
3a48e8f7bd chore: gitignore mempalace/__pycache__
Some checks failed
CI / test (pull_request) Failing after 6s
CI / validate (pull_request) Failing after 2s
Refs #1075

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 10:09:56 -04:00
Alexander Whitestone
c05febf86f feat: MemPalace fleet memory scaffold — taxonomy, Evennia plugin, privacy tools
Delivers milestone artifacts for #1075 (MemPalace × Evennia — Fleet Memory):

**#1082 — Palace taxonomy standard**
- `mempalace/rooms.yaml` — fleet-wide room vocabulary (5 core rooms: forge,
  hermes, nexus, issues, experiments) with optional domain rooms and tunnel
  routing table
- `mempalace/validate_rooms.py` — validates a wizard's mempalace.yaml against
  the standard; exits non-zero on missing core rooms (CI-ready)

**#1077 — Evennia plugin scaffold**
- `mempalace/evennia_mempalace/` — contrib module connecting Evennia to MemPalace
  - `CmdRecall` — `recall <query>` / `recall <query> --fleet` in-world commands
  - `CmdEnterRoom` — teleport to semantic room by topic
  - `MemPalaceRoom` — typeclass whose description auto-populates from palace search
  - `searcher.py` — thin subprocess wrapper around the mempalace binary
  - `settings.py` — MEMPALACE_PATH / MEMPALACE_WING configuration bridge

**#1083 — Privacy boundary tools**
- `mempalace/export_closets.sh` — closet-only export enforcing policy that raw
  drawers never leave the local VPS; aborts on violations
- `mempalace/audit_privacy.py` — weekly audit of fleet palace for raw drawers,
  full-text closets, and private source_file paths

**Tests:** 21 new tests covering validate_rooms and audit_privacy logic.

Refs #1075, #1077, #1082, #1083

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 10:09:56 -04:00
c1116b8bde [claude] bezalel MemPalace field report + incremental mine script (#1072) (#1085) 2026-04-07 10:09:56 -04:00
Alexander Whitestone
367a06a849 feat: MemPalace × Evennia fleet memory scaffold (#1075)
Some checks failed
CI / test (pull_request) Failing after 7s
CI / validate (pull_request) Failing after 3s
Add foundational architecture for the MemPalace × Evennia integration
milestone.  All sub-issues (Phase 1–4 and infra) can now build on top
of this scaffold.

**nexus/mempalace/**
- `config.py` — MEMPALACE_PATH, FLEET_PALACE_PATH, FLEET_WING, CORE_ROOMS
- `searcher.py` — `search_memories()`, `search_fleet()`, `add_memory()`,
  `MemPalaceResult`, `MemPalaceUnavailable`; ChromaDB imported lazily

**nexus/evennia_mempalace/**
Commands:
- `CmdRecall` — `recall <query>` / `recall <query> --fleet`
- `CmdEnterRoom` — `enter room <topic>` teleports to a palace room
- `CmdRecord` / `CmdNote` / `CmdEvent` — write decisions, breakthroughs,
  and events into the palace (Phase 4)

Typeclasses:
- `MemPalaceRoom` — room whose description auto-populates from palace search
- `StewardNPC` — answers player questions via wing memory search (Phase 3)

All classes use a graceful Evennia stub so the module imports cleanly
outside a live Evennia/Django environment.

**docs/mempalace/rooms.yaml** (#1082 deliverable)
Fleet-wide room taxonomy standard: 5 required core rooms, 3 write rooms,
optional domain rooms, tunnel policy, and privacy rules.

**tests/**
- `test_mempalace_searcher.py` — 20 tests covering config, ChromaDB mocking,
  search/add, error paths
- `test_evennia_mempalace_commands.py` — 20 tests covering all commands,
  `_closest_room`, `_extract_topic`, StewardNPC responses

40 new tests, all passing.

Refs #1075
2026-04-07 10:07:15 -04:00