30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

v0.0.33 — closing the cheap-edit loop

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 #158blocks/get-post-blocks gains 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 — default true for backwards-compat; when false, strips innerHTML + innerContent from every returned node
  • PR #159return_content: false default on blocks/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's block object strips innerHTML, innerContent, and innerBlocks; content_bytes reports the saved size. Container blocks (columns, cover, group) previously echoed their entire innerBlocks subtree — now they don't unless the caller passes return_content: true.

The cheap-edit loop now works end-to-end

  1. Locateblocks/outline-post-blocks → paths + text previews, no content. ~kilobytes.
  2. Read current markup of one blockblocks/get-post-blocks {path, depth: 0} → single block, not the whole tree. ~hundreds of bytes.
  3. Writeblocks/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 just post_id) plus both return_content: false writers

Breaking notes for existing callers

  • Callers reading response.block.innerHTML on blocks/add-block or blocks/update-post-block must pass return_content: true explicitly. Container blocks reading response.block.innerBlocks also need the flag.
  • No other callers affected. blocks/get-post-blocks remains byte-identical for callers passing only post_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.


Keep reading