fix(windows): keep ACL stalls off the response event loop - #3018
Conversation
|
✅ Deterministic PR hygiene checks passed. |
|
CI note for exact head The other completed gates, including typecheck, privacy, API usage, storage policy, keyring, npm-global, and shards 1/3/4, are green. I am not rerunning or waiving the red. #3018 remains blocked until the version-line PR is resolved, this branch is rebased onto the repaired |
리뷰 · 우선순위 68 / 80이 PR은 이슈 #3011 을 고친다. 지금 그 다른 일이 동기 ACL 이다. #612 가 스필 쪽은 헬스보다 더 세다. 이 PR이 하는 일은 그 남은 런타임 길이를 윈도우만 비동기로 옮기는 것이다. 리눅스와 맥의 즉시 쓰기, 크래시 순서, 실패 닫힘은 그대로 둔다. 리눅스에서 증명한 세 가지가 이슈가 원하던 테스트다. 느린 ACL 약속이 아직 안 끝났을 때 다른 src/config/paths.ts 라인 38 - 선택 설정 디렉터리 경화는 기다리지 않고 한 번만 띄운다. 필수 쓰기 길은 그 비행에 안 붙는다. 같은 디렉터리에 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
Summary
spill-failedtombstoneFixes #3011.
Why
The remaining runtime spill/config paths called
Bun.spawnSync(icacls)on the same Bun event loop that serves/healthz. A transient Windows ACL stall could therefore stop every request for the full timeout and immediately replace a replayable continuation with a process-lifetime tombstone.This change does not weaken required ACL checks and does not increase the timeout. Windows waits on the existing async ACL runner; publication happens only after temp-file hardening, fsync, no-replace publication, and a final resident-generation identity check.
Validation
./node_modules/.bin/bun scripts/test.ts --parallel=2 tests/responses-state.test.ts tests/config.test.ts tests/windows-secret-acl.test.ts tests/app-owned-memory.test.ts— 469 pass, 0 failbun run typecheck— passbun run privacy:scan— passThe real
icaclssubprocess path still needs the repository Windows CI jobs before merge.Review notes
This touches Windows secret ACL and continuation durability boundaries, so it intentionally does not self-approve or self-merge. Please verify the exact head and Windows CI before applying security sponsorship.