Skip to content

[WRONG BRANCH] release: sync preview to main 2.86.0 - #7127

Merged
lidge-jun merged 5 commits into
previewfrom
release/sync-preview-2.86.0
Oct 15, 2026
Merged

lidge-jun merged 5 commits into
previewfrom
release/sync-preview-2.86.0

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Summary

Sync preview to main at 409026b1bc (stable 2.86.0, #7110; npm latest 2.86.0, Release run 38640052000). Head is a merge of preview ancestry whose tree equals main exactly (ours-strategy equivalent). No preview release is cut.

Owner-delegated release train; merges with owner authority (--admin).

github-actions Bot and others added 5 commits October 13, 2026 22:12
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix(test-teardown): settle un-awaited background work before removing a tree

The pre-route pool quota prime runs without being awaited and holds the
native-main claim database open across ACL hardening and a WHAM read.
Teardown retried removal with Bun.sleepSync, which blocks the event loop
the prime needs to reach its finally, so on Windows every retry failed
EBUSY until the 15 s budget ran out (#7088 and #7091 stubbed the prime
per test).

Track fire-and-forget work in src/lib/background-work, register the pool
prime and its lazy-import callers, settle it in a global afterEach, and
add removeTreeAfterBackgroundWork (settle, reap icacls, then retry with
waits that yield). The compaction fixture uses it, and the per-test prime
stubs from #7088 and #7091 are reverted so the real prime runs again.

* fix(responses): serialize snapshot follow-up scheduling with shutdown

* fix(config): track the config-dir ACL harden as background work

icacls holds the config directory open while it runs; a config write or
removal that lands on it before the child exits fails with a sharing
violation on Windows. Registering the flight lets the per-case drain
settle it, and the V2 refusal test now prints the CLI errors when the
handler refuses before the native toggle.

* fix(cli): reject occupied auxiliary ports before private startup work

* fix(tray): retain timed-out probes until asynchronous reaping

Remove WaitForExit from startup-health timeout ticks and retain process ownership until exit and both readers settle. Run lifecycle fixtures with the production Bun engine instead of a nested PowerShell cold start, which failed readiness before maintenance in Windows run 38503986851.

* fix(config): preserve Windows ACL memo across repeated reads

* test: bound child exit and pipe waits in slow-spawn cases

* fix(ci): share one transpiler cache per shard; widen the DPAPI PowerShell bound

Run 2 and 3 of the Windows proof failed on first-spawn timeouts (writeJournal
child 40s, launcher attest 15s) and a 10s DPAPI PowerShell call. Each CI batch
is its own bun test process, and with BUN_RUNTIME_TRANSPILER_CACHE_PATH unset
the preload gives every batch an empty private cache, so the first child each
batch spawns re-transpiles its whole module graph. The batch runner now creates
one private cache per shard and exports it. The DPAPI helper's PowerShell
bound moves from 10s to 20s: it is async and off the request path, and a cold
PowerShell loading System.Security exceeded 10s on a loaded runner.

* test(desktop-egress): give each proxy variable one spelling on Windows

Windows environment names are case-insensitive, so the child env that set
ALL_PROXY to the fixture proxy and all_proxy to "" defined one variable
twice. Env-block ordering decided the winner; adding the shard transpiler
cache variable flipped it, and the -all cases reached the real chatgpt.com
(403). Clear every spelling and set only the intended route.

* fix(test-teardown): never remove or exit under live tracked work; address review findings

- removeTreeAfterBackgroundWork keeps the tree and names pending work instead of
  deleting under a live writer.
- Final sandbox cleanup bounds background-work settlement (15 s) and leaves the
  root for stale recovery with the labels when work never settles.
- spawnTestChild rejects when the child never started (ENOENT) instead of
  resolving an empty result.
- Auxiliary preflight rejects loopback and hub management configured on one port.
- Tray shutdown keeps a probe tracked until it has actually exited and waits for
  its pipe readers before disposal.
- The free-socket preflight test binds inside try so a lost race still stops the
  first server.

---------

Co-authored-by: jun <jun@juns-Mac-Studio.local>
[WRONG BRANCH] release: promote dev 494c50d to main as 2.86.0
@lidge-jun
lidge-jun requested a review from Ingwannu as a code owner October 15, 2026 07:17
@lidge-jun
lidge-jun merged commit c58d6a3 into preview Oct 15, 2026
7 checks passed
@lidge-jun
lidge-jun deleted the release/sync-preview-2.86.0 branch October 15, 2026 07:17
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T07:18:55.879900Z 92babde PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added the bug Something isn't working label Oct 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Deterministic PR hygiene checks passed.

@github-actions github-actions Bot changed the title release: sync preview to main 2.86.0 [WRONG BRANCH] release: sync preview to main 2.86.0 Oct 15, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

⏳ DRAFT

  • wrong target branch (preview); retarget to dev.

What to do

  • Retarget this PR to dev — all contributions go to dev.

Its title has been prefixed with [WRONG BRANCH].
Automatic draft conversion failed (token cannot change draft status). Please convert this pull request to a draft manually. The required enforce-target check will keep failing until every issue above is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant