-
Notifications
You must be signed in to change notification settings - Fork 0
fix(reliability): reject obviously oversized rich clipboard HTML before UTF-8 encoding #163
Copy link
Copy link
Open
Labels
area: accessibilityAccessibility and assistive-technology supportAccessibility and assistive-technology supportarea: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionbugSomething isn't workingSomething isn't workingpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Description
Activity
Metadata
Metadata
Assignees
Labels
area: accessibilityAccessibility and assistive-technology supportAccessibility and assistive-technology supportarea: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionbugSomething isn't workingSomething isn't workingpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Current authoritative state
Protected shipped truth is exact
main@3b38ead2d00f44eb578d0689087b9293b3dabe1e. The original problem statement describing protectedmain@e8109ec2a17de8bd6594487aa12c8c8a93cb2c03allocating a complete UTF-8 copy before an obvious rich-clipboard size rejection is historical RCA, not the current active-PR state.The former Draft #164 is closed/superseded and must not be revived. Canonical single-writer Draft PR #359 (
fix(reliability): preflight clipboard size and traversal budget) now owns this resource-preflight boundary together with #327. Current exact #359 head is1721f10124d93bc4e1a9408cc173b1619c198c42against protectedmain@3b38ead2d00f44eb578d0689087b9293b3dabe1e; GitHub reports it Draft and mechanically mergeable.Executable contract / TDD lineage
51f9edfdff7de9072cafa8cebaf068dc39f92208: an ASCII nine-code-unit string undermaxHtmlBytes: 8still reachedTextEncoder.prototype.encode; the same generation also proved the fix(reliability): bound rich-clipboard traversal queue before allocation #327 traversal-budget defect.71654a8e59eecd72f2a23ebec173e4e537c927d9: rejectsourceHtml.length > maxHtmlBytesbefore UTF-8 encoding, while preserving the exact UTF-8 byte check for in-ceiling non-ASCII input. The same source repair enforces fix(reliability): bound rich-clipboard traversal queue before allocation #327's queue invariant before child materialization.1721f10124d93bc4e1a9408cc173b1619c198c42preserves existing DOM/node/depth/rich-paste semantics, redacted codes/messages, public configuration ceilings, SafeLink behavior, package/browser behavior and standalone no-service/no-network/no-database/no-credential/no-model operation.Exact-current-head evidence
For unchanged #359 head
1721f10124d93bc4e1a9408cc173b1619c198c42, the canonical PR records terminal-success repository workflows:32078914337: completed / success;32078914160: completed / success;32078914379: completed / success;Repository-local technical success is not qualifying independent approval and does not replace separately applicable central workflows or then-live governance. Pending, queued, skipped, cancelled, absent, stale, predecessor, status-only or model-only evidence remains non-passing.
Integration boundary
The defect is repaired on active Draft #359 but is not protected-main shipped behavior until integration. Keep this issue open and keep #359 Draft/unmerged while #118 owns exact protected
v0.6.0publication/provenance/digest operational acceptance. Draft #351 separately owns hostile thrown-value containment; do not create a competingsrc/extensions/SafeClipboard.tswriter. Before any lifecycle transition refetch exact head/live base, ancestry/mergeability, live governance, formal reviews/threads and every applicable repository/central workflow. Do not transfer #164 or predecessor evidence, self-approve, weaken gates, move protected main, or fabricate release identity.