Commit Graph
125 Commits
Author SHA1 Message Date
Turtle f290a8b851 refactor(cli)!: one shared base config with per-surface overlays
`dsh` shipped two config trees that were 43 rows the same: apps/cli/cordis.yml
composed web as 74 flat rows, while the TUI booted examples/tui-agent/cordis.yml
whose single `@deepseek-ai/dsh-tui-demo` row mounted twelve plugins behind a
twenty-key pass-through Config. Neither file was what its location claimed —
apps/cli hardcoded the "example" as the product default and the "demo" bundle
was the application — and every capability change had to be made twice.

- apps/cli/base.cordis.yml holds the 43 shared rows; tui.cordis.yml and
  web.cordis.yml are patch lists stating only what differs per surface
- overlays apply as SIBLING patch lists at one include level, because include
  patches never cross an include boundary. Precedence: base < surface <
  (--config | personal ~/.dsh/config.yaml) < launcher flag/profile patches
- `--config` now applies an overlay INSTEAD OF the personal one, so a demo or
  test tree never inherits the user's route; new `--config-replace` boots a file
  as the entire tree (the old `--config` behaviour). Both survive /resume
- vendor/include: index each `insert`ed row as it is added so a later patch can
  configure or disable it. Upstream built the id index once before the patch
  loop, leaving every surface-only row — the whole TUI front door — silently
  unpatchable from user config. Logged as local modification 8
- session identity moves to dsh-agent-loop's CONFIGURED_AGENT_IDENTITIES_KEY;
  dsh-tui's MAIN_SESSION_ID_KEY is deleted (only the bundle read it)
- delete examples/tui-agent, examples/cordis-agent, packages/examples/tui-demo;
  TUI tests → apps/cli/tests, cordis e2e → packages/cordis/tool-cordis/tests,
  examples/code-mode survives as an overlay leaf
- `dsh web` gains --config, threaded into AppCLIEntry as an extra overlay

Three latent defects surfaced and are fixed here: the TUI captured the optional
sessionQuery service once at construction and could permanently disable /resume
when it won the mount race; the session-store root silently reverted to a
project-local ./.sessions; --config-replace was dropped by the resume handoff.

Verified by booting each tree through the real Loader (TUI 55 entries, web 75,
zero unsettled) rather than reading YAML. All eight terminal snapshots replay
byte-identically; 14/14 PTY smoke, 112/112 snapshots, 25/25 doc-sync, hygiene
and lint clean.
2026-07-29 21:15:42 +08:00
kingwl aebf9c863b feat(cli): launch dsh source through the tsx ESM hook
Node 26.0.0 removed --experimental-transform-types, so the native
source-launch chain cannot start anywhere on that line, and strip-only
mode rejects the vendored syntax (parameter properties, decorators,
runtime enums/namespaces). Switch bin/dsh, the root dsh/demo:tui/
demo:web scripts, and the Code Mode TUI overlay to node --import
tsx/esm: one launch vector across the whole engines range, ~0.4s faster
than the full tsx default (the CJS hook stays off; the graph is
ESM-only).

Delete scripts/tspath-loader.ts and apps/cli/src/tsconfig-paths-loader.ts:
tsx owns both transformation and tsconfig paths projection. Add
dsh-source-launch-smoke to the node-compat gates so the 22.19/26 matrix
executes the real launch vector; no CI job did, which is how the Node 26
breakage shipped silently.

Supersedes the native-TypeScript-source-launch Agent Note (new note
records the profiling evidence and rejected alternatives).
2026-07-29 13:15:24 +08:00
Tianyi Cui cbbd888cab simplify gate graph validation 2026-07-28 15:33:20 +08:00
Tianyi Cui 5b79a43d4c fix(dev-infra): serialize lint after invariant staging 2026-07-28 00:36:05 +08:00
Tianyi Cui e71aa49a26 test(dev-infra): exercise replay diagnostics 2026-07-28 00:19:46 +08:00
Tianyi Cui 32645aaa29 fix(dev-infra): repair gate listing type 2026-07-28 00:17:09 +08:00
Tianyi Cui 4338b2725c fix(dev-infra): distinguish gate results from states 2026-07-28 00:13:52 +08:00
Tianyi Cui 6b19be2843 refactor(dev-infra): use Node gate argv parsing 2026-07-28 00:13:11 +08:00
Tianyi Cui 55d6ab5220 fix(dev-infra): harden gate runner execution 2026-07-28 00:12:16 +08:00
Tianyi Cui 3e6fbccffa refactor(dev-infra): trim gate plan surfaces 2026-07-27 23:58:27 +08:00
Tianyi Cui 3f27434f38 refactor(dev-infra): drop retained gate logs 2026-07-27 23:47:00 +08:00
Tianyi Cui 2e210c369b fix(dev-infra): pin replay log path identities 2026-07-27 22:54:58 +08:00
Tianyi Cui 4bb60b1069 feat(dev-infra): make gate plans inspectable and replayable 2026-07-27 21:27:42 +08:00
Tianyi Cui 37140bf823 docs(notes): archive low-value decision records 2026-07-26 23:06:00 +08:00
Tianyi Cui caaf4f8d18 fix(i18n): complete prompt v4 pipeline path 2026-07-23 22:41:53 +08:00
Tianyi Cui f38ae74b95 ci: rebalance paid runner gates 2026-07-23 16:13:33 +08:00
Tianyi Cui c79b34bda5 Revert "chore: run primary CI before push" 2026-07-23 14:02:58 +08:00
Tianyi Cui 00d5b69882 chore: run primary CI before push 2026-07-23 13:09:52 +08:00
imccyu 19e6f7d907 refactor(tsconfig): single root solution graph over host/client aggregates
Root tsconfig.json becomes a pure solution (files:[] + two references);
the former root host aggregate moves verbatim to tsconfig.host.json.
New tsconfig.base.client.json carries the shared client compiler shape
(jsx/DOM lib/types:[]), and tsconfig.client.json plus the 12
packages/client tsconfigs extend it instead of restating the trio.
tsconfig.build.json is deleted: the solution covers the full emit graph,
absorbing the command-goal typecheck/build drift.

Consumers migrate to the single graph: typecheck/build scripts and the
lefthook pre-push hook run bare `tsc -b` (pre-push now covers the client
side); the run-gates build gate needs typecheck so two concurrent tsc -b
runs cannot race the same tsbuildinfo; ts-project.ts and the standalone
doc-typecheck mode seed tsconfig.host.json explicitly (never the root
solution — flattening host+client into one program collides the cordis
Context merges); verify-cordis-config BFS seeds the root solution alone.

Per missions/tsconfig-single-graph-migration.md §2–§3.
2026-07-23 03:59:05 +08:00
Tianyi Cui a9a47452de Merge latest master into check-all recovery 2026-07-22 20:57:39 +08:00
Tianyi Cui e9d3821578 Merge PR #500 into CI optimization 2026-07-22 18:31:28 +08:00
Tianyi Cui fe273bd9dd refactor: name the all-gates mode check-all 2026-07-22 18:27:31 +08:00
Tianyi Cui 197cae8bdd fix: expose the manual gate set without changing hooks 2026-07-22 18:01:54 +08:00
Tianyi Cui 6d054fd31b Merge PR #500 head into all-gates recovery
# Conflicts:
#	package.json
#	scripts/run-gates.ts
2026-07-22 17:56:29 +08:00
Tianyi Cui 41609c4ce4 ci: consolidate primary checks on one larger runner 2026-07-22 17:53:01 +08:00
Tianyi Cui 2405570ac8 chore: restore opt-in all-gates command 2026-07-22 17:42:23 +08:00
imccyu 7c8baee14f ci: gates add manual-push 2026-07-22 17:41:08 +08:00
Tianyi Cui 319005d56b Merge latest origin/master into worktree/ci-under-minute 2026-07-22 17:20:09 +08:00
Tianyi Cui 8739abdbfe Merge origin/master into worktree/ci-under-minute 2026-07-22 17:15:46 +08:00
Tianyi Cui 31c0589439 chore: keep local git hooks fast 2026-07-22 16:37:20 +08:00
Tianyi Cui 9d81078f2f ci: split primary cold-path budget 2026-07-22 16:10:52 +08:00
Tianyi Cui 0f57eafc36 ci: collapse cold setup waves 2026-07-22 15:44:11 +08:00
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 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 c0831f0e99 Merge origin/master into worktree/ci-under-minute 2026-07-21 20:40:58 +08:00
Tianyi Cui 5acd0c6305 Merge commit 'refs/codex/unblock/master-current' into HEAD
# Conflicts:
#	package.json
2026-07-21 20:31:42 +08:00
Tianyi Cui f1202d0dd8 ci: enforce bounded build lanes 2026-07-21 20:15:09 +08:00
Chinesezjc 6c34d69c51 Merge remote-tracking branch 'origin/master' into chore/doc-sync-single-pass
# Conflicts:
#	docs/development.i18n.yaml
#	package.json
2026-07-21 11:29:49 +08:00
Chinesezjc 6fc7dd4c02 chore(gates): route doc-sync through the run-gates scheduler
pnpm run doc-sync was a serial &&-chain of 24 pnpm run subcommands; the
24 script bodies finish in ~34s while the chain takes ~3min, all wrapper
overhead. Add a doc-sync mode to scripts/run-gates.ts expanding to
docSyncLeafGates() (concurrency capped at 4 like pre-push: several doc
gates each build a full ts.Program) and point the package script at it,
making the leaf list the single source of truth for the member set.

Consolidating the two lists surfaced drift: verify-cordis-api joined the
package.json chain with the runtime API catalog but was never added to
docSyncLeafGates, so CI and pre-push never gated that catalog's
freshness. Add the missing leaf.
2026-07-21 11:07:50 +08:00
Tianyi Cui 0c08e34a4a fix(invariants): harden runtime contracts and gates 2026-07-21 00:25:38 +08:00
Tianyi Cui 7345a68845 Merge latest invariant service seam
# Conflicts:
#	docs/module-graph.md
#	package.json
#	packages/examples/tui-demo/package.json
#	packages/examples/tui-demo/src/invariant.ts
#	packages/ui/stdio/package.json
#	packages/ui/stdio/tests/stdio.spec.ts
#	packages/ui/stdio/tsconfig.json
#	pnpm-lock.yaml
2026-07-20 21:02:52 +08:00
Tianyi Cui e5ac87454b Merge remote-tracking branch 'origin/master' into codex/remove-stdio-agent
# Conflicts:
#	AGENTS.md
#	docs/config-catalog.md
#	examples/echo-agent/README.md
#	packages/examples/stdio-demo/README.md
#	packages/examples/stdio-demo/src/index.ts
#	packages/examples/stdio-demo/tests/built-bin.e2e.ts
#	packages/examples/stdio-demo/tests/stdio-agent.spec.ts
#	scripts/run-gates.ts
2026-07-20 20:20:21 +08:00
Tianyi Cui 5f806b96f0 Merge latest invariant service seam 2026-07-20 20:19:14 +08:00
Tianyi Cui 44ad2ef073 Remove the Echo agent 2026-07-20 20:16:41 +08:00