Skip to content

feat(targeting): add BCP 47 language discovery - #6605

Merged
bokelley merged 2 commits into
mainfrom
codex/bcp47-language-capabilities
Aug 16, 2026
Merged

feat(targeting): add BCP 47 language discovery#6605
bokelley merged 2 commits into
mainfrom
codex/bcp47-language-capabilities

Conversation

@bokelley

@bokelley bokelley commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • preserve legacy boolean language capabilities while adding structured supported-language discovery
  • widen targeting language ranges to the shared canonical BCP 47 primitive
  • define exact capability membership and RFC 4647 Basic Filtering execution semantics
  • add focused schema compatibility coverage

Compatibility note

  • The recorded language oneOf is type-disjoint: the legacy form is a boolean and the structured capability form is an object. The baseline entry documents a walker limitation, not a decode ambiguity.

Validation

  • npm run test:language-targeting
  • npm run test:language-tag-refs
  • npm run test:oneof-discriminators
  • npm run test:json-schema
  • npm run test:schemas
  • npm run test:examples
  • npm run test:docs-nav
  • npm run test:owned-links

Closes #5706.
Closes #5720.

Comment thread scripts/oneof-discriminators.baseline.json

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated schema paths require human/CODEOWNERS review.

This PR widens targeting.language from the ISO 639-1 pattern to the canonical BCP 47 locale-tag primitive and adds a structured boolean|object language capability with exact supported_languages membership. The reviewer verified the change is non-breaking (every prior 2-letter value still matches locale-tag's [a-z]{2,8} subtag), schema↔docs coherent across all three edited pages, and the changeset correct as a minor additive widening.

Why escalate (not approve): This PR modifies files under the deterministic hard approval gate (static/schemas/source/**):

  • static/schemas/source/core/targeting.json
  • static/schemas/source/protocol/get-adcp-capabilities-response.json

gated_paths: true and review_decision: REVIEW_REQUIRED (not APPROVED), so decision-table row 2 fires: human/CODEOWNERS review is required before merge.

Medium findings

  • scripts/oneof-discriminators.baseline.json:329 — new oneOf baseline entry ratcheted in via --accept-new without the PR-body justification the repo's ratchet rule requires. The reviewer assessed the entry as type-disjoint and safe, but the process gate (explicit PR-body justification) is unmet.

No critical/high findings were reported. The single medium finding is not itself blocking, but the gated-path gate stands until review is approved.

Escalation reasons

  • Touches gated schema source static/schemas/source/core/targeting.json and static/schemas/source/protocol/get-adcp-capabilities-response.json; requires human/CODEOWNERS approval (review_decision is REVIEW_REQUIRED).

Medium findings

  • scripts/oneof-discriminators.baseline.json:329 — oneOf baseline ratcheted via --accept-new without PR-body justification

Why human review

  • Modifies gated schema source static/schemas/source/core/targeting.json and static/schemas/source/protocol/get-adcp-capabilities-response.json; review_decision is REVIEW_REQUIRED, so human/CODEOWNERS approval is required before merge.
  • This PR touches a path under a hard, non-overridable approval gate (static/schemas/source/core/targeting.json (modified) matches static/schemas/source/**; static/schemas/source/protocol/get-adcp-capabilities-response.json (modified) matches static/schemas/source/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Aug 16, 2026
@bokelley
bokelley enabled auto-merge (squash) August 16, 2026 18:59
@bokelley
bokelley disabled auto-merge August 16, 2026 22:00
@bokelley
bokelley merged commit 98b9bda into main Aug 16, 2026
51 checks passed
@bokelley
bokelley deleted the codex/bcp47-language-capabilities branch August 16, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

1 participant