Commit Graph
144 Commits
Author SHA1 Message Date
Tianyi CuiandLegGasai 766e6f9176 test(ci): reject prunable Ubuntu bubblewrap URLs
The merged dependency repair in #4589 uses a recorded Launchpad build,
but #4591 also requires a regression guard against restoring the live
Ubuntu package pool. Those pool URLs disappear when versions are
superseded, even when the content digest is pinned.

Adapt LegGasai's URL guard from closed PR #4590 to the build-specific
endpoint that landed in #4589. Check the endpoint structure without
copying the current build number, version, or checksum into the test,
and reject Ubuntu pool downloads anywhere in the script so adding a
pool fallback cannot bypass the guard.

Negative controls restore the original archive URL and inject security
and ports pool fallback URLs; each fails the new guard. The original
script is restored byte-for-byte before all 44 workflow tests pass.
This adds only a static regression test, with no network calls or
changes to the download script or CI execution behavior.

Co-authored-by: LegGasai <[email protected]>
2026-09-19 12:08:11 +08:00
Yichen Jiang ed50586256 refactor(ci): remove unused Windows observational entry 2026-09-18 14:27:45 +08:00
Yichen Jiang 235db2a031 Merge remote-tracking branch 'origin/master' into worktree/windows-observational-reuse
# Conflicts:
#	.github/workflows/ci.yml
2026-09-18 14:13:26 +08:00
Turtle 5459be6656 ci: halve core-seconds in static and Windows observational lanes (#4521)
* ci: trial smaller Blacksmith static and observational runners

* ci: measure the 16-vCPU control for runner sizing

* ci: use 4-vCPU static and 8-vCPU observational runners

* ci: retain 8-vCPU static runner for completion time
2026-09-18 14:01:46 +08:00
Yichen Jiang a116bf73c6 Merge master and name combined Windows checks 2026-09-18 13:41:06 +08:00
Turtle 9d5fc30632 ci: adapt concurrency to available runner CPUs (#4518)
* ci: adapt worker pools to available runner CPUs

* ci: preserve local snapshot worker defaults

* test: isolate CI worker overrides in gate fixtures

* docs: clarify shared Windows worker limits
2026-09-18 13:17:34 +08:00
Yichen Jiang 46f7ab097f refactor(ci): reuse Windows builds for observational checks 2026-09-18 13:14:35 +08:00
Turtle 3164e3c616 ci: right-size Blacksmith runners by workload (#4489)
* ci: right-size Blacksmith runners by workload

* ci: retain static runner capacity supported by utilization

* ci: retain observational runner for peak CPU and memory demand

* ci: restore Windows build to 16 vCPU after runtime regression

* ci: trial 4-vCPU runtime packaging to reduce CPU time allocation

* ci: trial 2-vCPU Linux packaging and serial Windows tests

* ci: include Windows packaging in 2-vCPU trial
2026-09-18 12:28:51 +08:00
Turtle 3e9b6ad94e fix: authenticate and reconcile approval delegations 2026-09-15 22:12:41 +08:00
Turtle e2ae9411cb feat: support weighted approval delegation 2026-09-15 20:51:47 +08:00
Turtle 794b658401 fix(ci): address production blame approval review 2026-09-15 16:14:37 +08:00
Turtle 9cee793b90 Merge branch 'master' into turtle/blame-weighted-approval 2026-09-15 14:08:57 +08:00
Tianyi Cui aef56a3108 test(ci): align external-agent and workflow endpoint fixtures 2026-09-13 20:36:50 +08:00
Tianyi Cui 34f80b8e6e fix(workflow): close lifecycle and CI integration gaps 2026-09-13 14:47:56 +08:00
Tianyi Cui 35af8698c2 fix(workflow): execute orchestration in the sandboxed PTC runtime 2026-09-13 14:47:56 +08:00
Tianyi Cui 663a534d1f Merge pull request #3688 from deepseek-harness/policy-ci/policy-modules
refactor(ci): 分离 Issue policy 规则、GitHub IO 与生命周期
2026-09-12 13:31:13 +08:00
Turtle a0e1e11a86 Merge pull request #3996 from deepseek-harness/turtle/blacksmith-runtime-llm-e2e
ci: enable Blacksmith failover for runtime and DeepSeek e2e
2026-09-11 23:37:51 +08:00
Tianyi Cui 2eeab3e65f fix(ci): preserve trusted legacy policy during preflight rollout 2026-09-11 22:42:46 +08:00
Tianyi Cui 108c87008b fix(ci): avoid unnecessary issue policy Project reads and lifecycle runs 2026-09-11 22:42:46 +08:00
Tianyi Cui c49db8bc8c refactor(e2b): retire remote execution providers 2026-09-11 22:12:55 +08:00
turtle1999 fd0dce2f20 ci: route runtime and LLM e2e through Blacksmith failover 2026-09-11 14:51:15 +08:00
turtle1999 cef92ed40b feat(ci): weight approvals by production blame ownership 2026-09-11 14:16:24 +08:00
turtle1999 e46cb49103 fix(ci): derive Windows standby store from workspace volume 2026-09-10 23:02:21 +08:00
Chinesezjc 360354e38b Merge remote-tracking branch 'origin/master' into ci/failover-canary-leg 2026-09-09 20:04:23 +08:00
Chinesezjc 9bae613128 ci: add an opt-in canary value to the CI pool failover switches
The per-platform failover repository variables (DSH_CI_FAILOVER_LINUX and
DSH_CI_FAILOVER_WINDOWS) accept a third value alongside the existing
selfhosted routing. Set by a repository writer, the value retargets the
always-on pull-request and master lanes onto the matching hosted-runner
labels (16-core pools map to the 16-vCPU tier, standard legs to 4-vCPU);
unset or any other value keeps today's runners, so the leg is dormant until
a writer opts in - a canary path for capacity fallback, never the default.

Participating jobs: the three enterprise Linux workers, the node-compat
legs, the four Windows lanes, and the all-checks-passed verdict in ci.yml;
expected-filenames; the sandbox bwrap leg; and the two manual benchmark
matrices (4-32 vCPU tiers map to equivalents; 64/96-core rows keep the
fleet labels). Everything pinned to its own runner by spec, credential, or
host capability keeps it under every value, and the release-shaped chains
stay entirely hosted. request-review.yml was retired on master while this
work was in flight and the branch takes the deletion.

Specs pin the new branches: ci-workflow.spec.ts asserts the labels appear
in the extended selectors, and ci-compatible-selfhosted.spec.ts evaluates
the routing mode.
2026-09-09 19:02:10 +08:00
Tianyi Cui 3c4c6c3d7b fix(ci): cancel superseded PR and master validation 2026-09-09 18:20:01 +08:00
turtle1999 0d44848ba6 Rename weighted approval publisher job 2026-09-09 15:58:21 +08:00
turtle1999 1eaba2809b Remove cyborg wording from weighted approval 2026-09-09 14:28:10 +08:00
Turtle d6ed693f23 ci: remove automatic review requests 2026-09-09 12:56:06 +08:00
Turtle c4855581c3 fix: preserve weighted approval review semantics 2026-09-08 20:19:29 +08:00
Turtle 4550bb6e69 feat: enforce weighted pull request approvals 2026-09-08 19:08:08 +08:00
Turtle fe834c7f92 fix: reconcile automated review requests 2026-09-08 14:15:41 +08:00
Turtle 06c01ce2e8 Merge pull request #3684 from deepseek-harness/turtle/custom-review-ownership
chore: automate changed-file review ownership
2026-09-08 13:47:15 +08:00
Turtle e970408acd chore: automate static review ownership 2026-09-08 11:37:58 +08:00
Tianyi Cui 153d54a2f2 ci: retain shared persistent npm cache 2026-09-07 18:14:33 +08:00
Tianyi Cui 4ee338532a ci: retain shared pnpm store across runner instances 2026-09-07 17:28:12 +08:00
Tianyi Cui 7ef325619f Merge branch 'master' into fix/pr-ci-reliability-20260906 2026-09-07 16:46:31 +08:00
Tianyi Cui 0ac1d4d865 test(perf): align browser provisioning with hosted benchmark runner 2026-09-07 13:29:38 +08:00
Tianyi Cui c51c16cdac test(perf): respect browser failover provisioning policy 2026-09-07 13:29:38 +08:00
Tianyi Cui 2927034ffe test(perf): retain successful CI measurement output 2026-09-07 13:29:38 +08:00
Tianyi Cui 3d54bd6d58 Merge branch 'master' into fix/ci-node-compile-cache-data-disk 2026-09-07 13:06:30 +08:00
Tianyi Cui c379894af8 fix(ci): isolate routing test setup and correct scheduling docs 2026-09-07 12:40:40 +08:00
Tianyi Cui ab1ee99685 ci: defer macOS ARM runtime and Wine checks to master 2026-09-07 12:40:40 +08:00
Tianyi Cui cc69d5fcac fix(ci): isolate Playwright cache and installation locks per runner 2026-09-06 22:59:11 +08:00
Tianyi Cui f50dce316c fix(ci): isolate persistent pnpm indexes on runner data volumes 2026-09-06 22:16:00 +08:00
Tianyi Cui e61d9fc0c7 fix(ci): isolate npm caches and synchronize ACP snapshot completion 2026-09-06 21:47:55 +08:00
Tianyi Cui 5c8e1b53de Merge latest master into fix/ci-node-compile-cache-data-disk 2026-09-06 21:26:37 +08:00
Tianyi Cui 1439887241 fix(ci): keep PR temporary files under runner cleanup 2026-09-06 21:24:09 +08:00
Tianyi Cui f75aabcb16 test(ci): run required benchmarks on standard hosted Linux 2026-09-06 17:10:30 +08:00
Tianyi Cui 2395f112d8 test(perf): gate opening large Sessions with synthetic CI benchmarks
Add a benchmark lane (`vitest.bench.config.ts`, `pnpm run test:bench`,
gate mode `ci-bench`) and a required `node 24 / benchmarks` CI job that
runs it alone. Benchmarks synthesize their input in-process from fixed
parameters and fail on documented budgets:

- `open-generation.bench.ts`: a 200-turn released-v0 log with 500 text
  and 125 reasoning deltas per reply (127,400 events, ~2.8 MB) encoded
  through the frozen v0 codec; the migrating first `open()` must finish
  within 2,000 ms in a child process capped at 128 MB of old space, and a
  fresh process must open the published current generation within 500 ms.
- `conversation-fold.bench.client.ts`: 200 replies whose compact streams
  hold 2,000 text + 500 reasoning deltas each, folded through every Chat
  Definition by the real assembler; the fold must finish within 150 ms
  and stay within 3x the fold of the same window with 100 deltas per
  reply.

On this commit both gates fail: the migration exhausts the 128 MB heap
(4.8 s and 696 MB peak RSS without the cap; the pre-stack decode of the
same bytes took 34 ms and 168 MB) and the fold scales 11x with the delta
count. The stacked fixes bring both paths to O(records).
2026-09-06 01:01:03 +08:00