Record the live replication map at HEAD - #39
Conversation
The wire contract in SURFACE.md is the client. This map is the SHA-pinned status column against it, including the SignalR hole that still blocks live watch. Co-authored-by: Patrick MacLyman <Coldaine@users.noreply.github.com>
The public map’s headings and route table are the document shape. Current main answers a Sessions slice; live watch still has no hub. Co-authored-by: Patrick MacLyman <Coldaine@users.noreply.github.com>
The 2026-08-29 artifact stays its own file. Current main facts live in a new copy, not a rewrite of that document. Co-authored-by: Patrick MacLyman <Coldaine@users.noreply.github.com>
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Review found the 09-04 ledger still sold the August stall. The Sessions slice is on main; leftover wave PRs are not a merge queue. Co-authored-by: Patrick MacLyman <Coldaine@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e570127a7c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| NORM["Normalizers · Claude, Codex, Kiro, ACP, Antigravity<br/>● · 5 of ~9 live / 10 import vendors"] | ||
| SCH["Canonical schema · 14 tables<br/>spec on main · entities in Server.Data"] | ||
| PG["Postgres<br/>● · migrations 001–006"] | ||
| AN["Analytics · 32 views in SQL + library<br/>◐ · HTTP /schema and /query unmounted"] |
There was a problem hiding this comment.
Report only the analytics views implemented in SQL
The pinned tree does not contain 32 implemented analytics views: 002_analytics_views.sql defines nine CREATE VIEW statements, and SqliteAnalyticsService.GovernedViews allows exactly those same nine. The other 23 remain specifications, so describing analytics as complete except for mounting /schema and /query causes the remaining view implementation—and the missing Postgres query service—to disappear from the roadmap. Record this as 9 of 32 views rather than 32.
Useful? React with 👍 / 👎.
| subgraph amber [Server on main · Sessions slice] | ||
| POST["POST /hooks/transcript<br/>● · strict last-line · failed lines skip identity"] | ||
| ING["Ingest · positioned idempotent store<br/>●"] | ||
| NORM["Normalizers · Claude, Codex, Kiro, ACP, Antigravity<br/>● · 5 of ~9 live / 10 import vendors"] |
There was a problem hiding this comment.
Count the vendors covered by the ACP normalizer
This conflates the number of normalizer implementations with vendor coverage. UniversalAcpNormalizer.SupportedVendors explicitly handles Cursor, Gemini, OpenCode, Pi, and Copilot in addition to ACP; together with Claude, Codex, Kiro, and Antigravity, the router covers all nine live harness vendors (and 9 of 10 import vendors), not five. The same undercount later makes implemented integrations look like remaining work.
Useful? React with 👍 / 👎.
|
|
||
| ## ROUTE LEDGER | ||
|
|
||
| Every endpoint the client calls. Measured against `5ae4a671`. Capture |
There was a problem hiding this comment.
Include the omitted client endpoints in the ledger
This ledger is not an enumeration of every endpoint the client calls. For example, PermissionRequestCommand calls /hooks/permission-request, the disable command calls DELETE /api/sessions/{id}, ClaudeHookCommand posts /api/sessions/{id}/plan, and McpReviewServer calls /api/review/...; none appears below. Since this document is presented as the implementation map, work driven from it can declare the backend replicated while these shipped client paths still fail, so either complete the inventory or narrow the stated scope.
Useful? React with 👍 / 👎.
| | `POST /hooks/session-start/{vendor}` | ● MERGED | also unprefixed `/session-start/{vendor}` | | ||
| | `POST /hooks/session-end/{vendor}` | ● MERGED | also unprefixed | |
There was a problem hiding this comment.
Correct the lifecycle alias paths
The API does not map /session-start/{vendor} or a corresponding unprefixed session-end path. Program.cs maps /hooks/session-start/{vendor} plus /hooks/session-start without a vendor, and likewise /hooks/session-end/{vendor} plus /hooks/session-end. The aliases shown here therefore direct callers to 404 routes and should retain the /hooks prefix while dropping {vendor}.
Useful? React with 👍 / 👎.
| W["Web console remainder · Agents, Insights, Flows, Work items, share/copy/delete"] | ||
| end | ||
| realign -.-> m1 | ||
| T --> HUB --> IMP --> S --> A --> MEM --> F --> E --> L --> ANH --> W |
There was a problem hiding this comment.
Move authentication ahead of session visibility
This dependency chain requires the entire Sessions remainder, including visibility, to finish before authentication. The API explicitly returns 501 for visibility because changing access requires an authenticated caller and policy evaluator, so the S --> A order cannot be completed as written. Move auth before visibility or split visibility out of the earlier Sessions milestone.
Useful? React with 👍 / 👎.
| strong. Gate 2’s import half can pass; the live-watch half cannot until | ||
| `/hubs/sessions` exists. Gate 5 has a console and a recorded |
There was a problem hiding this comment.
Keep live watch out of the Wave 2 gate
WAVES.md defines Gate 2 solely as completing kcap import, obtaining the correct last-line watermark, and landing raw lines; live capture and the SignalR watcher belong to Wave 4's gate. Calling live watch a second half of Gate 2 incorrectly makes that gate depend on /hubs/sessions and contradicts both the gate reproduced immediately above and the source workflow.
Useful? React with 👍 / 👎.
| POST["POST /hooks/transcript<br/>● · strict last-line · failed lines skip identity"] | ||
| ING["Ingest · positioned idempotent store<br/>●"] | ||
| NORM["Normalizers · Claude, Codex, Kiro, ACP, Antigravity<br/>● · 5 of ~9 live / 10 import vendors"] | ||
| SCH["Canonical schema · 14 tables<br/>spec on main · entities in Server.Data"] |
There was a problem hiding this comment.
Correct the canonical schema table count
Fourteen describes neither schema artifact in the pinned tree. CANONICAL-SCHEMA-SPEC.md inventories 16 table names, including machines, daemons, and the deferred memories table, while 001_initial_schema.sql creates 16 physical tables (using dead_letter_entries instead of memories). This count should distinguish the 16-name candidate specification from the recovery migration rather than understating both.
Useful? React with 👍 / 👎.
User description
No GitHub issue; no Linear id.
What & why
Three reviews (docs critique, leftover-branch audit, Bugbot) said the 09-04 ledger’s facts were mostly right and its voice was still the August stall. This PR now leads with what
mainat5ae4a671answers.Do not merge leftover wave
#14–#17or recover#31/#32/#36. They are closed.#38already squash-landed the Sessions slice; wave 8 maps the wrong hub.Where to look
Start at
reference/REPLICATION-MAP-LANDED.md. The route table isreference/REPLICATION-MAP-2026-09-04.md. The 2026-08-29 artifact stays frozen.Verification
Leftover branches were compared to
origin/mainandorigin/feature/session-vertical-slice(e1c89205). None map/hubs/sessions.#38squash is the Sessions baseline. Open PRs besides this one: none.CodeAnt-AI Description
Record the current server and web console implementation status against the client contract
What Changed
mainImpact
✅ Clearer backend readiness status✅ Preserved historical implementation snapshot✅ Clearer boundaries for available Sessions features💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.