Repository navigation
fix(ui-sdk): initialize worker policy independently of import order - #2299
Merged
Merged
Conversation
This was referenced Oct 17, 2026
schlessera
force-pushed
the
fix/2148-worker-xdg-initialization-07f4f991
branch
from
October 18, 2026 01:03
fef0c13 to
98ffbbb
Compare
…nitialization-07f4f991
…nitialization-07f4f991
schlessera
marked this pull request as ready for review
October 18, 2026 02:35
This was referenced Oct 18, 2026
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.
Closes #2148
What changed
Fresh imports of worker sandbox, maintenance worker and launcher initialize in all six entry orders. Worker XDG policy lives in one dependency-free leaf; the sandbox preserves its existing exports and the launcher reads the leaf before deriving maintenance paths. Exact worker/maintenance paths, authority and writable-area behavior remain unchanged.
Why this shape
Sandbox-first imports traversed maintenance and launcher before sandbox initialized WORKER_XDG_DIRS. The launcher spread that uninitialized binding at module scope. The leaf breaks this initialization dependency without duplicated policy or forced launcher preloading. Current documentation citations follow the moved source, and the owning SDK patch changeset is included.
Proof
Current candidate
fec494fe97bb84d61e67ddd743be89403ef2a980, integrated main78cfba4ff443ca2ce380502f7875a4a4283525ee. Hosted confirmation must qualify this actual head/base before merge.41a00e0ab38937d752d320e932ba240bf2a19770standalone core test fails before assertions with the WORKER_XDG_DIRS initialization error. The new native parent regression asserts all six fresh-child entry orders and exact literal worker/maintenance XDG values; both sandbox-first orders fail its intended FRESH_WORKER_ENTRY_ORDER_INITIALIZES assertion before repair. Restored source passes all six and the existing five core assertions.bun run check:pr --base origin/mainon the current candidate passes all contribution gates, 730 fast tests and the complete 169-file affected feedback: 2,046 pass, zero fail, one existing unavailable-delegated-cgroup skip, 17,876 assertions, 1,895.58 seconds. All three share ownership cases execute and pass in the combined process. Hosted native proof must supply the unavailable local cgroup coverage.98ffbbb985e929d2fb9b64ea146073184cd913fe. Changeset package validation and the complete release plan pass, with no major bumps. Intervening main changes are delivered prerequisites, including tests: liveness clock pause races its own browser time read #2298, test(ui-sdk): exercise literal /tmp regardless of runner TMPDIR #2389 and test(ui-server): honor qualified temporary storage in native cancellation fixtures #2406.Earlier full feedback failures are preserved: disk-backed capacity guard yielded 1,977 passes / 69 failures; a qualified-TMPDIR but incomplete-interface run yielded 2,037 passes / nine failures. Actual journals identify free_space_floor stopping turns, and #2406 fixes the native cancellation fixture’s hard-coded /tmp path. The original three combined share timeouts remain recorded in #2401: this passing changed-prerequisite control does not claim a production UI repair or final historical cause. No guard, frozen qualification pin, timeout or assertion is weakened to obtain this result.
Checklist
Anything left open
Nothing for #2148. Run 39090614647, attempt 1, passes all 16 selected jobs, including packaging and native host coverage. Actual metadata, verification, four units, two browser/two layout shards, captures, endurance, native runtime/host and aggregate checkout logs independently name
e7711a1a01a4b937a7c0a1ae23597693808d7b14. Requested base and BRAIN_CANDIDATE_RECEIPT agree with immutable parents78cfba4ff443ca2ce380502f7875a4a4283525ee/fec494fe97bb84d61e67ddd743be89403ef2a980and treefe23d693caaaa858181389c485706070295f8d81. Squashea4c76c15eee2e23701910b7c2395bdd479b99c6has that exact tree and qualified base parent; fetched main ancestry, issue closure and both 0.44.0 milestones are verified. Automatic main-push proof is separate.Historical #2401 attribution remains independent; this implementation makes no broader UI or capacity-policy repair claim.