You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Simplification pass over the DO-reset resilience work
Architectural: the idempotent-read retry moves from 19 per-call-site
withDoResetRetry wraps (which had already drifted — providers.tsx left
getAiConfig unwrapped while OnboardingWizard wrapped it) to a single
withReadRetries proxy installed where useAuth creates the stub, keyed by
a method-level allowlist — idempotency is a property of the method, not
the call site. Future reads get the policy for free; writes and unlisted
methods pass through untouched.
Mechanical: the backend Proxy's RAW_USER_STUB symbol escape hatch is
replaced by caching the raw stub in a second field — no symbol, no
double casts, and the thrash guard compares against the trap's own
target. logRpcFailure now owns do-reset telemetry via a reportSite
option, collapsing the classify-report-log ritual at three action sites.
The workerd dead-capability message now lives once, in workshop-shared,
referenced by the backend matcher and the frontend classifier, so the
frontend canary guards both.
Block/line: the two coded-error families in api.ts share one
codedErrorFamily factory (membership derived from the message record
instead of hand-enumerated); the composer's send-hiccup hint is one
state value scoped by its render condition instead of a boolean, a ref
mirrored during render, and a comparison at set time; fake-timer
try/finally scaffolding in rpcErrors.test.ts becomes afterEach, twin
retry tests merge into it.each, and error fixtures share an rpcError
helper. New tests pin the chokepoint: listed reads retry once, writes
never do.
0 commit comments