Highlights
Follow-up to 0.0.32 that closes the last two gaps between "locate a block cheaply" and "modify it cheaply". The three-step cheap-edit loop now works end-to-end.
What's in 0.0.33
- PR #158 —
blocks/get-post-blocksgains three optional inputs:
Reading one block's markup used to require pulling the whole tree — ~23K tokens on a 76 KB post. Now it's a few hundred bytes.path: int[]— scope to a subtree (same raw parse_blocks() index scheme as add-block / update-post-block / remove-block, so paths interchange)depth: integer— bound descent (-1 unlimited, 0 subtree root only, N below)include_html: boolean— defaulttruefor backwards-compat; whenfalse, stripsinnerHTML+innerContentfrom every returned node
- PR #159 —
return_content: falsedefault onblocks/add-block+blocks/update-post-block. Parity with the six content writers (0.0.32 PR #152) and nine block-editor writers (PR #153). Response'sblockobject stripsinnerHTML,innerContent, andinnerBlocks;content_bytesreports the saved size. Container blocks (columns, cover, group) previously echoed their entire innerBlocks subtree — now they don't unless the caller passesreturn_content: true.
The cheap-edit loop now works end-to-end
- Locate —
blocks/outline-post-blocks→ paths + text previews, no content. ~kilobytes. - Read current markup of one block —
blocks/get-post-blocks {path, depth: 0}→ single block, not the whole tree. ~hundreds of bytes. - Write —
blocks/update-post-block {path, return_content: false}→ small envelope back, no echo.
Test status
- Full suite 2196 / 2196 passing (+31 vs 0.0.32)
- PHPCS + PHPStan level 8 clean on every changed file
- Live MCP smoke verified for all four new inputs on
blocks/get-post-blocks(scoped read, content-strip, invalid_path error envelope, backwards-compat call with justpost_id) plus bothreturn_content: falsewriters
Breaking notes for existing callers
- Callers reading
response.block.innerHTMLonblocks/add-blockorblocks/update-post-blockmust passreturn_content: trueexplicitly. Container blocks readingresponse.block.innerBlocksalso need the flag. - No other callers affected.
blocks/get-post-blocksremains byte-identical for callers passing onlypost_id.
Install
Download acrossai-abilities-manager.zip below and upload via Plugins → Add New → Upload Plugin, or replace the existing wp-content/plugins/acrossai-abilities-manager/ folder.