Skip to content

RFC 3986 percent-coding as its own extdeps model (re-derives #13390) - #13699

Closed
gunbai-bot[bot] wants to merge 4 commits into
mainfrom
royal-owl-365/percent-coding
Closed

gunbai-bot[bot] wants to merge 4 commits into
mainfrom
royal-owl-365/percent-coding

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Re-derives gunbc#13390 (history only; its head is not a base) on current main.

What changed

  • extdeps.uri keeps what it always was: the scheme/Uri value. RFC 3986 section 2.1 percent-coding is now its own model, extdeps.uri.percent_encoding, which cites the RFC through an ExternalAuthority anchor (DESIGN 3: cite the real upstream, model what it specifies). It owns the encode and decode folds, UriValidatedScalar (sole_constructor) and the typed refusals.
  • The model uses the one UTF-8 encoder and decoder (std.bytes utf8_encode_bytes, std.encoding utf8_decode_octets) instead of the local fold extdeps.uri carried (single authority, DESIGN 2/3). The old comment that std.encoding sits above extdeps.uri is no longer true of the split.
  • Importers repointed: github/app, namecheap/client, standards/rfc_8118, citation/pdf_safe_profile, principal_mention, roadmap_auth_routes, oracle_oci instance_ensure and tenancy_usage, the citation_cit1 and consumer witnesses, the guarantee-probe sole_constructor sources, the uri_percent encode/decode witnesses. Citations of extdeps.uri UriValidatedScalar now name the new module.
  • std.os.invocation (root cause, section 6b): it used NonEmptyStr, List, CallingConvention with no imports. The larger closure the split pulls in (through std.encoding -> architecture_profile) made the census harness (type_ref_hit_ne_bind_measure, census-only) report a blocking UnresolvedType, which broke the sole_constructor probe claims. Added the three imports; no widening.
  • Stage0 mirror extdeps_uri.rs regenerated with claim_executor --required-regen (only that surface drifted; planned=executed=adjudicated=169).

Receipts

  • claim_batch on a seed built from this head: uri_percent_encode 13/13, uri_percent_decode 8/8, citation_cit1 22/22, citation_cit1_consumer 17/17, guarantee_probe_corpus 49 pass; its 4 failures (bare_none_generic_parameter_field_is_outside_the_wall_boundary, two sole_constructor green controls, dark_suite_dispositions_cover_migrated_v1_probes) fail identically on a clean main checkout with the same binary (pre-existing, unrelated to this change).
  • gunbc test //gunbc/instruments:self-host exit 0 and //gunbc/instruments:v2-native-cli exit 0 at head 24c6400. srv1 was not reachable by ssh from this container (no identity), so both ran in this container, whose cgroup memory.max is 24 GiB (no systemd-run available here).

Not carried over

The Unicode from_code_point and git-fixture companions (#13378, #13392) are out of scope, per the brief.

🤖 Generated with Claude Code

Handoff (successor can continue from origin alone)

State: green on its head; landing packet is owed once #13711 lands. Next: on the parent's go, merge main ONCE by merge commit (no rebase), regen stage0 mirrors to the fixed point (claim_executor --source-root dag --source-root src/v2 --required-regen, RC 0; take conflicted mirrors from main), run the drift gate (generated_artifact_gate main_wet; revert unrelated sudoers drift), rerun claims and both instruments on srv1 (systemd-run --user --scope -p MemoryMax=22G -p MemorySwapMax=0), wait for witnesses + fresh review, send packet. Traps: delete gitignored roster.dag files (recurring_failure_mode, rung_drop) before each run; StaleBinary means rebuild after the last edit; do not merge main unless GitHub says DIRTY. Follow-up: half 2 of the from_code_point row (git fixture over percent-coding) on branch royal-owl-365/from-code-point after this lands. Notes: docs/handoff/royal-owl-365-from-code-point.md on that branch.

Brian Searls and others added 3 commits October 10, 2026 20:10
…n main)

Splits extdeps.uri into the scheme/Uri value (extdeps.uri) and the RFC 3986 section 2.1
percent-coding model (extdeps.uri.percent_encoding), which cites the RFC through an
ExternalAuthority anchor and uses the one UTF-8 encoder/decoder (std.bytes, std.encoding)
instead of a local fold. Importers repointed; stage0 mirror regenerated; std.os.invocation
gains its missing imports (census-mode UnresolvedType exposed by the larger closure).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… encoder (std.bytes utf8_encode_bytes), not a parallel lead/continuation fold (review 78528)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor Author

Review 78528: fixed in 25633e3. Reserved-scalar encode now takes its octets from std.bytes utf8_encode_bytes (bytes_octets fold into %HH via uri_percent_encode_octet_step); the lead/continuation math and the two/three/four-octet helpers are gone, so UTF-8 has one authority on both halves. Claims: encode 13/13, decode 8/8, citation_cit1 all PASS; self-host rc=0, v2-native-cli rc=0 on that head; required-regen drifts only in the pre-existing ietf mirror.
Review 78532: the stage0 extdeps_uri.rs is shrunk (-1163 lines), not deleted; the regen candidate matches it, so crate::extdeps_uri users resolve. No change. — sent from royal-owl-365

@gunbai-bot

gunbai-bot Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #13730 (same tree plus main 1ed90d9, reopened from an id-free branch so the lane stays reachable after merge). Closed unmerged.

@gunbai-bot gunbai-bot Bot closed this Oct 11, 2026
gunbai-bot Bot added a commit that referenced this pull request Oct 11, 2026
…supersedes #13699) (#13730)

* RFC 3986 percent-coding as its own extdeps model (re-derives #13390 on main)

Splits extdeps.uri into the scheme/Uri value (extdeps.uri) and the RFC 3986 section 2.1
percent-coding model (extdeps.uri.percent_encoding), which cites the RFC through an
ExternalAuthority anchor and uses the one UTF-8 encoder/decoder (std.bytes, std.encoding)
instead of a local fold. Importers repointed; stage0 mirror regenerated; std.os.invocation
gains its missing imports (census-mode UnresolvedType exposed by the larger closure).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* percent-encode: reserved scalars take their octets from the one UTF-8 encoder (std.bytes utf8_encode_bytes), not a parallel lead/continuation fold (review 78528)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Regenerate docs/design-rung-drops.md projection (drift gate named it)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
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.

0 participants