Skip to content

fix(windows-ci): land the win-ci fixes (kibitzer ticket sharing, mailbox journal, deny ordering, applyEdit, parent wake, downloader probe, git bound, test removals) - #8961

Merged
code-yeongyu merged 33 commits into
devfrom
ci/win-ci-integration
Sep 27, 2026
Merged

code-yeongyu merged 33 commits into
devfrom
ci/win-ci-integration

Conversation

@code-yeongyu

@code-yeongyu code-yeongyu commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

This lands the remaining Windows-CI fixes from the win-ci effort as ONE merge, instead of cycling eight PRs through a moving generated bundle. Each fix keeps its own commits; its original PR has the full write-up, RED/GREEN evidence and focused Windows soaks, and is closed as superseded by this one. The generated omo-senpi bundles are regenerated once on linux/amd64 over the merged sources.

PR (superseded) lane failing test / symptom fix issue
#8970 B omo-senpi kibitzer wake-slot FIFO (palace failures are its cascade) memory-core: a Windows sharing violation (EPERM/EBUSY/EACCES) on the head wake ticket read no longer rejects the waiter; the unreadable ticket stays head for the next poll #8953
#8968 C omo-senpi thread mailbox count/byte caps timeout omo-senpi: mailbox persistence goes through a journal, so the cap checks no longer race the writer #8948
#8966 D senpi-task HostSessionClient 50 ms deny the 50 ms wall-clock budget becomes an ordering proof (the deny reaches the host before the client's next get_state) #8950
#8955 E lsp-core LspClient applyEdit unscoped the applyEdit request fires from didOpen only after the response subscription is armed #8954
#8956 F omo-opencode BackgroundManager parent-wake empty-turn recovery product: a parent wake retry no longer waits a second promptAsync hold; sleep-polling waitUntil removed #8951
#8980 - omo-opencode comment-checker downloader.test (exit 143 on loaded runners) every download target is probed in one process instead of six cold Bun children #8979
#8998 - isolation-core nested-repo git hang product: stalled git commands are bounded #8997
#9026 - rotating Windows EBUSY teardown failures Bun ignores fs.rm maxRetries/retryDelay (oven-sh/bun#41480); a shared test-support/remove-tree helper retries transient removals itself (66 cleanups); relocated-worker CI mirrors the helper #9025

Already merged separately: #8971 (lane A, #8932 foreign-owner liveness over the named pipe, #8942) and #9033 (#9032, the #8877 Windows stdin-pipe fake).

QA & Evidence

Fixes #8953
Fixes #8948
Fixes #8950
Fixes #8954
Fixes #8951
Fixes #8979
Fixes #8997
Fixes #9025
Refs #8324, #8250, #8942

@github-actions github-actions Bot added the lsp-core Changes under packages/lsp-core label Sep 27, 2026
@code-yeongyu code-yeongyu added the ci:full-matrix Force the full 3-OS CI matrix on this PR label Sep 27, 2026
@github-actions github-actions Bot added utils Changes under packages/utils omo-senpi Changes under packages/omo-senpi opencode OpenCode edition: packages/omo-opencode labels Sep 27, 2026
@code-yeongyu code-yeongyu added ci:full-matrix Force the full 3-OS CI matrix on this PR and removed ci:full-matrix Force the full 3-OS CI matrix on this PR labels Sep 27, 2026
@github-actions github-actions Bot added memory-core Changes under packages/memory-core senpi-task Changes under packages/senpi-task labels Sep 27, 2026
@code-yeongyu
code-yeongyu force-pushed the ci/win-ci-integration branch 2 times, most recently from 996be76 to 3ac3306 Compare September 27, 2026 17:03
@github-actions github-actions Bot added the isolation-core Changes under packages/isolation-core label Sep 27, 2026
@code-yeongyu
code-yeongyu force-pushed the ci/win-ci-integration branch 2 times, most recently from f53771d to 0b4c2f1 Compare September 27, 2026 17:27
…t command (#8950)

The confirm auto-deny test asserted < 50 ms of wall clock across a socket, which a loaded Windows runner exceeded (55.2 ms) while the deny itself was correct. It now proves the real contract: once the client has ingested the UI request, the deny is on the wire before the client's next command.
…ocess (#8979)

The test cold-started one Bun process per platform under a 10 s abort; a loaded Windows runner exceeded it on one of the six (exit 143). The downloader reads process.platform/arch per call, so one probe process now covers every target and each target keeps its own assertions.
…romptAsync hold (#8951)

A parent wake that met its own promptAsync post-dispatch hold always retried after a fixed 2 s, the whole hold length. The hold expires lazily on Date.now(), so a retry timer that fired a tick early (coarse Windows timers) still saw the hold and waited a second full hold.

The gate's reserved result now carries the hold's expiresAt. The first meeting with a hold keeps the full 2 s back-off; meeting the same hold again (same expiresAt) waits only what is left of it.
…out instead of a real stalled git (#8997)

The stand-in stalled process left a Windows grandchild holding the fixture directory past teardown (EBUSY, seen in integration run 36336999917 attempt 2). The deadline and tree teardown of a real stalled git stay covered in command.test.ts; this test now proves only the retry contract.
…n' into ci/win-ci-integration

# Conflicts:
#	packages/omo-senpi/plugin/extensions/omo-task.js
…' into ci/win-ci-integration

# Conflicts:
#	packages/omo-senpi/plugin/extensions/omo-task.js
@code-yeongyu code-yeongyu changed the title ci: win-ci integration (do not merge) - full Windows matrix over all fix branches fix(windows-ci): land the win-ci fixes (kibitzer ticket sharing, mailbox journal, deny ordering, applyEdit, parent wake, downloader probe, git bound, test removals) Sep 27, 2026
@code-yeongyu
code-yeongyu marked this pull request as ready for review September 27, 2026 23:11
@code-yeongyu
code-yeongyu merged commit 6f65ada into dev Sep 27, 2026
44 checks passed
@code-yeongyu
code-yeongyu deleted the ci/win-ci-integration branch September 27, 2026 23:30
timothybrush pushed a commit to timothybrush/oh-my-openagent that referenced this pull request Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment