fix(accessibility): harden editor metadata runtime contracts - #230
Draft
seonghobae wants to merge 23 commits into
Draft
fix(accessibility): harden editor metadata runtime contracts#230seonghobae wants to merge 23 commits into
seonghobae wants to merge 23 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 11, 2026
This was referenced Aug 20, 2026
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.
Closes #202.
Closes #206.
Closes #229.
Closes #233.
Consolidated single-writer boundary
Protected shipped truth and the frozen
v0.6.0source candidate remainmain@3b38ead2d00f44eb578d0689087b9293b3dabe1e. This Draft remains the sole active writer forsrc/components/editorAccessibility.tsand its focused metadata/runtime tests. It consolidates the superseded direction lane #203 and stacked ARIA lane #207 with accessibility metadata/resource hardening and the BCP 47 validation correction. Host transport, persistence, tenancy, authorization, credentials, durable audit, remote-provider authority, and model policy remain out of scope.The standalone
CwlEditorruntimeeditablecontract is owned by canonical Draft #201, not this helper lane. This branch must not duplicate #201's public-component validation.TDD lineage
Representative immutable RED generations include accessibility-resource
8b3d7d9959d0c01c63aa2da1cad5a7756ea31985, runtime direction173c1c8b6165ccffd4d46abdf005e6aa7fe64cf9, runtime ARIA83d230735aa38c1013b6032dbde4178b1db9a219, BCP 47 preservation64e46d780cd25bbcc9b821470b641f48820b7e63, invalid extlang position0551ae31809dc37e146f1bba60bf5d13daf04b60, required-fallback-label resource/type coveragef6aa305d62f9f6715a4730eb77f4ab8c07418248, and finite-state getter TOCTOU coveraged950d610cd2a81ae0d414b247b27323bd3ca83fe.f6aa305...andd950d61...are immutable test-only RED generations whose hosted repository workflows were still queued/in-progress when their immediate narrow source repairs superseded them, so no terminal hosted RED result is claimed or transferred. The tests are causal contracts against their predecessor implementations: required fallback labels previously bypassed the local type/resource boundary, and finite runtime state getters were previously re-read after validation so a later hostile value could reach emitted attributes. Historical GREEN evidence belongs only to its exact predecessor heads and is not transferred to the current generation.Current repair contract
defaultLabel, to 65,536 UTF-16 code units and reject non-string runtime values through one stable payload-redactedRangeError.defaultLabelspelling while preserving blank omission and surrounding-whitespace trimming for optional metadata.textDirection,ariaInvalid, andariaRequiredexactly once before finite-contract validation and emit only those validated snapshots, closing the getter/Proxy validation-to-use gap without touching fix(data-integrity): keep controlled value sync atomic #201-ownededitablebehavior.Current generation
The ownership-clean semantic generation was
2cc4b5f3774c5b9c8dcadb81eac77427cbf3f8f8. Required-label REDf6aa305d62f9f6715a4730eb77f4ab8c07418248was followed by bounded-label implementationa9fc72cb18f2ef3fc1a1daf238f119a8b1c9a8df. Finite-state TOCTOU REDd950d610cd2a81ae0d414b247b27323bd3ca83fewas then followed by the smallest causal implementation at current exact head59d82f8b65cfad5230fa9e11afb97867293a43f5.The intended protected-base diff remains exactly:
src/components/editorAccessibility.resourceBoundary.test.ts;src/components/editorAccessibility.ts;src/components/editorAccessibilityRuntime.test.ts.No force-push or destructive rewrite was used. Any workflow result from predecessor heads is historical only and does not transfer to
59d82f8b65cfad5230fa9e11afb97867293a43f5.Exact-current-head evidence
For unchanged exact head
59d82f8b65cfad5230fa9e11afb97867293a43f5, fresh commit-bound refetch now proves all repository workflows are terminal success:32322070195: completed / success;32322070146: completed / success;32322070224: completed / success;The earlier pending/queued snapshot is superseded. Repository exact-head technical success does not substitute for qualifying independent approval, separately applicable central workflows, or live governance. No predecessor, status-only, comment-only, model-only, queued, pending, skipped, cancelled, or absent evidence is treated as acceptance.
Integration boundary
Keep Draft/unmerged while #118 freezes protected main for
v0.6.0operational acceptance and while qualifying independent approval plus every applicable exact-head gate remain incomplete. Before any lifecycle transition, refetch unchanged head, protected main, ancestry/mergeability, formal reviews/threads, live rules and every applicable repository/central workflow. Do not move protected main, weaken gates, self-approve, transfer predecessor evidence, or fabricate tag/release identity.