Commit Graph
2957 Commits
Author SHA1 Message Date
imccyu 82794c5681 ci(windows): exclude runtime smoke from static gates 2026-07-15 19:24:30 +08:00
Huanqi Cao 30a209aab5 fix(e2e): reach child quiescence before temp-dir cleanup in built-bin smokes
The acp built-bin smoke killed its child and immediately rm'd the temp
consumer dir; POSIX tolerates unlinking a live process's cwd, Windows fails
EBUSY while the child still holds its cwd and session-log handles (the CI
windows job's only red step). Await the child's exit after SIGKILL and give
both smokes' rm a brief retry for the OS handle-release lag.
2026-07-15 19:13:05 +08:00
Huanqi Cao ae8aedb2fd fix: normalize glob paths with split(sep).join('/') on Windows
glob/globSync returns host-separator paths on Windows. Nine scripts that consume these paths for split('/'), manifest-key comparison, startsWith/includes exclusion checks, or committed-output rendering now normalize with .map(s => s.split(sep).join('/')) at ingestion. This replaces the previous replaceAll('\\\\', '/') with an explicit, self-documenting OS-separator-to-POSIX conversion.
2026-07-15 19:11:20 +08:00
imccyu ae7b132f62 fix: launch pnpm gates without a Windows shell 2026-07-15 18:11:24 +08:00
Huanqi Cao be4a441ecd ci(windows): non-blocking via continue-on-error; drop the warning wrapper and the demo test
The ::warning:: wrapper kept the lane job green on failure — honest
about not gating merges, but a Windows regression was visible only as
an annotation buried in the run summary. GitHub has no yellow job
state, so the choice is green+annotation (too hidden) or a red X on a
non-required job (visible, still non-blocking). Take the red X:
job-level continue-on-error, plain 'Run gates' step, one less wrapper.
The step stays on the runner's native pwsh — never shell: bash — per
the MSYS-parent leak recorded in the windows-support RFC.

Also remove the temporary Windows-only failing demo test that
exercised the wrapper's annotation path (REVERT ME commit a496b9ae).
2026-07-15 18:11:03 +08:00
Huanqi Cao cb69ca80d6 ci(windows): run the observational gate wrapper in pwsh — an MSYS parent leaks into the suite
The lane-split merge moved the Run gates step to `shell: bash`, which
broke it twice over. First, GHA's bash shell runs with -e, so a failing
gate aborted the step before the ::warning::/exit 0 lines — the lane
went red X instead of the intended yellow warning. Second, and worse,
Git Bash as the PARENT of the gate run leaks MSYS environment into the
suite itself, producing 8 real test failures the pwsh-launched runs
(and the DSec VM runs) never saw:

- bash exports PWD; the MSYS runtime rewrites it to Windows form for
  native children, dsh-bash-local's adaptEnv passes it through, and the
  executor's MSYS bash adopts it — `pwd` prints `D:/a/...` where the
  tests (and the executor's MSYS dialect) expect `/d/a/...` (7 tests).
- cygwin enables SeBackupPrivilege on the runner's admin token; children
  inherit the enabled state, and libuv's FILE_FLAG_BACKUP_SEMANTICS read
  opens then pierce the dwShareMode=0 lock the jsonl EBUSY test holds —
  loadLive resolves instead of rejecting (1 test).

Evidence: run 28918325498 (pwsh step, pre-merge) failed only the two
hooks dispose tests since fixed by f8fd8c00; run 28921741006 (bash
step) fixed those and failed exactly the 8 above, with zero relevant
source diff between them.

Fix: run the wrapper in pwsh — a native command's failure doesn't abort
pwsh, so $LASTEXITCODE capture + ::warning:: + exit 0 works without an
errexit dance, and the gates start from a native Windows shell as they
do everywhere else Windows CI has been validated.

Docs: the windows-support RFC drops the stale continue-on-error wording
(replaced by the warning wrapper) and records the launch-environment
limitation — native shell required today; making an MSYS parent a
supported launch environment (PWD scrub in adaptEnv, privilege-explicit
tests) is a future improvement direction.
2026-07-15 18:09:38 +08:00
Huanqi Cao 007001677d ci(windows): split the Windows lane to mirror Linux's lane structure
The Windows CI was a single job running the full ci-windows inventory
(check:ci:windows), while Linux splits into 5 lanes (static/lint/coverage/
snapshot/artifacts) per the parallel-gates RFC. The single-job shape was a
transitional artifact from when Windows CI was added as a non-required
observation lane; its rationale ('keep gate parallelism modest so coverage
is not starved') conflated run-gates intra-job concurrency
(DSH_GATE_CONCURRENCY) with GitHub job fan-out — orthogonal concerns.

Split Windows into 4 lanes mirroring Linux (snapshot absent: its goldens
are Linux-recorded and self-skip on Windows). Each lane is a separate
GitHub job so a Windows regression is attributable to one lane, not
buried in one job's log. Concurrency is NOT throttled versus Linux: the
lane is non-blocking (continue-on-error), and the observational stance
is to actively expose Windows-arm issues rather than hide them behind
reduced parallelism.

- scripts/run-gates.ts: add ci-windows:static/lint/coverage/artifacts
  modes; ci-windows (full inventory) is retained as the local one-process
  entry, symmetric with Linux's ci-primary.
- .github/workflows/ci.yml: windows job becomes a matrix over the 4 lanes.
- package.json: check:ci:windows:{static,lint,coverage,artifacts} scripts.
- AGENTS.md + windows-support RFC: document the per-lane, non-blocking,
  unthrottled stance.

Verified: scripts/caohuanqi-private/run-ci.py --windows (full
check:ci:windows) — all gates green except the known hooks-claude
bridge.spec waitFor timeout (pre-existing Windows subprocess-timing
flake, unrelated).
2026-07-15 18:08:33 +08:00
Huanqi Cao fd5931752c ci: add Windows test job (windows-2025)
Add a Windows CI job alongside the existing Linux checks.  Runs the full
test suite (without the Linux-only coverage gate) plus typecheck, lint,
doc-sync, build, hygiene, and demo smoke under PowerShell.  Developer
Mode is enabled via registry for symlink support (fs-local tests,
verify-node-next-types).

Per the windows-support RFC transition plan: step (2) — non-required
Windows CI job to observe stability.
2026-07-15 18:06:26 +08:00
Tianyi Cui 26a03cfbd6 Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:55:57 +08:00
Tianyi Cui d06500fe9b Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:55:57 +08:00
Tianyi Cui 02da758a68 Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-15 17:55:57 +08:00
Tianyi Cui 6245094fe1 Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-15 17:55:57 +08:00
Tianyi Cui d48edf818f Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-15 17:55:57 +08:00
Tianyi Cui 87c900dfb2 Document compaction result diagnostics 2026-07-15 17:55:48 +08:00
Tianyi Cui 2176e25910 Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface 2026-07-15 17:55:13 +08:00
Tianyi Cui cf5d6ddf59 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-15 17:55:06 +08:00
Tianyi Cui 0b585e1d27 Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher 2026-07-15 17:55:06 +08:00
Tianyi Cui e2c9048c16 Merge branch 'codex/simp-session-log-representation' into codex/simp-snapshot-fixture-inventory 2026-07-15 17:55:05 +08:00
Tianyi Cui 25a5dc35ba Refresh Cordis event API summaries 2026-07-15 17:53:51 +08:00
Tianyi Cui 263d8a6dff Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:37:08 +08:00
Tianyi Cui e1c0d0b579 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:37:08 +08:00
Tianyi Cui cdeec6fc1d Update built JSON-RPC probe path 2026-07-15 17:36:51 +08:00
Tianyi Cui 3460f9c10b Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-15 17:26:29 +08:00
Tianyi Cui 8c7e2b4426 Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:26:29 +08:00
Tianyi Cui 6ee2655cab Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:26:29 +08:00
Tianyi Cui 9035ef1f98 Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-15 17:26:29 +08:00
Tianyi Cui f20f5c2958 Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-15 17:26:28 +08:00
Tianyi Cui 8eccd5416e Document restored compaction result fields 2026-07-15 17:26:28 +08:00
Tianyi Cui 0521ec02ef Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:24:08 +08:00
Tianyi Cui 7fd7261bcd Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:24:08 +08:00
Tianyi Cui d6ba1fef26 Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-15 17:24:07 +08:00
Tianyi Cui 6edb44657c Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-15 17:24:07 +08:00
Tianyi Cui 623c2fa8d2 Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-15 17:24:07 +08:00
Tianyi Cui d25a56b431 Restore CompactionResult diagnostics 2026-07-15 17:23:39 +08:00
Tianyi Cui 9c1e847a4f Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:10:54 +08:00
Tianyi Cui a631edd27c Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:10:54 +08:00
Tianyi Cui f6350ac553 Keep root instructions within budget 2026-07-15 17:10:46 +08:00
Tianyi Cui a15ac13a74 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-15 17:09:32 +08:00
Tianyi Cui 41e711c01e Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-15 17:09:32 +08:00
Tianyi Cui 54485f7767 Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-15 17:09:32 +08:00
Tianyi Cui c2081d8abf Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface 2026-07-15 17:09:32 +08:00
Tianyi Cui 80fc984ee2 Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 17:09:32 +08:00
Tianyi Cui 5a2f9182f6 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 17:09:32 +08:00
Tianyi Cui 4c2ed42f48 Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-15 17:09:32 +08:00
Tianyi Cui 8e7cf8cc10 Update ACP launcher example path 2026-07-15 17:09:18 +08:00
Tianyi Cui 5b814652b3 Merge remote-tracking branch 'origin/master' into codex/simp-drop-unused-schema-default 2026-07-15 17:07:50 +08:00
Tianyi Cui 9f96b74e21 Merge remote-tracking branch 'origin/master' into codex/simp-hide-web-provider-helpers 2026-07-15 17:07:46 +08:00
Tianyi Cui 29a47a1fba Merge branch 'codex/simp-prune-llm-contract' into codex/simp-hide-llm-adapter-helpers 2026-07-15 17:07:42 +08:00
Tianyi Cui 70e01ab96c Merge remote-tracking branch 'origin/master' into codex/simp-prune-llm-contract 2026-07-15 17:07:39 +08:00
Tianyi Cui 7f53340f41 Merge remote-tracking branch 'origin/master' into codex/simp-prune-sandbox-surface 2026-07-15 17:07:35 +08:00