Repository navigation
feat(http): rebuild bounded HTTP/1.1 authority on current main #37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
seonghobae
wants to merge
248
commits into
main
Choose a base branch
from
feat/http11-semantics-main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 180 commits
Commits
Show all changes
248 commits
Select commit
Hold shift + click to select a range
662a519
build(http): register bounded HTTP crate
seonghobae a9215b9
build(http): lock bounded HTTP dependencies
seonghobae b9db53c
feat(http): add bounded HTTP crate manifest
seonghobae cb37ebe
feat(http): add bounded HTTP public surface
seonghobae ceaad5d
feat(http): add bounded content decoding
seonghobae afaf98d
feat(http): add bounded client policy
seonghobae 0dbe3fa
feat(http): add deterministic request serialization
seonghobae 0bd78e5
feat(http): bind canonical request targets
seonghobae e1bcad2
feat(http): add bounded field validation
seonghobae 7524dfa
feat(http): add strict response framing
seonghobae ed1db7e
merge(http): align reconstruction with current main
seonghobae f0deede
feat(http): restore complete production module set
seonghobae e0d02a6
test(http): register reusable HTTP crate in workspace contract
seonghobae 7a8f70a
test(http): restore chunked wire budget contract
seonghobae 6c9aa9e
test(http): restore coverage contract
seonghobae ae4a995
test(http): restore timeout restoration contract
seonghobae ccc40ed
test(http): restore internal HTTP regression suite
seonghobae 823b31a
test(http): restore authenticated HTTP integration suite
seonghobae 053d5f2
style(http): apply canonical Rust formatting
seonghobae f59adaa
docs(http): restore implementation and security evidence
seonghobae 396dad9
docs(http): add current-lineage HTTP authority ADR
seonghobae a79519f
docs(http): add reason-phrase diagnostic ADR
seonghobae c4a774c
docs(http): point chunked doctoring to current ADR
seonghobae 82b05e9
docs(http): point reason diagnostics to current ADR
seonghobae 4b7197f
docs(http): reconcile security doctoring with current ADR
seonghobae b3e0066
test(http): restore current-lineage governance contracts
seonghobae d7f05b2
fix(http): restore crates.io lock checksum integrity
seonghobae a877b5c
Merge branch 'main' into feat/http11-semantics-main
opencode-agent[bot] 403e868
test(http): forbid raw response bytes in Debug output
seonghobae da7d727
fix(http): redact response payloads from Debug output
seonghobae 0b6058d
test(http): cover UTF-8 sniff-prefix boundary
seonghobae 3d92372
fix(http): preserve valid UTF-8 at MIME sniff boundary
seonghobae b21e033
test(http): reject trailing gzip members
seonghobae d1aedf4
fix(http): reject trailing gzip bytes
seonghobae 68eb12e
test(http): verify error source contracts exhaustively
seonghobae 4a5a475
test(http): tolerate post-close server flush failures
seonghobae 4e94c7b
test(http): define HEAD digest integrity semantics
seonghobae 1e01784
fix(http): classify no-content digest contexts
seonghobae b540fec
fix(http): avoid false digest verification for HEAD
seonghobae 68356c9
test(http): bound aggregate interim header bytes
seonghobae 653925a
fix(http): enforce aggregate response-head budget
seonghobae 7573bfb
docs(http): record Structured Fields supersession
seonghobae 765eef3
docs(http): cite current extended-value RFC
seonghobae c605157
docs(http): align locked flate2 version
seonghobae 3f0d362
docs(http): align response API declaration
seonghobae 4ae4168
Merge branch 'main' into feat/http11-semantics-main
github-actions[bot] f419c39
docs(http): correct RFC 9651 authorship
seonghobae 8f66c3c
test(http): cover no-content integrity semantics
seonghobae 26036ed
Merge branch 'main' into feat/http11-semantics-main
github-actions[bot] fc75949
test(http): register no-content integrity coverage
seonghobae 695a023
style(http): apply canonical exchange formatting
seonghobae c20452f
style(http): apply canonical integrity formatting
seonghobae 8699fd5
style(http): canonicalize test module ordering
seonghobae 29acfa0
test(http): fix no-content error assertions
seonghobae 3e7bd5d
test(http): execute credential-safe response Debug contract
seonghobae 5956228
test(http): register runtime response Debug coverage
seonghobae 226d38f
ci(coverage): surface missing production lines in logs
seonghobae 6c3eec0
Merge branch 'main' into feat/http11-semantics-main
github-actions[bot] caac942
ci: drop unrelated coverage diagnostic workflow diff
seonghobae 2d69d87
ci: surface exact coverage gaps for HTTP reconstruction
seonghobae 4ce855a
test(http): cover fail-closed no-content and cumulative head paths
seonghobae 7a4b84a
ci: propagate coverage report failures through tee
seonghobae cd23e48
style(http): apply canonical rustfmt diagnostics
seonghobae 452c63c
test(http): cover invalid reason phrase at exchange boundary
seonghobae c628bc8
test(http): cover incomplete oversized status line
seonghobae 06dab07
style(http): format exact coverage regression
seonghobae 8c1d4d1
test(http): cover cumulative incomplete head budget
seonghobae a6e7a64
test(http): wire cumulative head budget contract
seonghobae a389806
fix(http): apply canonical module ordering
seonghobae 9becaaf
docs(changelog): preserve rebuilt HTTP authority delta
seonghobae f44b2f0
test(http): expose no-content and duplicate length framing gaps
seonghobae df848c5
test(http): apply canonical formatting to framing regressions
seonghobae 26e87d2
test(http): retain RFC same-decimal duplicate semantics
seonghobae 21341af
fix(http): keep no-content metadata outside body budget
seonghobae 7906068
test(http): expose oversized no-content metadata conversion gap
seonghobae 42744e4
fix(http): validate large no-content lengths without narrowing
seonghobae 629fa69
style(http): apply canonical rustfmt diagnostics
seonghobae 73c54f2
test(http): scan nested Rust sources in governance checks
seonghobae c016f4b
Merge branch 'main' into feat/http11-semantics-main
github-actions[bot] 7a0a69b
test(http): reject MIME parameters from essence constructor
seonghobae 6fc6562
fix(http): keep MIME essence constructor parameter-free
seonghobae dafcaee
docs(changelog): record parameter-free MIME essence hardening
seonghobae d039bac
docs(http): index proposed HTTP architecture decisions
seonghobae a343896
docs(http): register proposed HTTP ADR lifecycle
seonghobae 49ba0fd
style(http): restore canonical rustfmt newline
seonghobae 50e31cf
test(http): reject deprecated 305 redirect metadata
seonghobae 7f56e31
style(http): apply canonical test formatting
seonghobae f259e41
fix(http): exclude deprecated 305 redirect metadata
seonghobae 9f7345d
test(http): use active redirect status for query metadata
seonghobae 4a9a0f8
test(http): reject unterminated short HTML signatures
seonghobae 7f26753
style(http): apply canonical MIME test formatting
seonghobae 3f13a56
style(http): retain canonical MIME test newline
seonghobae 0c98421
fix(http): require HTML short-signature delimiters
seonghobae 9e33c5c
style(http): apply canonical MIME formatting
seonghobae 43a4b0c
test(http): delimit short HTML region fixtures
seonghobae e86d1be
test(http): preserve trailer field size diagnostics
seonghobae fe324f7
fix(http): preserve trailer field size diagnostics
seonghobae d6b104f
Merge branch 'main' into feat/http11-semantics-main
seonghobae ff51473
test(http): reject differently spelled duplicate content lengths
seonghobae 0c11908
fix(http): require exact duplicate content-length spelling
seonghobae 87bffae
docs(http): record strict duplicate content-length contract
seonghobae 89b7610
docs(http): note strict duplicate content-length handling
seonghobae 8e03621
test(http): distinguish invalid nosniff metadata
seonghobae 058ead1
fix(http): type invalid nosniff metadata
seonghobae 24a4f32
fix(http): return typed nosniff metadata errors
seonghobae e26021b
test(http): cover typed nosniff error contract
seonghobae 19ed901
test(http): assert typed nosniff integration failure
seonghobae fb2cfa3
docs(changelog): record typed nosniff failure
seonghobae b686685
test(http): align coverage contract with typed nosniff error
seonghobae 4d68918
test(http): reject forbidden 1xx and 204 framing metadata
seonghobae dbac25f
test(http): wire status-specific framing regressions
seonghobae e5cd216
fix(http): enforce status-specific framing metadata
seonghobae fd067eb
fix(http): route final heads through status-aware parser
seonghobae e259054
test(http): register status-aware response parser module
seonghobae dba667d
style(http): apply canonical rustfmt to status framing guard
seonghobae 0e1e078
fix(http): preserve raw response-head parser test surface
seonghobae c95542a
fix(http): preserve raw final parser as assembly authority
seonghobae 85387f2
test(http): cover checked response-head parser edges
seonghobae 85e4867
test(http): reject unterminated HTML tag signatures
seonghobae 24062b7
test(http): enforce HTML tag termination
seonghobae a6c856b
test(http): format tag-termination regression
seonghobae db86a57
test(http): cover exact and BOM-prefixed pseudo-tags
seonghobae dab354b
fix(http): guard HTML tag signature boundaries
seonghobae e20de06
fix(http): activate tag-boundary MIME facade
seonghobae 2a47bde
test(http): pin WHATWG HTML tag terminators
seonghobae 94849f6
fix(http): enforce MIME tag terminators at classifier
seonghobae 2ac59cb
style(http): apply canonical rustfmt
seonghobae 097e51e
style(http): satisfy strict clippy
seonghobae 36c1e95
test(http): require canonical doctoring standards
seonghobae 13c9dde
docs(http): restore canonical standards doctoring
seonghobae ec6e0fc
test(http): reject trailing zlib-deflate octets
seonghobae d790ae1
test(http): reach zlib trailing-byte boundary
seonghobae bc925c7
fix(http): reject trailing zlib-deflate bytes
seonghobae 09cb8e0
test(http): require named policy limit inputs
seonghobae 9d0e24a
test(http): format named policy limit regression
seonghobae c6e8dec
fix(http): add named policy limit constructor
seonghobae 69fc223
test(http): register named policy module
seonghobae bd0ffae
fix(http): apply canonical Rust formatting
seonghobae bf2bcf4
fix(http): make named limits canonical
seonghobae ba8c0f7
style(http): apply canonical rustfmt to named policy tests
seonghobae b226210
test(http): reproduce WHATWG high-byte text sniffing
seonghobae e811c07
fix(http): follow WHATWG binary-byte text classification
seonghobae 807becf
docs(http): record WHATWG text binary sniffing contract
seonghobae 12aea71
docs(http): record MIME text binary correction
seonghobae 69ebe91
docs(http): add WHATWG MIME doctoring reference
seonghobae 59b07d8
test(http): reject raw non-attr chars in RFC 8187 filename
seonghobae 6f01a5f
fix(http): enforce RFC 8187 extended value syntax
seonghobae a41614b
test(http): preserve WHATWG XML MIME evidence
seonghobae e334f45
fix(http): align XML sniff evidence with WHATWG
seonghobae 6b502f2
test(http): update XML signature contract
seonghobae 9bb380f
docs(http): record WHATWG XML sniff evidence
seonghobae 3dea8a7
docs(http): record XML MIME evidence version
seonghobae da9b63e
docs(http): canonicalize XML sniff evidence
seonghobae b34a7e6
test(http): align coverage XML signature evidence
seonghobae a9ef0af
test(http): restore rustfmt-clean coverage contract
seonghobae d591a76
test(http): redact request target debug output
seonghobae 4e93459
fix(http): redact request target debug data
seonghobae f1d21ea
docs(http): record request-target debug redaction
seonghobae 3d3a2a0
docs(changelog): note request-target debug redaction
seonghobae 5c090d1
test(http): reject raw path retention in exchange evidence
seonghobae e2b1645
test(http): apply canonical rustfmt to evidence privacy regression
seonghobae 2b03f55
fix(http): redact request paths before evidence retention
seonghobae 49dc46e
test(http): require credential-safe path evidence
seonghobae c712e57
test(http): verify exchange evidence redacts credential-shaped paths
seonghobae ddf9779
docs(http): record credential-safe request-target evidence
seonghobae ad9eeda
docs(http): record request-path evidence redaction
seonghobae d7467f7
fix(http): retain only root path evidence
seonghobae 04418a7
test(http): require root-only path evidence
seonghobae 6ace217
test(http): verify root-only exchange path evidence
seonghobae 8770736
docs(http): record root-only request path evidence
seonghobae 0d6fdde
docs(http): record root-only request path evidence
seonghobae 53621bd
docs(http): align redirect statuses with strict policy
seonghobae 92e3d44
test(http): reproduce segmented Content-Length surplus
seonghobae 086f7c1
test(http): format segmented surplus regression
seonghobae 3a860ec
test(http): keep surplus regression warning-free
seonghobae d7102ec
fix(http): reject segmented Content-Length surplus
seonghobae 8de5d9c
test(http): remove panic from segmented surplus harness
seonghobae 0a1a463
test(http): keep terminator classifier panic-free
seonghobae a08ce27
docs(http): record Content-Length termination contract
seonghobae e026792
test(http): require eager accept-encoding rejection
seonghobae d08f031
fix(http): reject caller Accept-Encoding at field construction
seonghobae c8e0f1d
refactor(http): centralize fixed request-field authority
seonghobae 27f6acd
Merge remote-tracking branch 'origin/main' into pr-37
seonghobae 7ac2fbb
test(http): pin authoritative RFC citation metadata
seonghobae 464502e
docs(http): correct binding RFC metadata
seonghobae 725c0f6
test(http): enforce canonical doctoring reference order
seonghobae 34b825f
docs(http): normalize doctoring reference order
seonghobae e1fca7c
Merge remote-tracking branch 'origin/main' into feat/http11-semantics…
seonghobae acab530
test(http): cover zero-length expansion ratio floor
seonghobae e668e01
fix(http): honor expansion ratio denominator floor
seonghobae c4a27b7
merge(main): refresh HTTP/1.1 authority base
seonghobae 7bd1ed9
test(http): pin platform-sized framing contract
seonghobae d8aed53
docs(http): correct Content-Length framing width
seonghobae 2aafc98
test(http): accept explicit normative framing erratum
seonghobae c4165b7
test(http): reject ambiguous underscore field names
seonghobae 92d84a7
fix(http): reject ambiguous underscore field names
seonghobae 57be527
fix(http): preserve underscore tchar support
seonghobae 1ebe85b
test(http): reject synthetic MIME for empty bodies
seonghobae 616cdac
fix(http): treat empty MIME observations as binary fallback
seonghobae 4d7bce4
test(http): reproduce raw deflate interoperability failure
seonghobae fc062da
fix(http): bound raw deflate compatibility fallback
seonghobae 4dde00c
docs(http): record bounded raw deflate fallback
seonghobae 4ff865c
test(http): derive chunk wire budget expectation
seonghobae 498962f
test(http): pin malformed response error contracts
seonghobae 8a367dd
test(http): widen segmented loopback timing margin
seonghobae 942482d
test(http): account for terminal chunk wire overhead
seonghobae 7189ccb
style(http): apply rustfmt to coverage contract
seonghobae 3910463
style(http): preserve rustfmt newline
seonghobae 6e7445e
fix(http): guard quoted value slicing
seonghobae 5423803
docs: record HTTP parser hardening
seonghobae 1c9b446
test(http): require one verified response digest
seonghobae fc353c0
test(http): format digest requirement regression
seonghobae 076efe8
fix(http): enforce digest requirement per response
seonghobae a0862dd
test(http): cover missing required digest
seonghobae 2221130
test(http): cover malformed no-content digest exchange
seonghobae 5e3dfcb
style(http): restore rustfmt on digest requirement check
seonghobae f0cf2fa
chore(http): adopt current protected main without tree changes
seonghobae f9fdcb2
chore(http): adopt protected main workflow generation
seonghobae 3d5c752
test(http): preserve current CI contracts in HTTP restack
seonghobae 8a4f2d8
Merge remote-tracking branch 'origin/main' into codex/adopt-current-m…
seonghobae 357fa97
fix(http): suppress reset-content bodies
seonghobae dbff45d
fix(http): frame 205 before rejecting content
seonghobae f70a81d
test(http): require persistent content-length completion
seonghobae e645df9
docs(http): trace persistent content-length boundary
seonghobae b21bfd6
fix(http): complete Content-Length at declared boundary
seonghobae fa34a69
docs(http): record Content-Length persistence repair
seonghobae 5f33908
test(http): align segmented bytes with self-delimited response
seonghobae 6e2c7b9
test(http): require Content-Length persistence release note
seonghobae 28721ed
docs(http): record Content-Length persistence repair
seonghobae 1e2f410
style(http): format persistence regression
seonghobae f6171d1
test(http): reject mutated committed chunk prefixes
seonghobae d6593e1
fix(http): bind incremental chunk parsing to committed bytes
seonghobae fef66f9
fix(http): keep committed-prefix invariant branch-free
seonghobae 24313b8
fix(http): preserve workspace MSRV metadata
seonghobae 5eca738
docs(http): record committed chunk-prefix invariant
seonghobae da736d4
test(http): require RFC 1952 multi-member gzip decoding
seonghobae 5994aca
fix(http): decode complete RFC 1952 gzip representations
seonghobae 28321de
docs(http): align framing and gzip evidence with standards
seonghobae 2f9ab91
docs(changelog): record RFC 1952 multi-member gzip repair
seonghobae 4869038
style(changelog): preserve final newline
seonghobae 1b3d569
test(http): bind content-coding docs to decoder behavior
seonghobae fdbdad4
docs(http): align content-coding design with decoder
seonghobae 6d6e8c0
test(http): bind ADR to decoder compatibility
seonghobae 367e9f6
docs(http): align ADR with decoder compatibility
seonghobae 15e7c97
test(http): avoid case-coupled content-coding contract
seonghobae 7007140
style(http): apply canonical rustfmt diagnostics
seonghobae da7ffb2
test(http): satisfy strict clippy in chunk prefix contract
seonghobae 219b43b
test(http): preserve parse result after strict assertion
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| [package] | ||
| name = "originweave-http" | ||
| version.workspace = true | ||
| edition.workspace = true | ||
| rust-version.workspace = true | ||
| license.workspace = true | ||
| authors.workspace = true | ||
| repository.workspace = true | ||
| homepage.workspace = true | ||
|
|
||
| [dependencies] | ||
| base64 = "=0.22.1" | ||
| flate2 = { version = "=1.1.9", default-features = false, features = ["rust_backend"] } | ||
| originweave-core = { path = "../originweave-core" } | ||
| originweave-tls = { path = "../originweave-tls" } | ||
| sha2 = "=0.10.9" | ||
|
|
||
| [dev-dependencies] | ||
| originweave-destination = { path = "../originweave-destination" } | ||
| originweave-network = { path = "../originweave-network" } | ||
| rcgen = "=0.14.8" | ||
| rustls = { version = "=0.23.42", default-features = false, features = ["ring", "std", "tls12"] } | ||
|
|
||
| [lints] | ||
| workspace = true |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.