m4/org/openalice-rtci failure

openalice-rt

[Atlas card](https://atlas.blal.pro/repos/openalice-rt) · Live at **`rt.blal.pro`**

Features
8
Status
·unknown
Last activity
1mo ago
Branch
mvp

Architecture rating

C+1mo ago
consistencyB

Manifest 100/100, drift 90, zero circular deps and zero dead imports, clean SpacetimeDB-style envelope substrate adopted uniformly (score 88, grade B) — only code_health 50 drags uniformity.

docsB

Valid manifest (100), 8 @feature annotations (features 84), AGENTS.md + README Atlas card + docs/ + R1-LOAD-VALIDATION.md/R1-PER-ROOM-CHANNELS.md design notes and a client-sdk — thorough, only missing inline API-contract depth.

testingC+

~40 tests spanning unit store (batch-atomic, delta-log, room isolation) and integration (WS subscribe/ping/unsub, reconnect catch-up, REST→WS delta, auth-rejected) incl. R1 load-validation chars — solid breadth, but latest CI run is RED so green status unverified.

data layerC

Owns wal_entries with WAL-backed commit; strong per-room tenant isolation (cross_room_isolation, room_index prune/track, global_seq_monotonic_across_rooms characterization tests), HLC for ordering — but no SQL migrations dir, no FK/constraint or GDPR/retention signal.

observabilityC

GET /health (live, 200, 100% 24h uptime) and GET /metrics both present and test-covered, but RUST_LOG is declared-yet-unused (env drift), casting doubt on whether structured logging/tracing is actually wired.

securityC-

Authn enforced — test_unauthenticated_request_rejected + ws_connect_anonymous prove auth gating on REST/WS; but /metrics exposed unauthenticated, and no evidence of rate-limiting, security headers, or secret-handling (SSRF/injection largely N/A for an in-memory state engine).

reliabilityC-

Batch-commit atomicity + reconnect catch-up + monotonic seq give idempotent recovery, but latest CI run = FAILURE (2026-06-16), code_health only 50/100, and no evidence of SIGTERM graceful shutdown, request timeouts, or retry policy.

source · auto-grader-2026-06-16

Ecosystem manifest

.atlas-deps.yml

Real-time state database for AI agent rooms — SpacetimeDB-inspired subscribe/mutate envelope engine over WebSocket, consumed by persona/live/world/social.

Runtime deps
  • openalice-authshared-jwt
    via SHARED_JWT_SECRET
    Validate oa_session JWTs on WS upgrade and HTTP routes (SHARED_JWT_SECRET; RT_JWT_SECRET as standalone fallback).
  • via cargo
    Shared health/metrics handlers, Prometheus builder, and JwtVerifier trait used to wire AuthUser extractor.
Consumed env
  • SHARED_JWT_SECRET
  • RT_JWT_SECRET
  • RT_PORT
  • RT_BIND
  • RT_DATA_DIR
  • RT_CORS_ORIGINS
  • RT_RATE_LIMIT
  • RUST_LOG
Exposes
  • http_endpoint: GET /health
  • http_endpoint: GET /state
  • http_endpoint: POST /mutate
  • http_endpoint: GET /search
  • http_endpoint: GET /metrics
  • ws_endpoint: WS /ws
  • cargo_crate: openalice-rt
Owns tables
  • wal_entries
Env drift · manifest ⇄ code

Atlas grepped the repo's source for env reads (rust env::var · ts process.env · py os.environ · shell $VAR) and diffed against the manifest's consumes_env. Two lists below: stale declarations and undeclared reads.

Manifest declares, code unused
  • RUST_LOG
Observed reads: 7 · declared: 8

Roadmap · what's planned next

1% avg5 goals
  • multi-writer-coordinator
    planned
    0%
    no description
  • snapshot-compaction
    planned
    2%
    no description
  • ivm-plan-cache-eviction
    planned
    1%
    no description
    evidence →rt.ivm.plan
  • messagepack-default
    planned
    1%
    no description
  • rt-client-typed-handlers
    planned
    0%
    no description

Code composition

tokei · loc
5.5kloc
  • Rust94.5%
  • TypeScript4.8%
  • TOML0.8%
  • Rust94.5%· 5,190
  • TypeScript4.8%· 262
  • TOML0.8%· 42
Language% codecodecommentsblanksfiles
Rust94.5%5,19039878027
TypeScript4.8%26242521
TOML0.8%4220171
Markdown0.0%04021325

Telemetry ribbon · last 90 days

4 events
MAYJUNJUL2026-06-10 · lifecycle · first scan — repo indexed2026-06-16 · commit · new commit daa152c → a59ad102026-06-16 · commit · new commit a59ad10 → a55697e2026-06-16 · commit · new commit a55697e → dd37027NOW
commitmanifestlifecyclekind

rt/clock

1 feature
  • rt.hlc.clock
    src/hlc.rs:66
    Hybrid Logical Clock (48-bit ms + 16-bit counter), lock-free via AtomicU64.
    since 0.1.0

rt/ivm

1 feature
  • rt.ivm.plan
    src/ivm.rs:15
    Compiled subscription plan for incremental view maintenance, evaluates deltas without full re-scan.
    since 0.1.0

rt/persistence

1 feature
  • rt.snapshot.manager
    src/snapshot.rs:24
    Periodic snapshots with Blake3 content hashing for fast WAL-replay recovery.
    since 0.1.0

rt/search

1 feature
  • rt.messages.search
    src/routes.rs:194
    Case-insensitive substring search over message text fields, room-scoped, capped limit.
    api:GET /search
    since 0.1.0

rt/session

1 feature
  • rt.session.subscribe
    src/ws.rs:30
    WebSocket gateway with subscribe/unsubscribe/mutate, JSON or MessagePack frames, JWT auth.
    api:WS /ws
    since 0.1.0

rt/state

2 features
  • rt.entity.mutate
    src/routes.rs:49
    Upsert or delete an entity (Room/Persona/Message/Presence) with WAL persistence.
    api:POST /mutate
    since 0.1.0
  • rt.state.snapshot
    src/routes.rs:25
    Return the current state snapshot with the highest committed sequence number.
    api:GET /state
    since 0.1.0

rt/store

1 feature
  • rt.store.mvcc
    src/store/mod.rs:55
    In-memory MVCC store with atomic batch commits and bounded delta-log broadcast.
    since 0.1.0