Skip to content

Characterize legacy TCP contracts and boundary policy - #5

Draft
JacobBorden wants to merge 4 commits into
masterfrom
codex/networking-characterization
Draft

JacobBorden wants to merge 4 commits into
masterfrom
codex/networking-characterization

Conversation

@JacobBorden

@JacobBorden JacobBorden commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

November 5 increment 4ef7573d3c71a75f389371fbedefbb74096c9c0d, canonical base 928837c83c3a72d8102ee8f3ffd0703a0cd44018: deterministic recv script supplies 512 binary bytes then ECONNRESET. Legacy Receive returns 511 bytes and closes the socket; two new checks preserve this defect evidence, not proposed-contract acceptance. Production unchanged.

Validation: python3 characterization/contract-baseline-v1/run.py --output <task-worktree>/work/20261105-error-progress exit 0, nine commands, Debug/Release plus 100 repetitions = 1,734 group passes. Each proposed-contract run retains five expected failures (12 passes/5 failures, CTest exit 8). GCC 15.2.1 / CMake 3.31.0 Linux; diff check passed. Source bytes unchanged across validation and commit. Remote CI pending. Consumer remains unpinned at http-server 86305e4f; no new consumer build or qualification. API/backend, five transport gaps, Windows, sanitizer, lifecycle/deadline/cancellation gates remain open. Keep draft.

November 4 increment at 8f0127f7da17a234c1d0d7d9657a4eb782f7c611, canonical base 928837c83c3a72d8102ee8f3ffd0703a0cd44018: added a stateful binary recv script covering 512+3 bytes, exact append offsets/bounds, short-read termination and subsequent EOF. Production implementation unchanged.

Validation: python3 characterization/contract-baseline-v1/run.py --output <task-worktree>/work/20261104-stateful-receive exit 0; nine commands; Debug/Release plus 100 repeats = 1,530 characterization group passes. Both contract runs retain exactly five expected failures (10 passes/5 failures, expected CTest exit 8). git diff origin/master...HEAD --check passed. GCC 15.2.1 / CMake 3.31.0 Linux. Tested source bytes match the committed head; commit occurred during validation without changing those inputs. Unchanged policy evidence reused. Exact-head remote CI pending readback.

http-server master remains 86305e4fb61d2ba06dda4523ebb64e9b65c30521; immutable CMake has no GIT_TAG, and main retains unsafe Receive string construction and detached workers. No consumer changes or new compatibility acceptance. Five transport gaps, API/backend, lifecycle/deadlines/cancellation, sanitizer and Windows qualification remain open. Keep draft.

November 2 increment at 870c31b3f0d116ff8193d7f853005079b34ba57c: real IPv4 loopback binary Receive drain before EOF and persistent EOF checks. All 256 byte values across 1,024 bytes; native explicit-length send isolates Receive. Current GCC 15.2.1 / CMake 3.31.0 Linux runner passed Debug/Release plus 100 repeats: 1,326 groups, zero unexpected results; both contract runs retain exactly five expected failures (8 passes/5 failures, CTest exit 8). Canonical base remains 928837c83c3a72d8102ee8f3ffd0703a0cd44018. Production transport unchanged. Exact-head CMake and both TCP characterization runs are terminal-successful (GitHub check metadata verified November 2 at 07:10 UTC).

Historical publication validation follows:

Publishes the completed legacy TCP characterization, backend comparison, and executable boundary-policy proposal. The production CLIENT/SERVER implementation is unchanged. A focused Linux workflow runs the two characterization runners so the draft has executable CI beyond the existing root build.

Validation on candidate 228aae83612d7a8e7dbd75e6d60d08c32b26b13c, based on current master at 928837c83c3a72d8102ee8f3ffd0703a0cd44018:

  • python3 characterization/contract-baseline-v1/run.py --output <absolute-output> passed: Debug and Release builds, 102 legacy executions including 100 consecutive repeats, and 1,122 legacy groups. Each Debug/Release proposed-contract run reproduced exactly the five expected gaps; those failures are characterization controls, not repaired-transport acceptance.
  • python3 -B characterization/status-policy-v1/run.py --output <new-absolute-output> passed: five proposal groups, 46 assertions, and both mutation controls rejected at their expected failure labels.
  • git diff origin/master...HEAD --check passed. Only characterization source/docs and its focused workflow are included; local receipts, build artifacts, and unrelated primary edits are excluded.

The five transport gaps remain: embedded-NUL truncation, an all-byte payload starting with NUL, incomplete short reads, partial short writes, and negative-receive resizing before error handling. The status model is a proposal without a socket backend. Windows/MSVC, repaired lifecycle/deadline/cancellation behavior, exact-pinned http-server compatibility, package acceptance, and backend approval remain open. Remote checks must be read against this exact head; this PR stays in draft while those results and remaining gaps are reviewed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant