Repository navigation
cherry-pick: Honor branchedDatabases for package-deployed applications (conflicts → v5.3) - #3123
Merged
Merged
Conversation
Prepare root-config database forks on the package application's supplied scope before importing its modules. Nested components keep the same branches, and root plugin callbacks that would receive the shared root scope fail closed. Cover package deployments in shared and isolated workers, certification failures, initialization and HTTP writes, restart persistence, and drop cleanup. Dispatch-Task: harper-3071 Co-Authored-By: GPT-5 Codex <noreply@openai.com>
Restore the unit suite's main-worker mode and guard cleanup when fixture creation fails. Exercise a real native module import for an unbranched supplied scope. Explain the upgrade snapshot and retained fork after root plugin refusal, and keep the design index in note order. Dispatch-Task: harper-3071 Co-Authored-By: GPT-5 Codex <noreply@openai.com>
Import a sentinel module for the unbranched native-scope case so the test can check loading without mixing source and compiled database singletons. Keep the ownership contract in its option documentation and tidy the index. Dispatch-Task: harper-3071 Co-Authored-By: GPT-5 Codex <noreply@openai.com>
Keep v5.3's validated-deploy and serialized-preparation index entries and the single package-branch entry at the end of the components section. Pass both the root-config branchedDatabases and v5.3's collectScopes to a root package's own load. Dispatch-Task: cherry-resolve-kriszyp_harper_3083-e583ebac Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011KV6qxwDSB78CKhegmi8Rf
v5.3 has no deploy canary: an operations-API deploy answers 200 without a load check, and a refused package load surfaces only in the restarted worker. Assert the refusals there instead of in a certification body: the missing-database load registers no routes, and the root plugin package reports an error status. A non-root load failure on v5.3 leaves an error resource but records no component status, so the unit test checks the resource. Drop the canary references from the design note and the isolated redeploy that existed only to reach a certifiable load. Dispatch-Task: cherry-resolve-kriszyp_harper_3083-e583ebac Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011KV6qxwDSB78CKhegmi8Rf
The 200 answer alone proves nothing on v5.3; taking the refusal condition in the helper keeps a caller from asserting the deploy without waiting for the restarted worker to refuse it. Dispatch-Task: cherry-resolve-kriszyp_harper_3083-e583ebac Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011KV6qxwDSB78CKhegmi8Rf
Dispatch-Task: cherry-resolve-kriszyp_harper_3083-e583ebac Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011KV6qxwDSB78CKhegmi8Rf
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.
Cherry-pick of PR #3083 onto `v5.3` produced conflicts on commit(s): `834835f5351b421fcbf1dae08f8da2e64a8a13c0 4f1aed8`.
Resolve the conflict markers on branch `cherry-pick/v5.3/pr-3083` and merge this PR.
@claude please review branch `cherry-pick/v5.3/pr-3083` and suggest a patch that resolves the conflict markers (
<<<<<<</=======/>>>>>>>) introduced by cherry-picking PR #3083 onto `v5.3`. Post the suggested patch as a comment here — do not push.Resolution on v5.3
The conflict markers are resolved in a new commit on top of the Action's commits. No history was rewritten.
DESIGN.mdindex. Kept v5.3's own entries for the deploy and the serialized preparation. The canary wording in them is main-only. The package-branch entry appears once, at the end of the components section, where Honor branchedDatabases for package-deployed applications #3083's second commit placed it.componentLoader.ts. Both options are kept on a root package's own load:branchedDatabasesfrom #3083 and v5.3'scollectScopes. The first is set only whenisRootis true. The second is set only by v5.3's non-root deploy validation load, so the two never meet. Every production hunk now matches the squash of Honor branchedDatabases for package-deployed applications #3083 on main (e72eaaf).Adapted to v5.3 (the cherry-picked tests assumed main's canary)
v5.3 has no deploy canary. An operations-API deploy answers 200 without a load check, and a refused package fails only when the restarted worker loads it.
get_statusreportingerror. The no-base-write and no-fork assertions are unchanged. Thecertificationassertions and the isolated redeploy (which existed only to reach a certifiable load) were dropped.ErrorResource. v5.3's outerloadComponentcatch records no component status.components/DESIGN.mdnote drops the canary references and states how v5.3 reports these failures.Verification
2ecb1b8ef: Integration Tests (Node 24) ✅ and Unit Test (Node 24) ✅. The new test passed on the Node 24, uWS and Bun legs and is skipped on Windows by design.componentLoaderBranches4/4 andbranched-database-package8/8. Against v5.3's originalcomponentLoader.ts, the adapted integration test fails 8/8, each at the intended assertion, so the v5.3 assertions are not vacuous.Unit Test (Node.js v26)fails withwithNodeAdaptercompression andinstall_node_modulesdry-run failures on Node 26.11.1. The same failures appear on other open PRs on both main and v5.3, so they are not from this change.— Claude Opus 5.5
🤖 Generated with Claude Code
https://claude.ai/code/session_011KV6qxwDSB78CKhegmi8Rf
Related PRs: #3083 overlaps, 5 others independent
Review-Coverage: authored=claude; ran=cursor-composer,gemini,codex; adjudicated=domain; declined=cursor-grok,cursor-kimi,cursor-muse; rounds=3; full=1 @ 2ecb1b8
Review-Attention: read ~3m (decisions: document-not-fix-status-gap, refuse-branched-root-plugin, refusal-after-preparation) @ 2ecb1b8