Commit Graph
206 Commits
Author SHA1 Message Date
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 53615c91e7 Merge master into worktree-windows-runtime 2026-07-21 23:39:14 +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
Tianyi Cui 78eb93f7e6 Merge branch 'master' into worktree-windows-runtime 2026-07-20 20:39:13 +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
imccyu 3a82b3edd7 ci(windows): observe runtime coverage and snapshots
docs: record cross-platform gate boundaries
2026-07-18 12:40:13 +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
imccyu e6e587b97d ci: add a native-Windows build lane (install + build)
Runs `pnpm install` + `pnpm run build` (tsc -b + tsdown) on windows-2025,
and is listed in all-checks-passed `needs` so a Windows build regression
cannot land silently. Windows path/shell support is still partial, so this
lane covers the build surface only; tests and gates are not run here yet.
2026-07-15 16:38:22 +08:00
kingwl 0a486f09c9 chore: adopt node-addon-landlock-run source as native/ subtree
Bring the node-addon-landlock-run tree (tag v0.0.1, commit 614f7fd) into
native/landlock-run as its source of record: launcher development happens
here, next to the harness consumers, and the standalone repository becomes
the release mirror the tree is exported to for packing and publishing
(procedure in native/README.md). The subtree keeps its own pnpm workspace
and lockfile and is NOT added to the harness workspace: harness installs,
gates, and CI never touch it. The mirror's .github/ stays out of the
subtree; a separate manually-dispatched workflow
(.github/workflows/landlock-run.yml) runs the subtree's CI legs — the
per-architecture native builds, real-kernel launcher proofs, and pack
rehearsal — adapted with working-directory/cache paths.

eslint ignores the subtree like vendor/; AGENTS.md gains the native/
layout line (+5 words on its budget ceiling).
2026-07-14 23:39:58 +08:00
Tianyi Cui f0fc20ca42 docs: align prose with runtime contracts 2026-07-14 16:21:41 +08:00