refactor(reads): remove leader consistency selector (EN-1946) - #1893
refactor(reads): remove leader consistency selector (EN-1946)#1893gfyrag wants to merge 1 commit into
Conversation
✅ Approve — automated reviewThe leader selector is removed consistently while stale and default linearizable behavior remain intact. Prior documentation and forwarding-test concerns are resolved at HEAD. No findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## feat/en-1946-inspect-index-alignment #1893 +/- ##
=====================================================================
Coverage 77.40% 77.41%
=====================================================================
Files 458 458
Lines 48643 48632 -11
=====================================================================
- Hits 37654 37647 -7
- Misses 7825 7829 +4
+ Partials 3164 3156 -8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
13a8aab to
e538a48
Compare
94e9664 to
08c7d37
Compare
4eea829 to
4187f25
Compare
08c7d37 to
1316d94
Compare
4187f25 to
b54af3d
Compare
1316d94 to
e7f8c2c
Compare
|
Both axis findings above were independently confirmed against the code; rejected candidates included style-only test renames and baseline smells suppressed by repo conventions. Standards
Spec
The core change is correct: Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
|
This PR removes the unreleased Standards
SpecSpec of record (PR body): "Removes the unreleased leader consistency selector while retaining stale. Unknown leader metadata now follows the existing default linearizable route."
Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
b54af3d to
b708694
Compare
e7f8c2c to
1bc6e9d
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 2 new inline findings.
Summary: #1893 (comment)
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #1893 (comment)
Review of PR #1893 — refactor(reads): remove leader consistency selector (EN-1946)The functional removal is correct and complete at the code level: Recommendation: request changes — the code is mergeable, but the repo's definition of done treats documentation as part of the change, and the fixes are small. Standards
No baseline code smells beyond the above: the 14-file fan-out is the inherent cost of removing a cross-cutting selector, and the string-typed consistency levels are a pre-existing pattern this diff merely narrows. No SpecSpec of record: "Removes the unreleased leader consistency selector while retaining stale. Unknown leader metadata now follows the existing default linearizable route."
No scope creep and no behaviour-looking-wrong findings: "while retaining stale" holds end-to-end ( Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
|
This PR removes the unreleased Standards
SpecThe PR body's three requirements are otherwise fully implemented: (1) the selector is removed across code, CLI, tests, and documentation, with
Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
b708694 to
a0718c0
Compare
1bc6e9d to
e6ee8af
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
🛑 Changes requested — automated review
The runtime removal is correct and prior documentation findings are fixed. Only stale explanatory comments remain; they do not affect behavior.
Findings outside the diff
🟠 [major] Remove remaining explicit-leader profile references — internal/bootstrap/controller_routed.go:95
After deleting the explicit-leader branch, this comment still compares the fallback against that nonexistent path, while internal/query/profile.go:106-116,494-495 likewise documents explicit leader reads as producers of Forwarded. This now misstates the profiling contract and should be updated as part of the required code-comment synchronization (AGENTS.md:99).
Summary: #1893 (comment)
NumaryBot
left a comment
There was a problem hiding this comment.
💬 Comments — automated review
The runtime and public documentation changes correctly remove the leader selector. Only stale internal comments remain; they do not affect behavior or tests.
Findings outside the diff
🟡 [minor] Remove stale explicit-leader references — internal/bootstrap/controller_routed.go:95
After removing the explicit leader route, this comment still compares fallback behavior with that deleted branch. The same stale behavior description remains in internal/query/profile.go:106-115 and :492-495, incorrectly documenting Forwarded and zero barrier duration as outcomes of an explicit leader read. Update these comments per AGENTS.md:89.
Summary: #1893 (comment)
|
Both prior reviews agree with the code, and so does my independent verification: the runtime removal is complete and correct. Standards
SpecSpec of record: "Removes the unreleased leader consistency selector while retaining stale. Unknown leader metadata now follows the existing default linearizable route."
Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
e6ee8af to
9e5d40f
Compare
a0718c0 to
373f211
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #1893 (comment)
8877220 to
355463e
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
🛑 Changes requested — automated review
The runtime refactor appears sound, but it removes the sole end-to-end regression test for receipt relay through a forwarding path that still exists.
Findings outside the diff
🟠 [major] Preserve forwarded-receipt coverage through the fallback — tests/e2e/cluster/get_transaction_receipt_forwarded_test.go:83
Deleting this test removes the only end-to-end guard that a no-signer follower relays a receipt produced by a remote leader. readCtrl still forwards GetTransaction when a follower is syncing or loses leadership, so retain this scenario using that fallback; regression coverage must remain additive across production triggers per AGENTS.md:78.
Summary: #1893 (comment)
c5ae816 to
cfdab0a
Compare
355463e to
ee1c4aa
Compare
Final review — PR #1893 (refactor(reads): remove leader consistency selector, EN-1946)The diff cleanly removes the unreleased Standards[P1] Add the missing in-repo traceability chain for the consistency-API decision —
|
NumaryBot
left a comment
There was a problem hiding this comment.
🛑 Changes requested — automated review
The runtime refactor appears correct, but it removes unique regression coverage for receipt relay through a forwarding path that still exists.
Findings outside the diff
🟠 [major] Preserve forwarded-receipt coverage through the fallback — tests/e2e/cluster/get_transaction_receipt_forwarded_test.go:83
Deleting this test removes the only end-to-end guard that a no-signer follower relays a receipt produced by a remote leader. readCtrl still forwards GetTransaction when a follower is syncing or loses leadership, so retain this scenario using that fallback; regression coverage must remain additive across production triggers per AGENTS.md:78.
Summary: #1893 (comment)
|
This PR removes the unreleased Standards[P2][blocking] Missing durable intent chain for a significant consistency/API decision — [P3][non-blocking] Forwarded-read receipt relay lost its only e2e regression guard — No other confirmed material standards findings: the documentation fan-out is required by the AGENTS.md documentation-maintenance rule and is fully carried through at HEAD (consensus matrix, read-path README, query pipeline/profile, prepared queries, CLI); the protobuf edits are comment-only with no field/renumbering concerns; new/renamed unit tests follow SpecNo confirmed material findings. All three PR-body claims are delivered and independently verified at HEAD:
No scope creep: every hunk serves the removal. The e2e test deletion and the comment-only proto regeneration ( Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
ee1c4aa to
d0633f3
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #1893 (comment)
Final review — PR #1893 (removal of the unreleased v3
|
cfdab0a to
3144511
Compare
d0633f3 to
eedf102
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #1893 (comment)
3144511 to
14ad389
Compare
eedf102 to
595a436
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot review complete: no remaining inline findings.
Resolved 1 stale NumaryBot review thread (1 fixed, 0 outdated).
Summary: #1893 (comment)
|
This PR removes the unreleased v3 Standards
SpecNo confirmed material finding. Both stated requirements are implemented and verified at HEAD: the leader selector is fully removed (with Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
14ad389 to
43352e0
Compare
595a436 to
75de1eb
Compare
43352e0 to
56a6038
Compare
75de1eb to
2a431fb
Compare
56a6038 to
6cef75d
Compare
2a431fb to
f7154c7
Compare
Final review — PR #1893 "refactor(reads): remove leader consistency selector (EN-1946)"Fixed point Recommendation: approve with comments. The code, behavior, and tests are correct; the two findings below are documentation/traceability gaps that should be addressed in or immediately after this PR. No code changes are required. Standards[P2] Durable traceability for the consistency semantic change is incomplete
Removing a consistency selector is explicitly in scope for that standard ("API or semantic changes", "consistency … strategies"), which requires committed evidence for the full chain (need → limitation → requirement → decision/alternatives → validation) that "must retain enough requirement and decision context to remain understandable without those private or mutable sources". The only new durable rationale is the single sentence at [P3] Forwarding-cause comments name only one of the two triggers
The fallback in Rejected from the candidate reports, after verification: GLM's two minor smell observations (duplicated SpecNo confirmed material finding. All three requirements of the PR body were verified directly against the checkout:
Independent inspection of the riskiest areas (e2e harness semantics, node ReadIndex failure paths, gateway interception, CLI/validation surface, Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
f7154c7 to
260e9bc
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot posted 1 new inline finding.
Summary: #1893 (comment)
260e9bc to
615ac0f
Compare
NumaryBot
left a comment
There was a problem hiding this comment.
NumaryBot review complete: no remaining inline findings.
Resolved 1 stale NumaryBot review thread (0 fixed, 1 outdated).
Summary: #1893 (comment)
|
This PR removes the unreleased Standards1. Missing durable product-to-technical traceability for an API/consistency semantic decision (moderate) Location:
Resolution: extend the note in No other confirmed standards findings. The broad edits across CLI, architecture docs, tests, proto, and generated code are the documentation/protobuf synchronization the repository's own standards mandate, not shotgun surgery; the regenerated SpecNo confirmed material findings. Verified against the PR intent ("Removes the unreleased leader consistency selector while retaining stale. Unknown leader metadata now follows the existing default linearizable route"):
Reviewed independently by GLM (glm-5.3-flash) and Codex (gpt-5.6-sol) via Shipfox; verified and synthesized by GLM. |
Stack 5/7 for EN-1946. Removes the unreleased leader consistency selector while retaining stale. Unknown leader metadata now follows the existing default linearizable route.