Skip to content

[ADR] docs(roadmap): align v0.5 and retire gateway (#109) - #110

Merged
tetsuh merged 7 commits into
mainfrom
feat/109-align-roadmap-v05
Jul 21, 2026
Merged

[ADR] docs(roadmap): align v0.5 and retire gateway (#109)#110
tetsuh merged 7 commits into
mainfrom
feat/109-align-roadmap-v05

Conversation

@tetsuh

@tetsuh tetsuh commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

Closes #109

Architecture decision

  • ADR required: ADR-0027 supersedes ADR-0015 after owner acceptance
  • ADR-0027 accepted with owner approval in 6768777
  • ADR-0015 marked Superseded by ADR-0027 without rewriting its historical decision

Acceptance verification

Review disposition

  • CodeRabbit: all three inline findings fixed in 6c03a36, individually answered, and resolved
  • Fable: Approve; undefined host terminology fixed and M5 placement retained with rationale
  • final owner gate: ADR-0027 accepted and ADR-0015 superseded in 6768777

RED / TDD

This is documentation and roadmap work, which is exempt from production-code TDD under
docs/development_workflow.md §3. The pre-change consistency audit correctly found the stale v1.0
gateway requirement, missing v0.5 boundary, missing ADR-0026 index entry, stale ADR-0020/0021
statuses, and planned gateway build option. No behavioral RED evidence is claimed.

Related Wave 0 administration

Outside the repository diff, the v0.2 milestone was closed after all 23 assigned Issues were
complete, and the blocking contracts in Issues #14, #20, #23#25, #30, #56, #99, and #105#108
were aligned or explicitly marked as requiring a decision before implementation.

tetsuh added 3 commits July 21, 2026 21:33
- Add ADR-0027 as the replacement decision for the retired optional gateway

- Register ADR-0026 and correct stale ADR-0020 and ADR-0021 statuses

- Preserve ADR-0014 history while marking its gateway reference as historical
- Remove the planned SITOS_BUILD_GATEWAY option and cpp-httplib dependency

- Keep the documented Python wheel support tier aligned with ADR-0026
- Add the v0.5 boundary and current durability and fence issues

- Remove the retired gateway lane and align Python milestone scope

- Mark unresolved acknowledgement and reconnect contracts explicitly
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 24 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5527f705-79e5-48cc-85e3-ce7aa570a2e4

📥 Commits

Reviewing files that changed from the base of the PR and between 8751ff8 and eed9221.

📒 Files selected for processing (4)
  • docs/02_architecture.md
  • docs/03_wire_protocol.md
  • docs/07_issue_breakdown.md
  • docs/adr/0027-keep-http-control-planes-in-host-applications.md
📝 Walkthrough

Walkthrough

Documentation updates align acknowledgement semantics, Python API scope, v0.5 roadmap items, build references, and ADR records with the planned transport design and host-owned HTTP control planes.

Changes

Protocol and acknowledgement contract

Layer / File(s) Summary
Planned acknowledgement contract
docs/02_architecture.md, docs/03_wire_protocol.md
Acknowledgement token attachment and polling are marked non-normative, with bounded acknowledgement-only retries and no repeated data writes.

Roadmap and API scope

Layer / File(s) Summary
v0.5 roadmap and synchronization checkpoints
docs/07_issue_breakdown.md
The roadmap adds v0.5 durability, fence, retained-session, cache-delivery, acknowledgement, and gateway-retirement work.
Python API scope alignment
docs/05_api_python.md, docs/07_issue_breakdown.md
Provisional subscriptions and stale-state access are removed from the Python API documentation, and related issue scopes are narrowed.

HTTP boundary and ADR records

Layer / File(s) Summary
HTTP boundary and ADR alignment
docs/adr/*, docs/06_build_test_packaging.md
HTTP control planes are assigned to host applications, gateway build and dependency references are removed, two ADRs are marked accepted, and the ADR index is extended.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

Possibly related PRs

  • tetsuh/sitos#59 — Related changes affect the same session-scoped buffers ADR and its HTTP boundary status.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR covers the roadmap/docs updates, but it leaves ADR-0027 Proposed and does not supersede ADR-0015, so #109 is not fully satisfied. Accept ADR-0027, update ADR-0015 to 'Superseded by ADR-00NN — ', and refresh the ADR index after that status change.
Description check ⚠️ Warning It covers summary and ADR intent, but misses the template's Requirements, logs, and RED-phase sections. Add the required Requirements section with F/N/C/P/X IDs, paste acceptance-test logs, and include RED-phase failure output in the template.
✅ Passed checks (3 passed)
Check name Status Explanation
Out of Scope Changes check ✅ Passed All changes stay within the documentation and roadmap scope for #109, with no unrelated feature work apparent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title matches the PR's main change: roadmap/ADR docs updating v0.5 and retiring the gateway.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/109-align-roadmap-v05

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/02_architecture.md`:
- Around line 190-193: The acknowledgement documentation incorrectly presents
MetaAck and ack_token as non-existent Transport APIs. In docs/02_architecture.md
lines 190-193, state that PutOptions::ack and TransportSample::ack_token are
existing APIs whose attachment, batch-outcome, UUID, and timeout semantics
remain unfinished. In docs/03_wire_protocol.md lines 206-214, clarify that Issue
`#14` finalizes the semantics of this existing Transport surface rather than
selecting a new canonical API.

In `@docs/07_issue_breakdown.md`:
- Line 519: Update the implementation-order code block’s opening Markdown fence
in the issue breakdown documentation to specify the text language as ```text,
while leaving the block contents unchanged.

In `@docs/adr/0027-keep-http-control-planes-in-host-applications.md`:
- Around line 49-55: Update the ADR-0015 relationship in the References section
of ADR-0027 to indicate it is a proposed replacement rather than superseded.
Preserve the current Supersedes wording only for a future accepted status.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 127714b8-4308-4bee-8628-ae3726c137a9

📥 Commits

Reviewing files that changed from the base of the PR and between 11952e2 and 23d057f.

📒 Files selected for processing (10)
  • docs/02_architecture.md
  • docs/03_wire_protocol.md
  • docs/05_api_python.md
  • docs/06_build_test_packaging.md
  • docs/07_issue_breakdown.md
  • docs/adr/0014-session-scoped-buffers.md
  • docs/adr/0020-synchronously-complete-transport-get.md
  • docs/adr/0021-resolve-installed-zenoh-dependency.md
  • docs/adr/0027-keep-http-control-planes-in-host-applications.md
  • docs/adr/README.md

Comment thread docs/02_architecture.md Outdated
Comment thread docs/07_issue_breakdown.md Outdated
Comment thread docs/adr/0027-keep-http-control-planes-in-host-applications.md
@tetsuh

tetsuh commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Review: roadmap v0.5 alignment and gateway retirement (#109) — reviewed by Fable

Docs-only PR, but I verified every factual claim against the repository and GitHub state rather than taking the body's checklist at face value.

Overview

Adds ADR-0027 (host applications own HTTP control planes; supersedes ADR-0015) as Proposed, retires sitos-gateway/SITOS_BUILD_GATEWAY/cpp-httplib from the planned build surface, introduces the v0.5 release boundary (#14, #17, #99, #105#109) in docs/07, downgrades the ack protocol (docs/03 §6) to "planned, not normative" with #14's open decisions made explicit, aligns the Python issue contracts (#23#25/#27) with the shipped C++ reality (ADR-0022/0023/0025; Subscribe → #26; stale → #20), registers ADR-0026 in the index, and corrects the stale ADR-0020/0021 statuses.

Verification — all claims check out

Findings (all minor)

  1. The pre-merge flip is a two-part commit: besides ADR-0027 → Accepted, the same commit must transition ADR-0015 → "Superseded by ADR-0027" (the PR body defers this deliberately — this is a reminder, not a defect). While in there, adjust the ADR-0014 annotation's "ADR-0027 proposes that host applications…" to wording that survives acceptance (e.g. "assigns").
  2. sitometron appears undefined: it occurs only in ADR-0027 and nowhere else in the docs (presumably the external host orchestrator). A one-parenthetical gloss — "the external host orchestrator application" — would spare readers the guess.
  3. Docs: align the roadmap with v0.5 and retire the optional HTTP gateway #109's section placement: removing the old M6 heading leaves Docs: align the roadmap with v0.5 and retire the optional HTTP gateway #109 under M5 (release/quality) while the lane diagram labels it Lane E (roadmap). Harmless; adjust only if the mismatch bothers you.

Verdict

Approve. All findings are minor (finding 1 folds into the flip commit). The single remaining pre-merge gate is that flip commit: ADR-0027 to Accepted plus the ADR-0015 Superseded transition.

tetsuh added 2 commits July 21, 2026 21:53
- Describe the existing acknowledgement transport surface accurately

- Mark ADR-0015 as a proposed replacement until ADR-0027 is accepted

- Add the Markdown fence language and define the external host application
@tetsuh

tetsuh commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Fable review disposition

Reviewed against head 6c03a36.

  1. Acceptance transition — pending owner gate. The final owner-approved commit will change ADR-0027 to Accepted, ADR-0015 to Superseded by ADR-0027, and ADR-0014's temporary proposes wording to acceptance-stable wording. No acceptance is inferred from the review-fix instruction.
  2. Undefined sitometron — fixed. Commit 6c03a36 identifies it as the external host orchestrator application.
  3. Issue Docs: align the roadmap with v0.5 and retire the optional HTTP gateway #109 placement — no change. M5 explicitly covers documentation and release work, so roadmap-document alignment belongs there. Lane E describes execution order rather than the document section taxonomy.

The three CodeRabbit inline findings were also fixed and individually answered. All review threads are resolved.

@tetsuh

tetsuh commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

Re-review: commits 8751ff8, 6c03a36 (head 6c03a36) — reviewed by Opus

I reviewed the two commits added after my initial review. My prior findings are resolved or appropriately deferred, and the delta additionally corrects a factual error. No new issues.

Prior findings

  • Finding 2 (sitometron undefined) — resolved. ADR-0027 now reads "sitometron, the external host orchestrator application, is the initial host implementation."
  • Finding 1 (the flip must also handle ADR-0015) — improved in direction. ADR-0027's References changed from "Supersedes: ADR-0015" to "Proposed replacement for: ADR-0015." This is the correct interim wording: while ADR-0027 is still Proposed, the definite "Supersedes" was premature. See the flip note below for the consequence.
  • Finding 3 (Docs: align the roadmap with v0.5 and retire the optional HTTP gateway #109 under M5 rather than Lane E) — not changed, which is fine; I had flagged it as optional.

Independently good changes in this delta

Pre-merge flip commit (now a four-part task)

The interim "Proposed replacement for" wording means the single Accepted-flip commit must:

  1. ADR-0027 Status: ProposedAccepted — <date>;
  2. ADR-0027 References: "Proposed replacement for: ADR-0015" → "Supersedes: ADR-0015" (otherwise an Accepted ADR still reads "proposed replacement", which is self-contradictory);
  3. ADR-0015 Status → "Superseded by ADR-0027";
  4. the ADR-0014 annotation "ADR-0027 proposes that host applications…" → wording that survives acceptance (e.g. "assigns").

Verdict

Approve. All of the delta's changes are accurate and my prior findings are resolved or optional. As a docs-only PR there is no blocker; the only remaining gate is the four-part flip commit above.

@tetsuh tetsuh self-assigned this Jul 21, 2026
- Accept ADR-0027 after owner approval

- Mark ADR-0015 superseded by ADR-0027 without rewriting its history

- Update the ADR index and durable-buffer HTTP boundary annotation
@tetsuh

tetsuh commented Jul 21, 2026

Copy link
Copy Markdown
Owner Author

ADR acceptance recorded

The owner approved ADR-0027. Commit 6768777 performs the complete accepted-status transition:

  1. ADR-0027 is Accepted — 2026-07-21 and now declares Supersedes: ADR-0015.
  2. ADR-0015 is Superseded by ADR-0027 — 2026-07-21; its historical Context, Decision, and Consequences were not changed.
  3. ADR-0014's temporary wording now states the enduring ADR-0027 assignment.
  4. The ADR index marks ADR-0015 as superseded.

This implements the four-part pre-merge flip identified by the Opus re-review.

@sonarqubecloud

Copy link
Copy Markdown

@tetsuh
tetsuh merged commit 40f6377 into main Jul 21, 2026
15 checks passed
@tetsuh tetsuh mentioned this pull request Jul 26, 2026
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs: align the roadmap with v0.5 and retire the optional HTTP gateway

1 participant