Skip to content

ci: diagnose mutation stats flake (do not merge) - #390

Closed
subnetmarco wants to merge 19 commits into
mainfrom
diag/mutation-stats-flake
Closed

subnetmarco wants to merge 19 commits into
mainfrom
diag/mutation-stats-flake

Conversation

@subnetmarco

Copy link
Copy Markdown
Member

Temporary diagnostic on top of #389: when mutmut cannot collect stats, rerun the stats-mode suite with failure output. Will be closed once the flaky test is identified.

Made with Cursor

subnetmarco and others added 19 commits October 6, 2026 17:40
Regenerates the internal client from the Hosting spec with the durable approval request, list, get, stats, approve, and deny operations, and requires the operations the SDK calls.

Co-authored-by: Cursor <cursoragent@cursor.com>
DurableContext.wait_for_approval registers an approval with Volcano from the runtime's callback submitter and suspends until a person decides. A denial or a timeout returns an ApprovalDecision rather than raising. @durable reads the execution reference from the invocation and passes it to child, map, and parallel contexts.

client.durable.approvals lists, reads, summarizes, approves, and denies approvals. HTTP 403 now raises PermissionDeniedError, a subclass of AuthenticationError.

Co-authored-by: Cursor <cursoragent@cursor.com>
Retry registration on network errors, timeouts, 404, 429, any 5xx, and
409 approval_not_ready, on the JS SDK's delay schedule within one
30-second deadline that also caps each attempt's timeout. A 409
approval_closed now counts as registered, so an approval whose timeout
passed first resumes with the expired decision instead of failing the
execution.

Refuse text that cannot be encoded as JSON and approvals over 64 KiB
(with room for the longest callback id) before the callback opens, and
send the exact bytes that were measured. Out-of-range approval timeouts
raise TypeError, as ctx.wait does.

Correct the guide: approvals have no name filter, and a refusal reaches
the handler as the runtime's CallbackSubmitterError.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…eniently

Co-authored-by: Cursor <cursoragent@cursor.com>
…from its context

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…avaScript SDK does

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Names are the runtime's operation name, so they hold to printable ASCII and 237 characters. NUL is refused before the callback opens, details are copied when checked, and a stalled host lookup no longer outlasts its attempt.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	openapi/openapi.yaml
… wins

Co-authored-by: Cursor <cursoragent@cursor.com>
…merge)

Co-authored-by: Cursor <cursoragent@cursor.com>
@subnetmarco

Copy link
Copy Markdown
Member Author

Found it: the cancelled-unsubscribe realtime tests time out in ControlledCentrifugeFactory.command (0.2 s). Fixed on #389.

@subnetmarco subnetmarco closed this Oct 8, 2026
@subnetmarco
subnetmarco deleted the diag/mutation-stats-flake branch October 8, 2026 23:25
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