From 0186e220093edcd420482fa3f9e2e7fea61d4b92 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sun, 12 Apr 2026 01:02:23 +0200 Subject: [PATCH] Address spec review recommendations Add out-of-scope section (mobile, multi-provider, marketplace, OIDC), integration boundaries (Seshat's Library, Stalwart, Forge APIs), VM default retention policy (destroy by default), and JMAP push preference. --- .../specs/2026-04-12-anima-system-design.md | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/specs/2026-04-12-anima-system-design.md b/docs/superpowers/specs/2026-04-12-anima-system-design.md index 2c23dd0..e250aea 100644 --- a/docs/superpowers/specs/2026-04-12-anima-system-design.md +++ b/docs/superpowers/specs/2026-04-12-anima-system-design.md @@ -326,7 +326,7 @@ Work Item needs heavy work → Agent writes to discussion thread as its Akh → Session is long-running, persists while work item is open → Admin can LoginSession to SSH in and inspect/debug (audit logged) - → When work completes or is stopped: VM can be kept or destroyed + → When work completes or is stopped: VM destroyed by default (configurable to keep for debugging) ``` ### Capabilities @@ -506,3 +506,29 @@ anima/ - Git operations (clone, commit, push) only happen inside agent VMs (heavy work) - Patches and documents are attachments stored in Seshat's Library for AI ingestion - AI reads forge data via MCP when needed during agent sessions + +## Out of Scope (v1) + +- **Mobile**: The project brief envisions mobile as a "quick response on the go" UI. Not in v1. +- **Multi-provider agent orchestration**: v1 runs a single agent provider. Multi-provider scheduling is a future expansion. +- **Workflow marketplace**: v1 ships defaults and allows custom workflows. Marketplace comes later. +- **OIDC/SSO**: v1 uses username/password. Federation is future work. + +## Integration Boundaries + +### Seshat's Library + +Seshat's Library is a **separate running service** with its own API. anima-server communicates with it as an external dependency (like PostgreSQL or Stalwart), not as a linked crate. It provides: +- Blob storage for files, patches, attachments +- Vector embeddings (pgvector) for AI-searchable document library +- Its own API surface that anima-server calls into + +### Stalwart + +anima-mail connects to Stalwart via two interfaces: +- **JMAP** for reading/sending mail (prefer JMAP EventSource push over polling where available) +- **Admin REST API** for mailbox lifecycle management + +### Forge APIs + +PR/issue metadata is fetched **on-demand** when viewing a work item or repository, not continuously polled. Webhooks can be added later for real-time PR status updates if needed.