Skip to content

Commit 5936ef0

Browse files
arraypressclaude
andcommitted
Close what the audit found: encrypted meta, search scope, row limits, two script bugs
The meta registrar ran a type's own sanitizer on the ciphertext the encrypting context writes, so every encrypted value that was not plain text -- a number, a URL, a select, a group -- was wiped on its way into the database. Ciphertext now passes through; the plaintext was already sanitized by the same type before it was encrypted. The encrypting context no longer fails open or silent: a field marked encrypted refuses to store plaintext when OpenSSL or the salts are missing, an unreadable ciphertext reads as empty and survives the delete a blank form would otherwise trigger, the placeholder salts are ignored, and a short GCM tag is treated as tampering. The post search showed every author's drafts and private posts to anyone holding edit_posts; it now asks for editable posts and checks each post type's own capability. A callback source received whatever arguments the browser sent; it now receives only the keys the field declared, and its results are paged. The label lookup hands a callback the same third argument the search does. Server-side limits: max_rows on repeaters and flexible content, max on ajax fields, and an array submitted where text was expected is nothing rather than the word "Array". Nested fields are built around what they already hold, so a licence in a repeater is not overwritten by its own mask. A code field follows core's unfiltered_html rule. Password and licence fields are refused REST exposure, and a default is shaped by the type before register_meta() sees it. In the script, rows cloned from the template kept its -1 index because the renumbering pattern matched digits only, so two added rows posted as one; and Reorder referred to Combobox from outside the block that declares it, which threw the first time a sortable chip moved. Modules that listen on the root now bind it once, the relational search ignores stale and post-blur responses, reindexing retargets aria-controls and data-target as well as labels, and the repeater has a live region of its own. The stylesheet uses logical properties for RTL, core's colour tokens in place of three that were never defined, and loses its dead and duplicate rules; small controls reach 40px on mobile and forced colours cover the card, swatch and tab states. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Kwx2STJ4EaVaJofEJJ9Zo
1 parent d02f7e4 commit 5936ef0

53 files changed

Lines changed: 1686 additions & 485 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Media
7575
: `image` `file` `file_url` `gallery` `files`
7676

7777
Compound
78-
: `group` `repeater` `list` `key_value` `sortable` `providers` `dimensions` `amount_type` `flexible`
78+
: `group` `repeater` `list` `key_value` `sortable` `providers` `dimensions` `amount_type` `money` `flexible`
7979

8080
Layout and display
8181
: `heading` `separator` `message` `html` `link` `clipboard` `oembed` `custom` `tab` `accordion` `icon` `nav_menu`

0 commit comments

Comments
 (0)