Commit Graph

205 Commits

Author SHA1 Message Date
Hypatia May
ff8c5600f4 Merge pinned master into status bar projection 2026-07-31 09:28:52 +08:00
imccyu
7f420ef6b6 ci: disable session telemetry in all GitHub workflows
apps/cli/cordis.yml now bakes in the production OTLP endpoint; CI boots of
the web composition (e2e, snapshots, built smokes) must not stream test
sessions there. DSH_TELEMETRY_DISABLED=1 at the workflow level disables
the telemetry row before its load-time url validation; the telemetry e2e
still runs — it overrides the variable to empty for its child process and
points DSH_TELEMETRY_OTLP_URL at its in-test collector.
2026-07-31 01:34:41 +08:00
Hypatia May
be44f073e1 Fix invariant readiness after CI sync 2026-07-31 00:20:18 +08:00
imccyu
8cc31127c4 ci: concurrency 3/6 2026-07-30 22:22:18 +08:00
imccyu
56a8db2777 ci: use 16c
16c
2026-07-30 21:59:47 +08:00
imccyu
be0216102a Reapply "ci: reduce coverage cocurrency"
This reverts commit a471ba79e30e6148e8c433b83fe0d7ee14a8312b.
2026-07-30 21:50:49 +08:00
imccyu
98f6552e21 Revert "ci: reduce coverage cocurrency"
This reverts commit ab30aca5cb859aea4bd0fffc88414270d1761f7d.
2026-07-30 21:50:47 +08:00
Tianyi Cui
ef9fbb0621 Merge branch 'master' into worktree/ci-independent-consumer-build 2026-07-30 21:48:44 +08:00
Tianyi Cui
85d721458a ci: keep self-hosted serial standby enabled 2026-07-30 21:45:43 +08:00
Tianyi Cui
7dff9c3ad0 ci: temporarily disable serial reference runners 2026-07-30 21:38:04 +08:00
Tianyi Cui
ec1f08d3ba Merge branch 'master' into worktree/ci-independent-consumer-build 2026-07-30 21:07:14 +08:00
imccyu
e3388cee87 ci: reduce typert cost 2026-07-30 20:03:58 +08:00
imccyu
82a151ed35 ci: increase coverage memory 2026-07-30 19:57:18 +08:00
imccyu
67de3e12b6 ci: reduce coverage cocurrency 2026-07-30 19:57:18 +08:00
Tianyi Cui
6d6c146f81 ci: allocate consumer runner independently 2026-07-30 19:02:10 +08:00
imccyu
6303b22487 ci: run web replay on master linux 2026-07-30 11:16:37 +08:00
imccyu
72c9d40ad9 ci: isolate web snapshots to consumer lane 2026-07-30 10:54:51 +08:00
imccyu
4b4f7752c1 ci: gate web browser snapshots 2026-07-30 10:23:05 +08:00
Turtle
95a995968b refactor: migrate linting to Oxlint 2026-07-29 14:32:11 +08:00
Tianyi Cui
c13d1a4285 fix(ci): isolate pnpm setup per runner 2026-07-29 00:45:52 +08:00
Tianyi Cui
d70cb63833 Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:41:26 +08:00
Tianyi Cui
09a65125ba Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:34:30 +08:00
Tianyi Cui
f85736e814 ci: run sandbox matrix on master only 2026-07-28 15:26:00 +08:00
dependabot[bot]
305f185ede chore(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 04:13:32 +00:00
Tianyi Cui
fb3b35d70b Merge branch 'master' into dependabot/github_actions/actions/deploy-pages-5 2026-07-28 12:06:30 +08:00
Tianyi Cui
b7abd1bb8b Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 10:58:36 +08:00
dependabot[bot]
b2b063b667 chore(deps): bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 18:43:26 +00:00
Tianyi Cui
d597cbf87a Merge branch 'master' into dependabot/github_actions/actions/setup-python-6.3.0 2026-07-28 02:36:09 +08:00
dependabot[bot]
cdf78e9277 chore(deps): bump actions/setup-python from 6 to 6.3.0
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 6.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v6.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 15:36:49 +00:00
dependabot[bot]
5e2d37b19c chore(deps): bump actions/upload-pages-artifact from 4 to 5
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 15:36:41 +00:00
dependabot[bot]
b21acea0ce chore(deps): bump actions/configure-pages from 5 to 6
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/configure-pages
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 15:36:37 +00:00
Tianyi Cui
4bb60b1069 feat(dev-infra): make gate plans inspectable and replayable 2026-07-27 21:27:42 +08:00
Tianyi Cui
4cd6d5b762 Merge remote-tracking branch 'origin/master' into worktree/pr744-macos-wine-fix
# Conflicts:
#	.github/workflows/ci.yml
2026-07-27 18:59:56 +08:00
Tianyi Cui
1665ab9884 ci: preserve stores across pnpm action setup
Keep restore-only and self-hosted stores outside pnpm/action-setup's replaceable install directory, resolving the configured path for every paired cache. Pin Yarn 4 for the generated-project e2e so runner images without Corepack do not fall back to Yarn Classic, and update the bilingual decision record.
2026-07-27 18:39:20 +08:00
Tianyi Cui
2421179702 Merge origin/master into worktree/pr675-retarget-20260727 2026-07-27 18:22:22 +08:00
Tianyi Cui
4e32f838b3 Merge branch 'master' into wine-local-gate 2026-07-27 18:00:55 +08:00
Tianyi Cui
f12ea986cb ci: share one Wine Windows gate script between CI and an optional local gate
scripts/wine-windows-gates.sh owns the whole lane — workspace snapshot,
concurrent Node/wineboot/install provisioning, entrypoint resolution, the
vue link, smoke, and the two concurrent blocking gates — so the ci.yml
windows job shrinks to runner provisioning plus one script call, and
pnpm run check:windows-wine runs the identical script locally. The local
path never mutates the working tree, persists the Wine prefix and the
checksum-verified Windows Node zip under .cache/wine-windows/, and falls
back to the cached zip offline. AGENTS.md ceiling 1680 -> 1695 for the
one-line command entry.
2026-07-27 17:04:05 +08:00
Chinesezjc
2bacd4814e Merge master; re-record serial-reference pairing over the merged pair 2026-07-27 16:48:01 +08:00
Chinesezjc
aa80cde700 Merge master; all-checks-passed defaults to ubuntu-latest (#734) with the failover selector kept 2026-07-27 16:32:18 +08:00
Tianyi Cui
18d76acca0 Merge branch 'master' into nih-imp-ci-cache 2026-07-27 16:31:02 +08:00
Tianyi Cui
5e13376cbc Merge remote-tracking branch 'origin/master' into exp/wine-windows-ci 2026-07-27 16:27:25 +08:00
Chinesezjc
ce3b13bb08 ci: standby fetches full history; runbook — writer wording throughout, master-ref pinning incompatibility
- serial-linux-selfhosted checks out fetch-depth 0: depth 2 misses
  github.event.before on multi-commit or force pushes, failing the
  archive verifier on a valid tree. Full fetch is cheap against the
  VM's local mirror.
- Runbook (both languages): every remaining admin phrasing (problem
  statement, switch heading, alternatives, consequences) now says
  writer; and the 'composes with this mechanism' claim about a
  master-ref-pinned runner group is replaced with the truth observed
  live on 2026-07-27 — master-ref pinning blocks PR failover, and the
  shipped posture is repository-scoped all-workflow group access.
Static gate green locally: 32 passed, 0 failed.
2026-07-27 16:13:45 +08:00
Chinesezjc
24d7211f09 docs(ci): stop claiming no PR-editable path reaches the standby pool
The standby lane itself is push-only, but under failover pull_request
jobs do reach these runners with the PR merge ref's workflow. The
workflow comment and the larger-runner note (both languages) now state
that plainly and name the actual boundary — repository membership
(private, forking disabled, Dependabot excluded) — matching the
runbook. Static gate green locally: 32 passed, 0 failed.
2026-07-27 16:02:56 +08:00
Chinesezjc
e2eca69e9c docs(ci): writer-level trust boundary stated everywhere; serial note counts four references
- Sweep every remaining 'admin-only' claim (workflow comments, runbook
  lines 13/40, topology note, all zh pairs): the variable is
  writer-manageable, and the boundary against untrusted code is
  repository membership (private, forking disabled, Dependabot
  excluded) — stated identically at every site instead of only in the
  'who can flip' paragraph.
- Serial cross-platform reference note (both languages): master now
  runs four references — the three hosted OS legs plus the self-hosted
  standby drill, linked to the failover runbook.
Static gate green locally: 32 passed, 0 failed.
2026-07-27 15:54:59 +08:00
Chinesezjc
d606ab6877 ci: standby archive base ref; runbook — dependabot exception, clean bootstrap, variable trust model
- serial-linux-selfhosted now fetches depth 2 and passes
  DSH_ARCHIVE_BASE_REF=github.event.before, running the same
  frozen-archive comparison as serial-linux instead of diffing the
  new manifest against itself.
- Runbook (both languages): documents the deliberate dependabot
  exception (queued-on-hosted during failover is expected, not a
  failed switch); corrects the emergency-capacity bootstrap to
  exclude .runner/.credentials when cloning a runner directory; and
  replaces the 'admin-only' variable claim with the accurate
  trust-model statement — repository variables are writer-manageable,
  which in this private fork-disabled repo with an all-workflows
  runner group is routing among members, not an escalation.
Static gate green locally: 32 passed, 0 failed.
2026-07-27 15:47:19 +08:00
Chinesezjc
caabf8f671 ci: dependabot stays hosted under failover; runbook matches shipped bounds
- All four failover selectors (three workers + the verdict job) and the
  paired env/cache expressions now exclude dependabot[bot]: under
  failover, dependency-supplied code keeps queueing for the hosted pool
  instead of executing on the persistent VM. A delayed Dependabot PR
  during an outage is an acceptable cost; dependency code on the
  privileged host is not.
- Runbook (both languages): records the shipped failover bounds
  (coverage 8, snapshots 12, sized for six instances) and documents
  that the verdict job follows the selector too — operators previously
  had no explanation for a verdict queued after all workers passed.
- Local static gate green: 32 passed, 0 failed (translation pairing
  519 pairs consistent).
2026-07-27 15:36:11 +08:00
Tianyi Cui
be34ae6b86 ci: run required status aggregator on ubuntu-latest 2026-07-27 15:32:05 +08:00
Chinesezjc
fe246e4a0a ci: failover round — aggregate follows the selector, tighter shared-VM bounds
- all-checks-passed now resolves its pool through the same
  DSH_CI_FAILOVER expression as the worker jobs it aggregates.
  Pinned to the hosted pool it would leave the branch-protection
  verdict queued on the failed pool after every failover job passed —
  observed live during the 2026-07-27 outage as a required check
  looping against dead capacity.
- Coverage worker bound under failover drops 12 → 8 and snapshot
  concurrency 16 → 12: the pool now runs six always-on instances (the
  spare tier was retired), so worst case is 6 × 8 = 48 coverage
  workers on the shared 64-core VM.
2026-07-27 15:17:48 +08:00
Tianyi Cui
cff614d37d ci: run the pull-request Windows blocking gates under Wine on hosted Linux
The required windows job moves from windows-2025 to ubuntu-latest, running
checksum-verified Windows Node under Wine at Linux-job wall clock (2m46s
warm vs 7-9min); master's serial-windows native-kernel reference is
untouched, and a new master-only wine-apt-cache job seeds the apt cache
every pull request restores. The experiment workflow folds into ci.yml,
the Agent Note moves to implemented with measured results, and the two CI
topology notes update to the shipped facts.
2026-07-27 13:17:12 +08:00
Tianyi Cui
073c698c72 ci: finish the corepack sweep — pnpm/action-setup everywhere
Review follow-up on the symmetric-cache conversion: provisioning and
caching are separable concerns, so the remaining 8 corepack enable
sites (the three enterprise restore-only PR jobs, the required Windows
job, serial-macos/serial-windows, the cache-less ci.yml jobs, and
sandbox.yml) now provision pnpm via pnpm/action-setup@v4 too — only
the provisioning line moves; every deliberate cache shape (enterprise
restore-only pairing, serial-linux producer, Windows cache-less) is
byte-preserved. corepack is gone from CI entirely.

Agent Note retitled to the decision's real shape (provisioning policy,
with caching as per-job policy on top), EN+ZH, pair re-recorded;
composite-action and stop-at-cache-workflows alternatives recorded.
2026-07-27 13:15:09 +08:00