Commit Graph

101 Commits

Author SHA1 Message Date
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
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
Tianyi Cui
1ab64dba62 Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	docs/development.i18n.yaml
#	docs/development.zh.md
#	docs/rfc/implemented/feature/2026-06-14-acp-agent-client-protocol.md
#	docs/rfc/implemented/feature/2026-07-06-sandbox.md
#	examples/AGENTS.md
#	examples/README.md
#	examples/acp-agent/README.md
#	examples/acp-agent/cordis.yml
#	examples/acp-agent/tests/acp.e2e.ts
#	examples/acp-agent/tests/escalation.e2e.ts
#	examples/sandbox-acp-agent/README.md
#	examples/sandbox-acp-agent/cordis.snapshot.yml
#	examples/sandbox-acp-agent/cordis.yml
#	examples/sandbox-acp-agent/tests/acp.snapshot.ts
#	packages/ui/acp-agent/src/bin.ts
#	packages/ui/acp/README.md
#	packages/ui/jsonrpc-agent/README.md
#	packages/ui/jsonrpc-agent/src/bin.ts
#	scripts/verify-translation-pairing.ts
2026-07-14 12:34:14 +08:00
Tianyi Cui
cdc3522e48 Merge remote-tracking branch 'origin/master' into unify-acp-example
# Conflicts:
#	docs/config-catalog.md
#	docs/module-graph.md
#	pnpm-lock.yaml
2026-07-14 00:56:28 +08:00
Tianyi Cui
972e7cc77d Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/config-catalog.md
#	docs/event-producer-consumer.md
#	docs/rfc/implemented/feature/2026-07-05-dynamic-workflows.md
#	examples/acp-agent/tests/acp.snapshot.ts
#	packages/code-runtime/code-runtime-worker/tests/built-lib.e2e.ts
#	packages/code-runtime/code-runtime-worker/tsdown.config.ts
2026-07-14 00:40:36 +08:00
Tianyi Cui
cf89226510 test(pkg): snapshot advanced Python SDK executable flow
The existing assertion-only executable smoke proved selected outputs but could not detect drift across the integrated Python SDK, JSON-RPC notification stream, and persisted session shape.

Keep this separate from ACP snapshots because it must launch the actual platform-native packaged executable through the Python SDK. The deterministic model drives Cordis dynamic tool mounting, a Code Mode worker dispatch, direct spawn delegation, workflow-worker delegation, plugin disposal, and the parent/child persistence lineage.

Commit four portable goldens for the SDK result and three JSONL logs. Normalize timestamps, temporary paths, opaque session and agent identifiers, and bulky request headers while retaining ordering, tool names and arguments, header deltas, results, lineage, and final responses so all native build legs compare the same behavior.

Run the comparison in the label-gated executable build workflow and document the current coverage in the paired implemented RFC.
2026-07-13 23:31:26 +08:00
Yichen Jiang
fe3777cf27 python: derive release version from repository 2026-07-13 17:49:01 +08:00