Status: phase-3 completion contract is green.
| Suite | Result | Command |
|---|---|---|
| Workspace tests | 201 / 201 | cargo test --workspace |
| Rust-vs-C wire oracle | 4 / 4 | bash harness/oracle/run-smoke.sh --diff |
Upstream devel/test.py |
62 / 62 | bash harness/oracle/run-official.sh |
| Completion contract | DONE | python3 ../port-harness/loop/check-completion.py --project . --run-commands |
The oracle launches the pinned C reference and the Rust server, sends the same HTTP request fixture to both, normalizes explicitly allowed dynamic fields, and requires byte equality after normalization.
Current fixtures:
| Fixture | Capability |
|---|---|
get-index |
get-static |
get-file |
get-static |
head-index |
head-static |
traversal |
path-traversal-rejection |
Run:
bash harness/oracle/run-smoke.sh --diffExpected:
get-file PASS
get-index PASS
head-index PASS
traversal PASS
The public conformance claim is the upstream reference/darkhttpd/devel/test.py
runner:
62/62 ok, 0 fail, 0 error
Run it directly:
bash harness/oracle/run-official.shThis does not yet claim every optional upstream devel/test_*.py file. Those
files exercise surfaces such as auth, custom headers, forwarding, custom
server-id behavior, and timeout-specific cases. They should be wired as
separate runner rows before expanding the public compatibility claim.
Allowed normalizers are implemented in harness/oracle/normalize.py.
Currently allowed:
DateheaderServerheader- generated timestamp inside darkhttpd's 400 error body
Not allowed to normalize without an explicit fixture note:
- status code
- content length
- response body text except listed dynamic timestamp fields
- MIME type
- range headers
- connection close vs keepalive
- redirect location
The source of truth for "done" is:
harness/completion.toml
Current contract:
- phase-2 packets complete: 11 / 11
- phase-3 packets complete: 8 / 8
- wire oracle: 4 / 4
- official upstream runner: 62 / 62
- official per-test ledger detail: 94 / 94 latest rows pass
- no required auto packets remain
- performance baseline passes
- Rust security traversal seed passes