docs: record four self-audit gaps in the parity ledger - #13
Merged
Conversation
Add a Partial row for backpressure and payload caps, note that neither runtime auto-selects a wake-up adapter, explain why the MySQL row tracks only mysql2, and record the operator dashboard's shared retry, audit-trail, and pause limits. Each addition was checked against the Ruby implementation before being written.
Greptile SummaryThe parity ledger now documents shared runtime limitations and clarifies differences that are not JavaScript parity gaps.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "fix: correct payload error type and sati..." | Re-trigger Greptile |
| | Domain rejection and strict poison ordering | Native | Rejections accept JavaScript identifier-style codes and roll back without retry; invalid codes fail terminally, while retryable failures block later operations until completion or dead-lettering. | | ||
| | Bounded activation passes and hot-actor fairness | Native | Configurable turn-count and elapsed-time budgets bound each pass, then move only that actor's already-due memberships behind actors already waiting. | | ||
| | Bounded claim candidate scan | Native | A configurable ordered scan continues to another ready actor when a worker loses the first candidate's lease race. | | ||
| | Backpressure and payload caps | Partial | Serialization enforces a shared maximum JSON nesting depth and an optional caller-supplied `maxBytes` limit, both raising `PayloadTooLarge`; reminder names are bounded to 255 characters. Distributed per-actor rate limits and global admission control do not exist yet, matching the open Ruby roadmap item. | |
There was a problem hiding this comment.
Distinguish payload error types
The new row says excessive nesting and an exceeded maxBytes limit both raise PayloadTooLarge, but nesting raises InvalidPayload; this gives callers incorrect error-handling guidance.
Suggested change
| | Backpressure and payload caps | Partial | Serialization enforces a shared maximum JSON nesting depth and an optional caller-supplied `maxBytes` limit, both raising `PayloadTooLarge`; reminder names are bounded to 255 characters. Distributed per-actor rate limits and global admission control do not exist yet, matching the open Ruby roadmap item. | | |
| | Backpressure and payload caps | Partial | Serialization enforces a shared maximum JSON nesting depth, raising `InvalidPayload`, and an optional caller-supplied `maxBytes` limit, raising `PayloadTooLarge`; reminder names are bounded to 255 characters. Distributed per-actor rate limits and global admission control do not exist yet, matching the open Ruby roadmap item. | |
Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/parity.md
Line: 41
Comment:
**Distinguish payload error types**
The new row says excessive nesting and an exceeded `maxBytes` limit both raise `PayloadTooLarge`, but nesting raises `InvalidPayload`; this gives callers incorrect error-handling guidance.
```suggestion
| Backpressure and payload caps | Partial | Serialization enforces a shared maximum JSON nesting depth, raising `InvalidPayload`, and an optional caller-supplied `maxBytes` limit, raising `PayloadTooLarge`; reminder names are bounded to 255 characters. Distributed per-actor rate limits and global admission control do not exist yet, matching the open Ruby roadmap item. |
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Nesting-depth overflow raises InvalidPayload, not PayloadTooLarge; only the caller-supplied maxBytes check raises PayloadTooLarge. Also run prettier so the table matches the repo's pinned column widths.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Partialrow for backpressure and payload caps (shared JSON nesting limit, optionalmaxBytesguard, 255-char reminder names), noting the missing distributed rate limits already tracked as an open Ruby roadmap item.mysql2: Ruby also teststrilogy, Node has no comparable second client.dead_letter_manager.rb/dead-letters.tsand the pause implementation on both sides, not inferred from docs alone.Found by a real run of the
solid-objects-auditskill against this repo andsolid_objects(Ruby), covering the 0.12.0–0.13.3 version range both changelogs share.Test plan
docs/parity.mdon GitHub