Skip to content

docs(matrix): rs reliability rows + stale LAB-426 lock/TTL cells (LAB-518) - #35

Open
27Bslash6 wants to merge 2 commits into
mainfrom
lab-518-matrix-rs-reliability
Open

docs(matrix): rs reliability rows + stale LAB-426 lock/TTL cells (LAB-518)#35
27Bslash6 wants to merge 2 commits into
mainfrom
lab-518-matrix-rs-reliability

Conversation

@27Bslash6

Copy link
Copy Markdown
Contributor

Matrix refresh for LAB-518 (cachekit-rs reliability tier, cachekit-io/cachekit-rs#43):

  • Flipped to ✅ for Rust (with evidence notes): circuit breaker, retry (row added), graceful degradation (row added), cache stampede prevention. Backpressure stays honestly ❌ — not in LAB-518's acceptance criteria.
  • Fixed stale rs cells: distributed locking said "SaaS backend only; Redis/Workers lack impls" and TTL said "Workers ❌" — LAB-426 already shipped both (code-verified redis.rs:165, workers.rs:262/322). Leaving those lies in rows this PR edits would be exactly the trust-bug class the doc gate exists for.
  • Rust SDK summary block updated (feature flag list + reliability bullet).

Python/TypeScript cells in the new Retry / Graceful degradation rows follow the LAB-275 audit's code-verified verdicts.

…-426 lock/TTL cells

- Circuit breaker, retry (new row), graceful degradation (new row), and
  cache stampede prevention flipped for Rust — shipped by
  cachekit-rs#43 (LAB-518).
- rs distributed-locking and TTL cells were stale: LAB-426 already
  landed Redis + Workers LockableBackend/TtlInspectable impls
  (code-verified: redis.rs:165, workers.rs:262/322). Refreshed the
  cells and the backend-abstraction coverage note to match.
- Rust SDK summary gains the reliability feature flag + tier bullet.

Co-authored-by: multica-agent <github@multica.ai>
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

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: 58 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 42be655f-6c63-4b70-b0fd-53f09c6e45c9

📥 Commits

Reviewing files that changed from the base of the PR and between 53aaec8 and 79d4e58.

📒 Files selected for processing (1)
  • sdk-feature-matrix.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lab-518-matrix-rs-reliability

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

…l follow-up)

Permanent/auth backend errors now propagate on the plain #[cachekit]
path — a wrong API key fails loudly instead of silently running
uncached forever. Cell wording updated to match the shipped behaviour.

Co-authored-by: multica-agent <github@multica.ai>
@27Bslash6

Copy link
Copy Markdown
Contributor Author

Auto-rebase attempt: merged origin/main and hit real content conflicts in sdk-feature-matrix.md — this branch (LAB-518, rust reliability: circuit breaker/retry/graceful-degradation/stampede rows) and main (ts backpressure/stampede LAB-519, plus the standing rust-Workers-locking discrepancy from LAB-426/427) both rewrote the same table block with different, non-additive changes. Splicing requires reconciling which rust capability claims are current — not a safe mechanical union. Left for a human call. Merge aborted, branch untouched.

@27Bslash6

Copy link
Copy Markdown
Contributor Author

Auto-rebase check: merging origin/main into this branch conflicts in sdk-feature-matrix.md across 3 hunks. This branch adds new reliability rows (Retry, Graceful degradation) not present on main, but also has cells that now contradict main's content on overlapping capabilities (e.g. Rust circuit breaker ✅ here vs ❌ on main; stampede-prevention and locking details differ from the LAB-426/LAB-429/LAB-519 updates already on main). Not a clean union — needs a human call on which capability claims are current.

@27Bslash6

Copy link
Copy Markdown
Contributor Author

Auto-rebase attempted a merge of origin/main and hit a real conflict in sdk-feature-matrix.md — needs a human call, not left as-is:

  • Both branches edited the same table rows (Circuit breaker, Backpressure, Distributed locking, Cache stampede prevention, TTL management) with different, overlapping SDK-status content (this PR's LAB-518 rs reliability updates vs. main's LAB-446/LAB-519/LAB-595/LAB-272 updates).
  • Also two different "Last updated" narrative summary lines at the top of the doc.

Resolving this correctly means merging facts from both sides cell-by-cell (e.g. keeping this PR's Rust circuit-breaker/stampede info and main's TypeScript backpressure/stampede info in the same row) rather than picking one side — that's a judgment call I'm leaving for you. Branch left untouched (merge aborted, no push).

@27Bslash6

Copy link
Copy Markdown
Contributor Author

Auto-rebase: conflict in sdk-feature-matrix.md — both branches wrote contradictory feature-status values for the same table rows (Circuit breaker, Backpressure, Distributed locking, Cache stampede prevention, TTL management for Rust/TypeScript). This isn't a textual union — reconciling which claims are current needs a human call.

@27Bslash6

Copy link
Copy Markdown
Contributor Author

auto-rebase: sdk-feature-matrix.md conflicts overlap on the same rows (Circuit breaker / Backpressure / Distributed locking / TTL management for Rust) with different substantive content from each side — resolving means picking one side's facts over the other's, not a mechanical union. Needs a human call.

27Bslash6 added a commit that referenced this pull request Jul 29, 2026
…e SDKs (LAB-998) (#46)

The repo that this project calls the source of truth for cross-SDK interop
still told readers interop/v1 was unimplemented. It has been released in
every SDK since 2026-07-24, and the public docs site was already corrected
(LAB-996 / cachekit-io/docs#24) — so the normative spec and the docs site
contradicted each other, with the spec carrying the false half. Under the
project's documentation gate that is a trust bug, not a stale nicety.

Three surfaces corrected:

- spec/interop-mode.md STATUS header: no longer "NOT yet implemented in any
  SDK"; states normative + shipped opt-in, with per-registry version floors.
- README.md spec table: the "(specified, not yet implemented in any SDK)"
  parenthetical now points at the feature matrix for per-SDK floors, so the
  version numbers live in exactly one place.
- sdk-feature-matrix.md interop row: "Merged (…, unreleased)" becomes
  "Released" with floors; Last updated preamble gets this change's entry.

Availability is stated as FLOORS (PyPI 0.14.0+, crates.io 0.4.0+, npm 0.1.3+)
rather than point-in-time snapshots. This is the lesson from LAB-663, whose
seven per-registry snapshots were falsified within 25 minutes of being
written when npm published 0.1.3 mid-review. A floor stays true as new
versions publish; a snapshot rots on contact.

Python's floor is 0.14.0, not the 0.13.0 its changelog implies: interop
merged under the v0.13.0 tag, but neither 0.12.0 nor 0.13.0 was ever
published to PyPI (verified against the PyPI JSON API — no release keys
exist for either), so 0.14.0 is the earliest installable release containing
it. Footnote 4 records this so a future reader does not "correct" the floor
back to an uninstallable version from the changelog alone.

Floors verified 2026-07-28 against live registries and each SDK's release
notes: cachekit-py #220 in the v0.13.0 tag (first on PyPI at 0.14.0),
cachekit-ts #71 in npm 0.1.3, cachekit-rs #33/#35 in crates.io 0.4.0.

Deliberately NOT touched — these say "not yet implemented" and are TRUE:
decisions/key-rotation.md, spec/encryption.md:346 and CHANGELOG.md:19 (key
rotation, genuinely unimplemented, LAB-516), and the auto-mode
non-readability statements in spec/interop-mode.md:50 and spec/wire-format.md
(auto-mode is SDK-internal by design). Editing those would introduce a lie.

No normative claim changed — availability wording only. No key format, AAD
construction, encryption, or wire-format change, so the crypto/protocol
expert-panel gate does not apply (same ruling the panel made for this class
of edit on LAB-663). verify.yml's full test-vector suite was run locally and
is green, as expected for a prose-only diff.

Closes LAB-998

Co-authored-by: multica-agent <github@multica.ai>
@27Bslash6

Copy link
Copy Markdown
Contributor Author

Conflict in sdk-feature-matrix.md (3 hunks). Reliability Features table hunk is a real content conflict, not just reformatting: this PR's HEAD adds two new rows (Retry, Graceful degradation) absent from origin/main entirely, and the Circuit breaker/Rust cell directly contradicts between sides (✅ vs ❌). Combining requires editorial judgment about which facts are current — not a mechanical merge. Leaving for a human to resolve.

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.

1 participant