Rensei docs
Arch

Arch Review Dashboard

Operator arch review with 3 panels.

The Architectural Intelligence Review Dashboard gives platform operators a cross-tenant view of the knowledge graph: new observations as they arrive, deviations from established patterns grouped by project, and a histogram of how confident the system is in its current graph state.

This surface is operator-only (/admin/arch/review) and intentionally cross-tenant - operators see activity across all organizations in one place.

Overview

The dashboard queries three separate endpoints, each backed by createArchReviewSdk() in src/lib/arch/review.ts:

PanelAPI routeData source
Recent ObservationsGET /api/admin/arch/review/recentobservations table, last 24 h
Drift SummaryGET /api/admin/arch/review/drift-summarygraph_nodes where type='deviation'
Confidence HistogramGET /api/admin/arch/review/confidence-histogramgraph_nodes where type in pattern/convention/decision

Panel: Recent Observations

Shows a paginated feed of observations written to the knowledge graph in the last 24 hours, ordered newest first.

Filtering and pagination

ParameterTypeDefaultNotes
orgIdstring?null (all orgs)Restrict to a single tenant
sinceMsnumber?86400000 (24 h)Look-back window in milliseconds
limitnumber?50Max 200 per page
beforeISO-8601?nullCursor - createdAt strict upper bound

The endpoint uses a +1 fetch pattern: it fetches limit + 1 rows and returns the createdAt of the last row as nextCursor. Pass nextCursor back as before to get the next page without a separate COUNT(*) round-trip.

// GET /api/admin/arch/review/recent?limit=2
{
  "items": [
    {
      "id": "obs_...",
      "orgId": "org_...",
      "projectId": "proj_...",
      "agentId": "agent_...",
      "kind": "file_operation",
      "content": "Refactored auth middleware to use Cedar PEP...",
      "source": "session",
      "weight": 0.55,
      "createdAt": "2026-06-02T14:31:00.000Z"
    }
  ],
  "nextCursor": "2026-06-02T14:31:00.000Z",
  "limit": 2,
  "since": "2026-06-01T14:31:00.000Z"
}

Observation fields

Prop

Type

Panel: Drift Summary

Aggregates all graph_nodes rows of type='deviation' into a per-project breakdown with severity counts.

// GET /api/admin/arch/review/drift-summary
{
  "projects": [
    {
      "projectId": "proj_...",
      "projectName": "rensei-platform",
      "orgId": "org_...",
      "total": 7,
      "bySeverity": { "low": 2, "medium": 4, "high": 1 },
      "mostRecentAt": "2026-06-01T22:15:00.000Z"
    }
  ],
  "total": 7,
  "generatedAt": "2026-06-02T14:35:00.000Z"
}

Projects are sorted by total descending. A mostRecentAt of null means no deviations have been dated for that project.

Severity comes from the properties.severity field on each graph_nodes deviation row. Values not in low|medium|high are bucketed as medium.

Panel: Confidence Histogram

Counts graph nodes (patterns, conventions, decisions - deviations excluded) by their importance_weight column in five fixed buckets.

// GET /api/admin/arch/review/confidence-histogram
{
  "buckets": [
    { "min": 0.0, "max": 0.2, "label": "0.0-0.2", "count": 3 },
    { "min": 0.2, "max": 0.4, "label": "0.2-0.4", "count": 11 },
    { "min": 0.4, "max": 0.6, "label": "0.4-0.6", "count": 42 },
    { "min": 0.6, "max": 0.8, "label": "0.6-0.8", "count": 28 },
    { "min": 0.8, "max": 1.01, "label": "0.8-1.0", "count": 9 }
  ],
  "total": 93,
  "generatedAt": "2026-06-02T14:35:00.000Z"
}

A healthy graph clusters at 0.4-0.8. A large proportion of nodes at 0.0-0.2 indicates many low-signal observations that have not yet been corroborated by multiple agents.

Operator access

All three routes call requireOperator(). Authenticated users without the operator role receive a 403. There is no tenant-scoped version of this dashboard; project teams use the project-level /intelligence/arch/ routes instead.

On this page