State of the vault · internal report

Shared, governed memory for the team and its AI agents.

Railway + PyPIWindow: v0.2.0 → v0.5.0
Numbers
What is deployed, what shipped from v0.2.0 to v0.5.0, and what is still open.
Roadmap
A GitHub App and structured knowledge are still in design.
01 · Current state

Where things stand today

Health and scale. The live tiles below refresh from the running node each time this page loads; the rest are dated measurements, and the line under them says when each was taken.

v0.5.0
deployed on Railway
—
GitHub org sync
12
releases shipped (v0.1.0 → v0.5.0)
24
MCP tools for agents
~$38/mo
to self-host, measured 2026-08-14
269 ms
median search round-trip, from a client
System healthfrom /api/state
Node
Checking
Version
v0.5.0
Sources
—
Indexing
—

Live tiles pull from /api/state. MCP tools refresh on every load. Releases are as of v0.5.0, 2026-08-14.

Cost is a 2026-08-14 snapshot of 24-hour Railway averages for Citadel-Archive and Qdrant, via the repo's bench harness. A trailing-7-day window the same day is nearer $58. The 269 ms round-trip is still 2026-07-31; a 2026-08-14 rerun did not complete a successful search, so that figure was not replaced. Re-running cost_model.py reprints today's written averages; search_bench.py really does re-measure when the token can search.

02 · Shipped & live

What you can use right now

The capabilities that are in production today. The three you'll touch most are session sharing, autonomous capture, and Linear sync.

Shared Session Context

SessionEnd distills how you approached a problem into a private Session Trace. Hit a dead end worth flagging? citadel_share_session shares a redacted, compacted version to a shared dataset.

reference-only · never promotes

Autonomous ingestion

A git pre-push hook and Claude Code SessionEnd hook snapshot work to your Node. Both are fail-silent. A scheduled evolve cycle folds GitHub, Linear, and repo content into the graph.

hooks + scheduled evolve

Linear sync

The full workspace syncs to Central; issues assigned to you mirror into your Node as a Seat-Scoped Mirror, so an agent answers "what do I need to do?" from your memory.

workspace → Central · yours → Node

Knowledge Mesh & portal

A web UI renders org knowledge as a concept map and a live sync/search/ingest timeline. Portal Phase 1: paste your token, land on My Node (stats, checklist, deep links).

Pixel Bastion brand · caller-scoped
▸How Shared Session Traces actually workGo deeper

Shipped in v0.4.0. The goal: let the team learn from each other's dead ends without exposing anyone's raw private working memory.

  • Explicit only. SessionEnd always writes a private Node trace (light tier). Sharing is a deliberate call (citadel_share_session or POST /api/share-session) and requires an Approved Capture Root (server-side cwd check).
  • Compact Session Context. The client distills + redacts the trace; the server runs an LLM dead-end refinement only when real tool-error pairs exist, then dual-writes to your Node and the shared session-traces dataset.
  • Deferred cognify (~5–15 min, coalesced): sharing doesn't block the tool call, and your private Node memory is never enriched.
  • Trust demotion. Default citadel_search includes traces with a reference-only tag. Traces never promote to Central and never feed the daily improve loop.
▸The autonomous ingestion pipelineGo deeper

Zero per-session ceremony. Three capture paths feed your Node; one scheduled cycle keeps Central fresh.

Capture (→ your Node)

  • git pre-push hook: a commit-metadata snapshot on every push from an Approved Capture Root.
  • SessionEnd hook: distills a coding session and posts it to your seat. Reuses the one token you already set. HTTPS-only, refuses redirects, fail-silent.
  • citadel capture: summarizes each approved root (git metadata + README, never raw files).

Evolve (→ Central, scheduled)

  • GitHub org digest + repo content sync + Linear sync run as staged subprocesses, then cognify runs in-loop on the web service, the single Kuzu writer. Default interval is six hours (evolve_interval_seconds).
03 · Release history

v0.2.0 → v0.5.0

Every tag shipped to PyPI and deployed to Railway. Expand any release for its full notes.

▸v0.5.02026-08-14 · latestAsync ingest, dataset-scoped graph, and capture deny globs.
  • Async ingest is the default: citadel ingest and MCP citadel_ingest return once the Node stores the note (queued_not_confirmed). Inline cognify is opt-in.
  • Dataset-scoped graph and chunk reads: /api/mesh/graph?dataset= narrows the graph before the node cap. /api/documents/{id}?scope=chunk returns the clicked chunk's own text.
  • Capture deny globs: org defaults now apply at ingest and pre-push, so a path such as .env is refused rather than JSON-only.
  • Public stamp: shipped pages and citadel --version report v0.5.0. Self-host cost stays ~$38/mo.
▸v0.4.12026-08-06Indexing repair, retrieval gates, and the Next migration boundary.
  • Indexing repair safety: zero-chunk and oversized-document census and repair paths, journaled phases, rollback, source-backed recovery, and a cross-process repair lease.
  • Retrieval verification: chunk-budget enforcement, frozen benchmark fixtures, literal-ranking checks, and failure gates for transport and trust.
  • Next migration groundwork: reproducible static export, runtime build identity, and functional search, sources, and graph previews behind /next.
  • Release controls: package artifact checks, DCO and secret scanning, stable CI aggregation, and operational diagnostics.
▸v0.4.02026-07-22Shared team memory, the seat portal, and a real brand.
  • Shared Session Traces v1: explicit in-session share via MCP + /api/share-session; Compact Session Context, reference-only in search, deferred cognify.
  • Multi-agent policy on onboard: the same agent policy installed to AGENTS.md, Cursor, Windsurf, GEMINI.md, and Claude Code.
  • Seat portal Phase 1: members log in and land on "My Node" with doc counts, activity, and a checklist.
  • Pixel Bastion brand + analytics panels: CLI mark, README banner, favicon, dashboard chrome; CSP-safe charts.
  • Security: Obsidian vaults enforce ownership; /api/knowledge/events and /feedback are now caller-scoped; pip-audit CI gate.
▸v0.3.02026-07-16Read-side privacy release + graph legibility.
  • Mesh read isolation: graph, activity, and document drill-down are caller-scoped; seat presence stays universal.
  • Knowledge Mesh reads as a concept map: per-hub aggregation, human labels, drill-down, kind-filter legend.
  • citadel activity: dev-side view of your vault; --watch and a --global seat-presence board.
  • Agent-onboarding hardening: seat-bound token mandate, headless SKILL runbook, --json error parity.
▸v0.2.2 – v0.2.32026-07-02 · 07-07Onboarding & token friction, removed.
  • Seat-bound token minting: token create --seat inherits the seat's role and private dataset; interactive picker replaces the service-account footgun.
  • citadel token set + citadel update: rotate a token or self-update without re-running onboard; stale-shell auth hints tell you the actual fix.
▸v0.2.0 – v0.2.12026-06-29Top-to-bottom CLI DX overhaul (PyPI + Railway).
  • Seat-scoped ingest that works: ingest/search HTTP-backed by default and routed to your seat; inline cognify makes notes searchable immediately.
  • First-run onboarding + multi-tool MCP: citadel mcp add wires Cursor, Codex, Gemini, Windsurf; guided first run; citadel doctor repairs setup drift.
  • Seat / token commands + faster status: concurrent health checks; the old TUI folded into citadel status.
  • Evolve cadence 6h → 1h: GitHub / Linear / repo sync + cognify now run hourly.
04 · The road ahead

What's next

Some of this is still in design. Nothing here is claimed as a PyPI release unless it has a version in the history above.

In designBrainstorming
In design

GitHub App: PR context injection + verifying checks

A GitHub App that injects relevant vault context into pull requests and runs verifying checks as a PR status, kept in sync with Linear and other connected apps, so a review sees the same knowledge an agent would. Not built yet.

In design

Structured Knowledge: own the representation

Make durable, first-class Structured Knowledge the source of truth Citadel owns, with the retrieval layer demoted to a rebuildable index. Plus a retrieval eval harness (citadel bench) and vault lint (citadel lint).

Brainstorming

Digest bot and more delivery surfaces

A daily Organization Update Digest to one chat space, plus extra gateways (Agent Messenger, Slack, email, webhook) off the same update-agent contract. Outbound-only in Phase 1. Silent on quiet days.