πŸ”€ English documentation
ζ—₯本θͺž β†’

πŸ”€PR Timeline & Status

A color-coded view of aegis-platform #1-64 / aegis-sip-bridge #1-16 / voice-edge #1-12.

The timeline and status of every pull request across the three repos (aegis-platform / aegis-sip-bridge / voice-edge), built from live GitHub PR data. It reflects the July hardening after the June handoff (Stages 1-4, billing, E1-E3, the first line of toll-fraud defense).

Overview (color-coded by status)

Merged 72Open 17Draft 2Closed 1 92 PRs total
Diagram: green=Merged / blue=Open / yellow=Draft / gray=Closed. Click a chip to open the GitHub PR. The review fixes (#22-31, sip-bridge #3-6) are Open, awaiting review.
ℹ️Where the review cycle stands
  • 72 Merged: the core Route C / Phase B v2 work (#1-21), plus the July hardening β€” Stages 1-4, billing, and E1-E3 (platform #32-64), the bridge’s D-1 / Stage 2 / Stage 4 R-series (#7-16, the merged ones), and voice-edge’s toll-fraud first line and cleanup (#4-12, the merged ones).
  • 17 Open: the June-handoff review fixes (Critical-1 / H-1–H-5 / the CM and PM groups) and the pre-on-device-test Phase C integration PRs. Some await review.
  • 2 Draft: Phase C v2 standalone (frozen) plus a pre-existing plan Draft.
  • A reviewer will be assigned after the collaborator invite (Chris’s GitHub: walmsleyc).

All PRs

aegis-platform

#1Merged Route C: OpenAI Realtime integration (realtime)2026-05-09#2Merged Route C B4 (duration_seconds)2026-05-09#3Merged Route C B7 (event-trace)2026-05-09#4Merged Route C B5 (transcript-tick docs)2026-05-09#5Merged Route C B6 (retention sweeper)2026-05-09#6Merged B1' dashboard live updates (SSE)2026-05-09#7Merged B7' event-trace prime2026-05-10#8Merged B2 rtc-stats summary2026-05-10#9Merged B8 dashboard2026-05-10#10Merged B9 tools (MCP)2026-05-10#11Merged chore: tech-debt (env/cors/db)2026-05-10#12Merged docs: Phase B v2 completion + Phase C v1 foundation2026-05-11#13Merged feat(ux): dashboard polish (SSE status, empty states, toast)2026-05-11#14Merged feat(observability): health, version, structured logs, JP errors2026-05-11#15Merged docs: B3/B10 design drafts for Rick Kazman review2026-05-11#16Merged feat(verify): OpenAI Realtime WebSocket direct-connection verify2026-05-11#17Merged docs(phase-c): record 2 bridge implementation gotchas2026-05-11#18Merged feat(b3): AES-256-GCM at-rest encryption for recordings2026-05-11#19Merged feat(b10): WebRTC session recovery v2.5 (backoff + mute + Retry-After)2026-05-11#20Merged docs(phase-c): operator JWT / DB migration runbooks2026-05-11#21Merged docs: NAS staging migration2026-05-15#22Open Wire the strict_approval gate + audit into whitelist CSV importCritical-12026-06-02#23Open Wire recording at-rest decryption into get_recordingH-12026-06-02#24Open Revoke post-logout JWTs via a Redis denylistH-22026-06-02#25Open Clean up RhodiumAdapter's "stub" wording (behavior unchanged)H-32026-06-02#26Open Add an ON DELETE policy to all 19 FKs (CASCADE/SET NULL/RESTRICT)H-42026-06-02#27Open Add authorization-boundary tests across 6 modulesH-52026-06-02#28Open Add a NULL-tenant guard to check_client_accessCM-12026-06-02#29Open Remove the full NAS path from recording-storage logsCM-22026-06-02#30Open Move tools_core's Japanese wording into the API layerCM-42026-06-02#31Open Add 10 missing settings to .env.exampleCM-62026-06-02#32Merged Transcript pipeline + eval + health check (AI-side, pre-hardware)2026-07-07#33Closed engine: verdict port + Scorer L1 blocklist wiring (L3-D2/D4)#34Merged engine: opener-floor guardrail (L1 rules, floor 0.6 OR-composed) β€” breakthroughs 3β†’0, zero false-positive cost2026-07-07#35Merged engine: verdict port + Scorer L1 blocklist wiring (L3-D2/D4) β€” recreation of #33 (base=main)2026-07-07#36Merged Add automated test runs via GitHub Actions2026-07-09#37Merged F-1: fix the require_roles fake test into a real test2026-07-09#38Merged Stage 1-A: shared number-to-client resolution function (flag OFF)2026-07-09#39Merged Stage 1-B: switch number resolution to the shared function (flag-gated, default OFF)2026-07-09#40Merged specs: move the Stage 1 routing design to the canonical Aegis repo2026-07-10#41Merged specs: store the Stage 0-c homework notes in the Aegis repo under Git2026-07-10#42Merged Stage 3-1: unify internal time to UTC, keep JST display (+ fix the 3-b silent substitution)2026-07-10#43Merged Stage 3-c: prevent call-log loss (await create_task completion)2026-07-10#44Merged Notification-channel abstraction (app first; Slack/LINE/email interfaces only; default OFF)2026-07-10#45Merged Stage 3-2: make the stats aggregation window UTC (compute JST date boundaries correctly, flag OFF by default)2026-07-10#46Merged Billing metering S1: canonicalize engine types + design doc2026-07-10#47Merged Billing metering S2: usage_events + emit2026-07-10#48Merged Billing metering M1: aggregation API (GET /api/usage)2026-07-10#49Merged Stage 3-f F1: wire the periodic retention task (dry-run forced, no actual deletion, default OFF)2026-07-10#50Merged Stage 3-d: fix retell_client exception swallowing (RetellApiError)2026-07-10#51Merged Stage 3-3: UTC migration script for historical JST rows (dry-run by default, idempotent)2026-07-10#52Merged Stage 3-f F3: assign retention_until (consolidated into retention.py, billing source records excluded, no deletion)2026-07-10#53Merged Stage 3-e E1: observe Redis fail-open (behavior unchanged, observation only)2026-07-10#54Merged Stage 4 C-1: idempotency against Retell double billing (3 safeguards)2026-07-10#55Merged Stage 4 (1): bind the approval gate to payload/target (make 4-eyes effective)2026-07-10#56Merged Stage 4 (2): block reseller cross-tenant access (fail-closed)2026-07-10#57Merged Stage 4 (3): SIP webhook signature verification (Critical (3), wire rhodium_webhook_secret)2026-07-10#58Merged Stage 4 P1: prevent TOCTOU in approval application (conditional UPDATE)2026-07-10#59Merged Stage 4 F-2: real tests for Retell webhook signatures (closing out the fake-test fixes)2026-07-10#60Merged Stage 4 Β§3-1: close the cross-tenant holes across all endpoints (check_client_access)2026-07-10#61Merged Stage 4 Β§3-2: close the approve/reject TOCTOU (unify all transitions on CAS)2026-07-10#62Merged Stage 4 Β§3-3: webhook input validation (malformed body: 500 to 400)2026-07-11#63Merged Stage 3-e E2: Lua atomic merge for Redis update_fields (prevent lost updates)2026-07-11#64Merged Stage 3-e E3: move on_transcript to a threadpool (fix event-loop congestion)2026-07-11

aegis-sip-bridge

voice-edge