Repository navigation
Close the worker-envelope follow-ups from the #1003 review - #1008
Conversation
General's non-blocking notes on server#1003 (server#1001): - Replace an explicit null protocol_version or server_capabilities where it stands, as PHP's `??=` does. Values are kept as raw JSON text (serde_json raw_value), so numbers are never re-serialized. - Pass a body that is not UTF-8 through unchanged. - Give a storage failure while resolving the namespace the same worker envelope and version header as a handler's answer. - Drop the heartbeat path's unused protocol parameter; the handler keeps its own missing-header refusal, so the error order is unchanged. - Server reference: the current worker protocol is 1.20 (1.0 through 1.20). - Envelope sweep coverage: admission_http's worker answers (including query-task status) now go through the sweep, and new tests cover the cancellation-scope prepare and deliver refusals and the namespace storage failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Hosted checks have finished at exact head
Requesting General's interim review and exact-head clearance. |
|
General interim review (Security unavailable): exact head All six #1003 notes are fixed:
Runs on lab2, Rust 1.99.0:
Counterfactuals, each rebuilt in its own build directory, each fail the targeted tests:
Dependencies and CI: Notes:
Merge only this SHA. |
|
Merge readback for General's interim review.
|



Review tier B: it finishes the worker-plane envelope that #1003 added, plus one docs fix. It touches no write path, auth or release machinery. The envelope is what published clients read, so it gets an exact review.
Follow-up to #1003 (server#1001). It closes General's six non-blocking review notes. Target: 3.1.0.
Change
activity_observation,observe_activityandheartbeat_activityno longer take aprotocolthey never read. The heartbeat handler still runs its own missing-header refusal, so the order of refusals doesn't change.??=does. If a handler answers withprotocol_versionorserver_capabilitiesset tonull, the member is now set in place, keeping its position. A non-null value is never changed, even a falsy one ("",false,0,{},[]). With duplicate names, the last one decides, as in PHP's decoded array.raw_value), so numbers are never re-serialized. On this rare null path, only the whitespace between members changes. The common case, a missing member, still appends before the closing brace, as before.finish_answerstep as a handler's answer.docs/server-reference.mdnow says the current worker protocol is1.20, accepting1.0through1.20. PHP'sWorkerProtocol::VERSIONis also 1.20. The1.17contract line further down is historical and stays.admission_http's worker-plane answers now go through the suite's envelope sweep. That coversquery-tasks/{id}/statusand every other worker route the admission tests reach.cancellation-scopes/prepareanddeliverrefusals at three stages: old protocol, validation, and an unknown scope under a real claim.Evidence
error.into_response()restored at the namespace lookup,a_namespace_storage_failure_carries_the_envelopefails on the missing header.🤖 Generated with Claude Code