WPPilot 1.6.2 — Queue, connection slots and listings
Four fixes. No new abilities, no permission changes, and existing connections keep working.
Blocks kept the settings their editor assigns. The Block Editor Queue serialized blocks straight from createBlock(), which never renders a block's edit component — so the per-block style id and layout markers some libraries generate on mount were simply missing from what was saved. A Spectra block reached the database with no block_id and the class uagb-block-not_set, rendered unstyled, and the queue reported the item finished. Blocks now pass through the hidden editor's own block-editor store first, and what the editor made of them is what gets serialized.
That step waits for the editor to report a loaded post before touching the store, and checks that the blocks read back are still the ones that went in — otherwise it falls back to the old behaviour rather than writing something else. Autosave is switched off in that hidden frame, so it cannot store a draft nobody approved.
A batch no longer strands itself on a bad request. The queue's claim, complete and fail endpoints ended in a fatal error when a request carried no JSON body, or one that did not parse. Those endpoints run against an item that is already leased, so the process died mid-lease and left the batch running with nothing alive to complete or release it. They answer 400 now, saying what to send.
Revoking a connection frees its slot. A site allows fifty simultaneous OAuth connections, counted from each client's last use, so revoking one marked its tokens revoked and left the slot occupied until the refresh-token lifetime ran out — up to two weeks of Troubleshoot reporting the site full with nothing explaining why. The slot comes back in the same request now, once no account still holds a live grant through that client.
A directory listing survives an entry it cannot read. A subdirectory the web server has no permission to open, or a symlink whose target is gone, threw out of the iterator and took the whole recursive listing with it. Unreadable entries are skipped and the rest of the tree is returned.
Install wppilot.zip below, or update from wp-admin. Tested against WordPress 7.0.3 on PHP 8.3.