Commit Graph

253 Commits

Author SHA1 Message Date
Tianyi Cui
2b539346c8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:12:16 +08:00
Tianyi Cui
a5ed3a5cfc refactor(dev-infra): narrow change scope report 2026-07-28 01:02:43 +08:00
Tianyi Cui
9c6de3644e Merge branch 'master' into archive-agent-notes-sweep-2 2026-07-28 00:49:13 +08:00
Tianyi Cui
b1dc759fee Merge remote-tracking branch 'origin/master' into worktree/pr762-merge-20260728 2026-07-28 00:29:00 +08:00
Tianyi Cui
59122b9e85 Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-28 00:06:16 +08:00
Tianyi Cui
c982cf7805 refactor(dev-infra): narrow worktree hook safety checks 2026-07-28 00:05:31 +08:00
Tianyi Cui
f2c0021941 docs(notes): aggressive archive sweep of low-value decision records
Archive 21 implemented triplets whose shipped decisions are complete and
whose bodies no longer guide future work (one-off UI chrome, generator
applications whose scripts are self-explanatory, superseded implementation
detail, process history owned by current contracts/skills). Delete 4
rejected triplets whose premises are obsolete: the DeepReadonly proposal
(dev-invariants note now carries the alternative inline), the collapse
tool-owned presentation proposal (superseded by the shipped render-intent
union), retire-mid-turn-steering (steering is now load-bearing across
plan-mode/apiproxy/TUI), and single-session-ACP (automation-only ACP
resolved the question; multi-session isolation is pinned by tests).

Repair every inbound link: retarget intentional historical citations to
archived paths, replace decision-current citations with the surviving
authority, and fix the stale example-execute-over-tsx pointer in
pnpm-workspace.yaml. Re-record pairing sidecars and seal the archive
manifest (append-only; existing seals unchanged).
2026-07-28 00:00:51 +08:00
Tianyi Cui
752d4b9204 Merge updated origin/master into feat/tui-master-port 2026-07-27 23:56:54 +08:00
Tianyi Cui
95bba22f84 Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-27 23:47:28 +08:00
Tianyi Cui
18835ca838 Merge updated origin/master into feat/tui-master-port 2026-07-27 23:39:59 +08:00
Tianyi Cui
35697a4529 Merge origin/master into Agent Note supersession checks 2026-07-27 23:39:18 +08:00
Tianyi Cui
6241eb6044 Require Agent Note supersession checks 2026-07-27 23:38:49 +08:00
Tianyi Cui
f843d2b238 Merge origin/master into feat/tui-master-port 2026-07-27 23:34:56 +08:00
Tianyi Cui
7759b1d682 docs: record Dependabot security update boundary 2026-07-27 23:27:07 +08:00
Tianyi Cui
22e3327f68 chore: configure Dependabot updates 2026-07-27 23:21:52 +08:00
Tianyi Cui
7acb4332eb fix(dev-infra): keep change scope probes inert 2026-07-27 22:55:10 +08:00
Tianyi Cui
f7729b6f53 fix(dev-infra): harden worktree hook ownership 2026-07-27 22:54:44 +08:00
Tianyi Cui
74c1a76440 fix(dev-infra): detect GitHub Actions installs 2026-07-27 22:00:36 +08:00
Tianyi Cui
1f8a3dd7b1 fix(dev-infra): skip hook setup in CI 2026-07-27 21:54:04 +08:00
Tianyi Cui
19b8794966 fix(dev-infra): guard dormant worktree configs 2026-07-27 21:31:12 +08:00
Tianyi Cui
3feaef6ecb fix(dev-infra): harden worktree hook migration 2026-07-27 20:58:19 +08:00
Tianyi Cui
b5c8b80839 fix(dev-infra): reject non-UTF-8 scope paths 2026-07-27 20:54:49 +08:00
Tianyi Cui
10b82b78ce fix(dev-infra): preserve worktree path whitespace 2026-07-27 20:07:45 +08:00
Tianyi Cui
054ee9f2cc Merge origin/master into worktree/worktree-local-lefthook-20260727 2026-07-27 20:02:39 +08:00
Tianyi Cui
3a69e7a2d8 fix(dev-infra): isolate Lefthook per worktree 2026-07-27 20:02:29 +08:00
Tianyi Cui
4aa7c9d0e1 Merge origin/master into worktree/explicit-change-scope-report-20260727 2026-07-27 20:00:24 +08:00
Tianyi Cui
61703d224b feat(dev-infra): add explicit change scope report 2026-07-27 19:53:50 +08:00
Tianyi Cui
dd03c88083 Merge commit 'refs/codex-unblock/20260727/pr660-master' into worktree/pr660-merge-20260727
# Conflicts:
#	scripts/doc-budgets.manifest.json
2026-07-27 19:34:55 +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
Turtle
5d2329e207 feat(skills): bundle and harden personal maintenance workflows 2026-07-27 18:53:30 +08:00
Tianyi Cui
62b5bd2fee Merge origin/wine-local-gate into macOS Wine fix 2026-07-27 18:43:19 +08:00
Tianyi Cui
7b9eceff53 fix(ci): make local Wine gate portable on macOS 2026-07-27 18:43:00 +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
1ee8029bc6 Merge remote-tracking branch 'origin/master' into worktree-process-service-seam 2026-07-27 17:24:20 +08:00
Tianyi Cui
8be70e72d2 docs: scope the local Wine gate to Windows-failure diagnosis only
AGENTS.md and the Wine Agent Note pair state the run policy: CI owns the
everyday win32 signal; run check:windows-wine only while investigating a
known Windows-related failure, and pre-push selection never includes it.
2026-07-27 17:15:37 +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
7b49f4a4ee docs(ci): runbook — glob migrated identity files; scope the promise to enterprise-pool outages
- The clone exclusion is now '.runner*' (catches .runner_migrated /
  .credentials_migrated, which GitHub writes on migrated runners and
  which equally trip the already-configured refusal — hit live during
  the 2026-07-27 org-group migration).
- The problem statement now states the verdict runs on ubuntu-latest,
  scopes the switch to enterprise Linux-pool outages, and names the
  residual dependency: node-compat/python-sdk/windows stay standard-
  hosted, so a broader hosted-capacity failure still blocks the
  verdict, with Windows the only leg lacking any in-house substitute.
Static gate green locally: 32 passed, 0 failed.
2026-07-27 16:56:02 +08:00
Chinesezjc
2bacd4814e Merge master; re-record serial-reference pairing over the merged pair 2026-07-27 16:48:01 +08:00
Tianyi Cui
7bdb90aebb Merge remote-tracking branch 'origin/master' into worktree-process-service-seam 2026-07-27 16:44:38 +08:00
Chinesezjc
3cf2853b3f docs(ci): bootstrap procedure starts the listener service
config.sh only registers; the runner stays offline until svc.sh
install/start. Both language sides updated so emergency capacity
actually comes online.
2026-07-27 16:22:30 +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
Chinesezjc
aedf7fbf34 docs(i18n): keep the runbook link target identical across the pair
The pairing gate requires link target #9 to be byte-identical between
the language sides; my earlier 'fix' pointed the zh side at the zh
runbook and broke the contract. Reverted to the shared target and
re-recorded the pairing hash.
2026-07-27 15:27:40 +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
b2dac8854d Merge remote-tracking branch 'origin/nih-imp-ci-cache' into nih-imp-ci-cache 2026-07-27 13:15:38 +08:00