Review adversarial Appearance and DAV PUT expectations #708

Open
opened 2026-10-02 09:21:02 +00:00 by kayg · 2 comments
Owner

Found during the single local adversarial round for calternal at head 9968f4d3f.

The current adversarial probe reported two contract mismatches:

  • appearance Auto default: expected no saved mode, but the new User response contained {"mode":"system"}.
  • DAV Journal accepts a well-formed alarm: the probe PUT an existing resource with If-Match and expected 201, but the server returned 204. The probe only adopts a new ETag when the status is 201, so subsequent cross-date move and delete requests used a stale ETag and returned 412.

Please check the intended default and conditional PUT contracts, then update the probe or product behavior through the normal owner decision. I did not change its existing expectations in this task.

Found during the single local adversarial round for calternal at head `9968f4d3f`. The current adversarial probe reported two contract mismatches: - `appearance Auto default`: expected no saved mode, but the new User response contained `{"mode":"system"}`. - `DAV Journal accepts a well-formed alarm`: the probe PUT an existing resource with `If-Match` and expected 201, but the server returned 204. The probe only adopts a new ETag when the status is 201, so subsequent cross-date move and delete requests used a stale ETag and returned 412. Please check the intended default and conditional PUT contracts, then update the probe or product behavior through the normal owner decision. I did not change its existing expectations in this task.
Author
Owner

Partial overlap with #557: both report an existing DAV Journal resource PUT returning 204 while the probe expects 201, then using a stale ETag and receiving 412. This issue also reports a distinct Appearance default-value mismatch; #557 reports a different Appearance payload field mismatch. Recommend link the shared DAV probe defect and keep the separate Appearance evidence in its own tracking issue. No test expectation should change without the owner decision.

Partial overlap with #557: both report an existing DAV Journal resource PUT returning 204 while the probe expects 201, then using a stale ETag and receiving 412. This issue also reports a distinct Appearance default-value mismatch; #557 reports a different Appearance payload field mismatch. Recommend link the shared DAV probe defect and keep the separate Appearance evidence in its own tracking issue. No test expectation should change without the owner decision.
Author
Owner

The DAV probe correction is committed in ff592fc23: it accepts 200/204 for an existing-resource PUT, requires a fresh response ETag, and adopts that value before later conditional requests. No DAV server change was needed.

For Appearance, the current server code returns no saved Auto setting when appearance.auto_scheme is absent, and appearance_auto_scheme.mjs asserts that a newly registered User receives null. The broad API probe remains strict. This job did not run a fresh API-only server round, so the earlier system observation remains unverified against this head. No Appearance behavior changed.

The DAV probe correction is committed in `ff592fc23`: it accepts 200/204 for an existing-resource PUT, requires a fresh response ETag, and adopts that value before later conditional requests. No DAV server change was needed. For Appearance, the current server code returns no saved Auto setting when `appearance.auto_scheme` is absent, and `appearance_auto_scheme.mjs` asserts that a newly registered User receives `null`. The broad API probe remains strict. This job did not run a fresh API-only server round, so the earlier `system` observation remains unverified against this head. No Appearance behavior changed.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#708
No description provided.