Skip to content

lab-ops-hub: container validator codec path (IDNA2003 nameprep) returns differ from Worker for ß, final sigma, post-3.2 codepoints #4019

Closed

Description

@dezren39

Found during the task 4848 differential for #659 (PR #3781, 2026-11-01): three accepted IDN spellings where the container validator's returned host still differs from the Worker's WHATWG return, all on the stdlib-IDNA-codec path in pkgs/lab-ops-hub/container/app.py (_return_label: candidate.encode("idna") — IDNA2003 nameprep, Unicode 3.2 tables), not the punycode fallback fixed in PR #3781.

Reproduction (container return vs new URL().href):

Spelling Container Worker (WHATWG/UTS-46)
http://ß.com/ http://ss.com/ http://xn--zca.com/
http://ς.com/ http://xn--4xa.com/ (σ) http://xn--3xa.com/ (ς)
http://ꭰ.com/ (U+AB30) http://xn--kz9a.com/ http://xn--58d.com/

Causes: nameprep maps ß→ss (UTS-46 nontransitional keeps ß) and final sigma ς→σ (UTS-46 keeps ς; only U+03F2 maps to σ), and the codec's Unicode 3.2 tables encode newer/changed codepoints differently from current UTS-46.

These change the domain the fetcher resolves versus the one the Worker certified — the same defect class as #659/#665, different mechanism.

Acceptance:

Acceptance criteria

  • For the three filed spellings, the container validator returns the same host as the Worker (WHATWG/UTS-46): ß.com → xn--zca.com, ς.com → xn--3xa.com, ꭰ.com (U+AB30) → the current UTS-46 punycode, verified by a differential test against new URL().href.
  • The fix replaces or corrects the stdlib IDNA2003 nameprep path in pkgs/lab-ops-hub/container/app.py (_return_label) rather than special-casing the three filed inputs.
  • Existing lab-ops-hub container validator tests pass, and the PR fix(lab-ops-hub): return IDN hosts in A-label form from container validator (#659) #3781 punycode-fallback behavior is unchanged.
  • A regression differential (container vs Worker) over the filed cases is added to the test suite.

Activity

  1. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    priority/normalOrdinary priority (the default)
    app/lab-ops-hubPackage/app: lab-ops-hub (pkgs/ or apps/ in this repo)
    on Nov 1, 2026
  2. added
    effort/sSmall: expected under 2 hours of work
    source/queue-workerFiled or worked by the queue/worker pilot
    on Nov 1, 2026
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review

  4. added
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  5. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  6. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  8. 45 remaining items

  9. added
    queue/claimedQueue worker lifecycle state
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    agent-note:v1

    • transition: parked
    • task: 8969
    • worker: repo-worker-code (lane code-d)
    • execution_lane: direct
    • note: Parked another 20 min — PR fix(lab-ops-hub): align IDN returns with WHATWG #5231's basic production-line-limit check (run 41765360362) has been pending ~30 min in the CI backlog across two poll windows. Everything else is merge-ready: both Codex P2 findings fixed and replied; the CodeRabbit workflow-trigger finding fixed in f58eb9d and replied. Resume: merge PR fix(lab-ops-hub): align IDN returns with WHATWG #5231 when the check goes green, then complete task 8969 as fixed_merged.
  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

  12. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/lab-ops-hubPackage/app: lab-ops-hub (pkgs/ or apps/ in this repo)effort/sSmall: expected under 2 hours of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions