Republish fault-isolation (#181) + block_layout partial-save guard (#189)#97
Merged
Merged
Conversation
…189) #181 — ApplicationController republish_kyte_connect hook: re-stamp each state=1 page inside try/catch, collect failures (page/s3key/site/reason), log, and continue instead of throwing and aborting the batch (which stranded later pages on the stale connect string). Surface a republish_summary (succeeded/failed/failures) on the response. Move CloudFront invalidation INSIDE the sites loop — it previously ran once outside, invalidating only the last site, leaving multi-site apps' other caches stale. #189 — KytePage update content-save now only overwrites KytePageData.block_layout when block_layout is actually provided. A partial save (the IDE sends only html/stylesheet/javascript) no longer blanks an existing block-editor layout. CHANGELOG 4.8.1. PHPStan clean; full phpunit in CI. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Republish fault-isolation (#181) + block_layout partial-save guard (#189)
Two contained backend fixes (kyte-php v4.8.1), both diagnosed from the IDE/republish investigation.
#181 — republish is now fault-isolated
ApplicationController'srepublish_kyte_connecthook re-stamps everystate=1page across all of an app's sites. Previously it threw on the first page with missingKytePageData, aborting the whole batch — every later site/page kept the stale connect string (the half-migrated JWT-dashboard/HMAC-login state from the incident).try/catch; failures are collected (page,s3key,site,reason), logged, and the loop continues.republish_summary(succeeded/failed/failures[]) so the caller (Shipyard) can show a real result instead of trusting a silent all-or-nothing hook.#189 — partial content save no longer blanks
block_layoutThe KytePage update content-save unconditionally wrote
block_layout, so a payload without it (the IDE sends onlyhtml/stylesheet/javascript) blanked an existing block-editor layout. It now only overwritesblock_layoutwhen actually provided. (The "IDE save didn't persist" half of #189 was already fixed by v4.8.0's guard relaxation.)Verification
PHPStan clean; full phpunit in CI. Deployed to dev (v4.8.0 base): php-lint clean, app healthy, MCP
list_applications+read_pageconfirmed working. The republish path's runtime behavior is best validated by an app republish on dev (auth_mode flip) — side-effecting, so left for manual confirmation.🤖 Generated with Claude Code