Artifact 31920ab487881d5bcb7c196cde6bc5f8591072bbeffea62fef79a90ef43ec541:
- File
src/e2e.zig
-
2026-07-17 15:15:53
— part of check-in
[9636157a85]
on branch recover-inflight
— Dispatch sync on method + Content-Type at any URL path, not just /xfer
A conformant Fossil client POSTs sync to the repository URL path unchanged and MUST NOT append /xfer (sync §4 L759-764): a bare 'fossil clone http://host:port/' POSTs to "/". The server previously required the /xfer path and answered 404 for anything else, so a root-URL clone from a stock client failed.
Drop the path from the dispatch decision entirely. classifyXfer now keys only on method (POST) and a request-valid, outer-compressed Content-Type (application/x-fossil); the URL path is accepted but unused. Remove xfer_path, requestPath, and the not_found/404 disposition; Disposition collapses to ok / method_not_allowed / unsupported_media_type. A non-POST stays 405 rather than a home redirect this sync-only server can't honor (and a 302 to "/" would loop now that "/" is a valid endpoint).
The over-real-HTTP e2e clone now targets the bare root "/" to prove a root-URL client interoperates. Unit + e2e green; fmt clean. (user: dmestas, size: 308229) [annotate] [blame] [check-ins using]
-
2026-07-17 15:20:52
— part of check-in
[dbb2735bff]
on branch trunk
— Merge recover-inflight: root-URL sync serving + the log one-verb surface
Two independent slices recovered from an interrupted session, each gated green.
- Sync now dispatches on method + Content-Type at any URL path (§4 L759-764), so a stock 'fossil clone http://host:port/' at the bare root interoperates; the /xfer-only requirement and its 404 are gone. - 'zit log' is reduced to the signed one-verb surface: one check-in ID, help only, no -n windowing; usage errors exit 2, a bad ID exits 1.
Unit + e2e (209/209) green; fmt clean; dst 6x1000 ok. (user: dmestas, size: 308229) [annotate] [blame] [check-ins using]
-
2026-07-17 15:15:53
— part of check-in
[9636157a85]
on branch recover-inflight
— Dispatch sync on method + Content-Type at any URL path, not just /xfer