Commit Graph

109 Commits

Author SHA1 Message Date
Tianyi Cui
d7e0104a72 ci: unpack bubblewrap without package transaction 2026-07-22 16:45:59 +08:00
Tianyi Cui
b63e6ee72d ci: bound coverage worker forks 2026-07-22 16:26:25 +08:00
Tianyi Cui
9d81078f2f ci: split primary cold-path budget 2026-07-22 16:10:52 +08:00
Tianyi Cui
c67ae11f78 ci: stabilize compatibility runner setup 2026-07-22 16:02:52 +08:00
Tianyi Cui
cd19f87c3f ci: name split Linux lane precisely 2026-07-22 15:57:32 +08:00
Tianyi Cui
0f57eafc36 ci: collapse cold setup waves 2026-07-22 15:44:11 +08:00
Tianyi Cui
990f82b85c ci: tune consolidated runner concurrency 2026-07-22 15:17:17 +08:00
Tianyi Cui
3db0b71f91 ci: consolidate gates on large runners 2026-07-22 15:04:24 +08:00
Tianyi Cui
03348aa382 ci: parallelize aggregate lint 2026-07-22 14:53:46 +08:00
Tianyi Cui
e65ea9bdbc ci: benchmark consolidated hosted gates 2026-07-22 14:42:43 +08:00
Tianyi Cui
95abe24cb7 ci: give snapshot lanes eight cores 2026-07-22 14:28:32 +08:00
Tianyi Cui
da1bee87c7 ci: use four-core hosted runners 2026-07-22 14:13:49 +08:00
Tianyi Cui
753d168bb1 ci: benchmark larger hosted runners 2026-07-22 13:55:51 +08:00
Tianyi Cui
ab1c24301a ci: rebalance hosted concurrency budget 2026-07-22 00:44:48 +08:00
Tianyi Cui
5bb594c400 ci: avoid hosted runner setup saturation 2026-07-22 00:39:58 +08:00
Tianyi Cui
109224af5d ci: quarter cold-cache lint lanes 2026-07-22 00:31:25 +08:00
Tianyi Cui
070d23d663 ci: keep cold-cache lanes bounded 2026-07-22 00:22:06 +08:00
Tianyi Cui
624d71aea6 ci: harden runner preparation caches 2026-07-22 00:11:48 +08:00
Tianyi Cui
710f062586 ci: add snapshot lane headroom 2026-07-21 23:56:53 +08:00
Tianyi Cui
e887c0f7c0 ci: assign session title coverage 2026-07-21 23:36:35 +08:00
Tianyi Cui
efba4c259b ci: split model and integration coverage 2026-07-21 23:25:52 +08:00
Tianyi Cui
9568f9ee27 ci: split Windows build and site validation 2026-07-21 23:18:49 +08:00
Tianyi Cui
06f3b246b5 ci: add serial cross-platform reference runs 2026-07-21 23:03:52 +08:00
Tianyi Cui
e4c56b35e8 ci: add tail-lane headroom 2026-07-21 22:00:34 +08:00
Tianyi Cui
311cbe1e4c ci: rebalance final boundary lanes 2026-07-21 21:49:35 +08:00
Tianyi Cui
89add445fe ci: split boundary lanes 2026-07-21 21:39:51 +08:00
Tianyi Cui
ca0c9a7c48 ci: restore hosted lane headroom 2026-07-21 21:28:49 +08:00
Tianyi Cui
7813dbcf0f ci: bound hosted fanout 2026-07-21 21:14:55 +08:00
Tianyi Cui
25f9035ecd ci: split remaining one-minute lanes 2026-07-21 21:05:39 +08:00
Tianyi Cui
3d96508244 ci: restore hosted-run headroom 2026-07-21 20:51:28 +08:00
Tianyi Cui
91bd51c23a ci: add coverage lane headroom 2026-07-21 20:32:57 +08:00
Tianyi Cui
f1202d0dd8 ci: enforce bounded build lanes 2026-07-21 20:15:09 +08:00
Yichen Jiang
fe393c55c8 ci: restrict Pages deployment to master 2026-07-20 18:41:10 +08:00
Yichen Jiang
734a45cf66 ci: deploy documentation to GitHub Pages 2026-07-20 18:36:21 +08:00
kingwl
48f19044de Merge remote-tracking branch 'origin/master' into chore/import-landlock-run
Conflict: doc-budgets manifest — master raised the AGENTS.md ceiling to 1600
(superseding this branch's 1377 bump for the native/ line), take master's
values.
2026-07-20 11:11:09 +08:00
Tianyi Cui
e8eddc7ef8 Rename RFCs to Agent Notes 2026-07-19 22:52:03 +08:00
Yichen Jiang
299059665d Merge branch 'master' into worktree/pi-ai-manual-e2e 2026-07-19 21:47:04 +08:00
Tianyi Cui
b7cdad6360 ci: reject golden filenames on matching PRs 2026-07-19 21:24:42 +08:00
Yichen Jiang
39dea6107e fix(ci): target Azure Foundry OpenAI v1 route 2026-07-19 14:06:18 +08:00
Yichen Jiang
1fdcd5a773 ci: run pi-ai OpenAI e2e through Azure 2026-07-19 13:42:21 +08:00
Yichen Jiang
b2ccf235dc Merge branch 'master' into worktree/pi-ai-manual-e2e 2026-07-18 21:16:46 +08:00
Yichen Jiang
b50e02a2b3 ci: add manual pi-ai provider e2e 2026-07-17 23:33:30 +08:00
imccyu
5ed531acba ci(examples): run examples / testing from built lib/js 2026-07-17 23:07:51 +08:00
kingwl
81b3d24df8 Merge remote-tracking branch 'origin/master' into chore/import-landlock-run 2026-07-16 23:11:59 +08:00
imccyu
47858df1ef ci(windows): defer coverage lane 2026-07-15 19:58:34 +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
kingwl
5f56e49ef3 Merge remote-tracking branch 'origin/master' into chore/import-landlock-run
Conflicts: AGENTS.md repository-layout block (keep master's examples/ wording,
keep this branch's native/ line) and the AGENTS.md word-budget ceiling
(master's copy grew too; ceiling now 1377 for the +5-word native/ line).
2026-07-15 18:11:02 +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