docs: fix six SPEC.md text-accuracy issues - #152
Merged
Conversation
Bring several normative catalogs in docs/SPEC.md back in line with the code they describe: - 12.2 UriParseError catalog: drop the non-existent InvalidAuthority variant and the offset fields on EmptyHost/InvalidPort that the code does not carry, correct InputTooLong/LimitExceeded field types to Int, and add the two shipped IriInvalidCodePoint / IriBidiFormattingCharacter variants that were missing. [ERR-10] and the reject/normalize table now describe an unterminated authority as surfacing through the host variants (InvalidHost/Ipv6Malformed, ForbiddenHostCodePoint) rather than a dedicated authority error, and [ERR-18] documents the two IRI-only variants. - 3 Host catalog: RegName/IpFuture/Opaque expose their payload as `value` (not ascii/raw/encoded), matching Host.kt; [MODEL-16]/[MODEL-21] and the Appendix A rows follow. - [MODEL-46]: drop `user`/`password` from the nullable-accessor list — Url exposes non-null username/password and Uri has no per-field accessor. - Remove [CONF-104]'s query pair-count DoS cap, which contradicted the no-cap rule now stated explicitly in [ERR-32]; QueryParameters applies no such cap. - Renumber the duplicated [NORM-30]/[NORM-31] tags (the toUrl bridge pair) to [NORM-33]/[NORM-34] and reorder the Appendix A index; the kept definitions and every code/doc citation continue to point at the originals. - Abstract: describe kuri as a Kotlin Multiplatform library, matching the target list.
OmarAlJarrah
force-pushed
the
e7-specmd-accuracy
branch
from
July 20, 2026 17:31
4d4ee5e to
41ef214
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
[CONF-104]'s query pair-count DoS cap, which directly contradicted[ERR-32]and[QUERY-24](and pointed its own cross-reference at the section that contradicts it); the shippedQueryParameterscode and the two more specific requirements already agree there's no cap.UriParseErrorcatalog in line with the shipped sealed interface: dropped the nonexistentInvalidAuthorityvariant and the offset fields onEmptyHost/InvalidPortthat don't exist in code, fixedInputTooLong's andLimitExceeded's field types (Int, notLong), and added the shippedLimitExceededand the twoIri*variants that were missing.LimitExceeded/ResourceLimitare documented as implemented (they now ship in the codebase), and[ERR-18]describes the two IRI-only variants. Also noted that an unterminated IPv6 authority (http://[::1/) surfaces asInvalidHost/Ipv6Malformed, not a separate authority-level error.[MODEL-14]/[MODEL-16]/[MODEL-21], which named theHostvariant propertiesascii/raw/encoded— the shippedHost.ktnames all threevalue.[MODEL-46]'s nullable-accessor list:Urlexposes non-nullusername/password, andUrihas no per-field accessors at all;[MODEL-48]/[NORM-30]already describe this correctly elsewhere.[NORM-30]/[NORM-31]tags to[NORM-33]/[NORM-34]and updated the Appendix A index; the code comments that cite[NORM-30]/[NORM-31]already point at the earlier (unchanged) definitions, so no source changes were needed.All changes are text-only edits to
docs/SPEC.md; no code was touched.Test plan
docs/SPEC.mdand the actual shipped code it describes (UriParseError.kt,Host.kt,ResourceLimit.kt,QueryParameters.kt,SerializeShared.kt/UriSerializer.kt/UrlSerializer.kt).NORM-30/NORM-31code citations needed updating (they all reference the definitions that kept their original tags).main: the resource-limit feature has since landed, soResourceLimit/LimitExceededare documented as implemented (withIntfield types) rather than deferred, and the catalog keeps the shippedLimitExceededvariant.Closes #108
Closes #109
Closes #116
Closes #120
Closes #121
Closes #122