State of the vault · internal report

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

Railway + PyPIWindow: v0.2.0 → v0.4.1

TL;DR: read this, skim the rest

This is the running node reporting on itself: what is deployed right now, what shipped across v0.2.0 → v0.4.1, and what is being built next. If you are new to Citadel, the home page covers what it is, how it's built, and how to start; this page is the numbers.

Across v0.2 → v0.4 we shipped zero-dependency onboarding, autonomous ingestion, Linear sync, read-side isolation, and Shared Session Traces (share a dead end, reference-only, without leaking private memory). Next: a GitHub App for PR context + checks, a Google Chat digest bot, and one central agent hub over all org knowledge. Every section below expands. Open the ones you care about.

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.4.1
deployed & healthy on Railway
GitHub org sync
11
releases shipped (v0.1.0 → v0.4.1)
22
MCP tools for agents
~$55/mo
to self-host, measured 2026-07-31
269 ms
median search round-trip, from a client

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

Both are snapshots from 2026-07-31, not live calls, and the method is in the repo's bench harness. The cost model carries that day's resource averages in its source, so re-running it reprints the figure rather than re-measuring it; the round-trip is re-measurable with search_bench.py, and being a client round-trip it reads higher than server-side timing does.

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. An hourly evolve cycle folds GitHub, Linear, and repo content into the graph.

hooks + hourly 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, hourly)

  • 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. Cadence went 6h → 1h in v0.2.1.
03 · Release history

v0.2.0 → v0.4.1

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

Commits per weekbrand-color bars = a release shipped that week
v0.4.12026-08-06 · latestIndexing 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

Honest status: some of this is in active design, some is still a sketch we're pressure-testing. Nothing here is claimed as shipped.

In designBrainstorming
Brainstorming

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. Direction sketched via the modular update-agent architecture; not built yet.

In design

One central agent hub

A single point of access to all org knowledge and context: an internal update agent plus hosted MCP consolidating GitHub, Citadel search, Linear, and future approved sources behind one contract. Repository boundary and initial contract are drafted.

In design

Google Chat digest bot

A daily Organization Update Digest to one Google Chat space: what changed, what's open, what merged, plus a cautious source-linked "Agent read." Outbound-only in Phase 1; app-auth and schedule are settled. Silent on quiet days.

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). This is how the vault stops depending on any one engine to hold the truth.

Brainstorming

Session Traces v1.1 + more surfaces

Retraction controls (citadel unshare, ~90-day TTL, admin hard-delete), overlap-ranked prior-work retrieval, and more delivery gateways (Agent Messenger, Slack, email, webhook) off the same update-agent contract.