Compare commits

...
Author SHA1 Message Date
Yichen Jiang fb2c4b9e69 Merge pull request #3978 from deepseek-harness/worktree/release-dsh-0.1.5-rc.2
release(dsh): 0.1.5-rc.2
2026-09-10 21:50:19 +08:00
Yichen Jiang a305303422 release(dsh): 0.1.5-rc.2 2026-09-10 21:38:20 +08:00
Yichen Jiang 2107e4697e Merge pull request #3973 from deepseek-harness/worktree/release-0.1.5-backport-feedback-deliverables
feat(web): backport feedback and file refinements to 0.1.5
2026-09-10 21:09:45 +08:00
yixiangihsiangandLegGasai 060323d8e2 feat(web): backport feedback and file refinements to 0.1.5
Backport the selected changes from PR #3928 and PR #3902 onto dsh-v0.1.5-rc.1, retaining baseline session recordings and excluding newer master commits.

Refs #3927
Refs #3903

Co-authored-by: LegGasai <[email protected]>
2026-09-10 20:51:46 +08:00
imccyu 183f08e9c6 Merge pull request #3912 from deepseek-harness/worktree/release/dsh-0.1.5-rc.1
release: [email protected]
2026-09-10 09:36:48 +08:00
imccyu 1ef9c1fa9a release(dsh): 0.1.5-rc.1 2026-09-10 09:13:14 +08:00
imccyu ecc6f11cf1 Merge pull request #3824 from deepseek-harness/worktree/deepseek-flash-catalog
feat(llm): add V41 Flash alongside V4 models
2026-09-10 09:13:00 +08:00
Yichen Jiang 0729dbec66 feat(llm): restore V4 Flash Vision Exp catalog entry 2026-09-10 03:39:57 +08:00
Yichen Jiang 441385fe38 feat(llm): retain V4 models alongside V41 Flash 2026-09-10 03:39:57 +08:00
Yichen Jiang c98fe6ecdd test(web): pin the recorded model before scenario overlays 2026-09-10 03:39:57 +08:00
Yichen Jiang 719331ecb7 test: keep webhook smoke on the shipped model route 2026-09-10 03:39:56 +08:00
Yichen Jiang 61c5954372 test: pin model routes in webhook and Cordis fixtures 2026-09-10 03:39:56 +08:00
Yichen Jiang bc5fd3b8dc feat(llm): default Chat Completions to DeepSeek V41 Flash 2026-09-10 03:39:56 +08:00
imccyu 4cbaeb8d69 Merge pull request #3909 from deepseek-harness/fix/sidebar-preview-layout-polish
fix(client): refine sidebar previews, guide, and stats
2026-09-10 03:38:01 +08:00
imccyu 3435dbd690 fix(web): address sidebar and stats review feedback 2026-09-10 03:20:55 +08:00
imccyu 57da0906f3 Merge remote-tracking branch 'refs/remotes/origin/pr-3910' into fix/sidebar-preview-layout-polish 2026-09-10 02:04:17 +08:00
imccyu ded26f225d chore(client): refresh slot catalog 2026-09-10 01:57:14 +08:00
imccyu 19b3c4c34b fix(client): keep preview scrollports current 2026-09-10 01:51:21 +08:00
Yif 53d5c9386e fix(sidebar): pin the guide hero to the pure-gray ramp
The label-dimmed alias rides the bluish neutral ramp, whose cast shows
at the 56px compass; the hero now takes neutral-200 (light) and
neutral-700 (dark) from the pure-gray static ramp.
2026-09-10 01:32:45 +08:00
Yif 1c044f5140 feat(sidebar): refine guide start page and quiet stat pill noise
The guide tab gains a compass hero, per-entry descriptions (shown while
at most four entries are listed), and a quieter cube placeholder for
entries that registered no glyph; the files entry registers its
description and folder glyph. Bundled stat fixes: the session usage
dialog drops the zero cache-write row, and the turn-time pill renders as
plain text when its dialog would only repeat the pill's own duration.
2026-09-10 01:23:24 +08:00
imccyu 284ab15519 fix(client): refine sidebar document previews 2026-09-10 01:04:55 +08:00
imccyu b2e3b2a012 Merge pull request #3893 from deepseek-harness/worktree/release/dsh-0.1.5-alpha.2
release: [email protected]
2026-09-09 22:13:03 +08:00
imccyu dd393c1820 release(dsh): 0.1.5-alpha.2 2026-09-09 22:02:09 +08:00
Tianyi Cui 7588e1ea11 Merge pull request #3901 from deepseek-harness/revert-3710-feat/mermaid-preview
Revert "feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences"
2026-09-09 22:01:43 +08:00
Tianyi Cui 58956c1a8a Revert "feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences" 2026-09-09 22:01:10 +08:00
Yudong Han 83253e0d16 Merge pull request #3710 from deepseek-harness/feat/mermaid-preview
feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences
2026-09-09 20:24:43 +08:00
imccyu 9d83e3e534 Merge pull request #3890 from deepseek-harness/feat/sidebar-image-preview
feat(sidebar): preview image files
2026-09-09 20:17:43 +08:00
imccyu 8870a13aa9 feat(sidebar): preview image files 2026-09-09 20:01:24 +08:00
Tianyi Cui f05e0fb6b9 Merge pull request #3878 from deepseek-harness/fix/ci-cancel-superseded
fix(ci): cancel superseded PR and master validation
2026-09-09 20:00:13 +08:00
Yudong 7aa73877e6 Merge origin/master into feat/mermaid-preview 2026-09-09 19:53:42 +08:00
Yudong 516bfd5f30 test(web): cover preview import recovery and color schemes 2026-09-09 19:49:56 +08:00
imccyu 16953f2b8e Merge pull request #3884 from deepseek-harness/feat/public-experimental-agent-team
release: publish experimental Agent Teams packages
2026-09-09 19:21:51 +08:00
imccyu fbfc8123e3 Merge pull request #3871 from deepseek-harness/worktree-fixworkerflock
fix(webworker): restore session and workspace writes
2026-09-09 19:21:07 +08:00
imccyu 63187de80f release: publish experimental Agent Teams packages 2026-09-09 18:54:14 +08:00
imccyu 9b308c9568 Merge pull request #3819 from deepseek-harness/feat/artifact-file-actions
feat(web): unify file icons, delivery actions, and sidebar interactions
2026-09-09 18:51:34 +08:00
Ruilin Geng 2b521b31f1 Merge pull request #3846 from deepseek-harness/fix/mcp-pagination-cycles
fix(mcp): reject repeated tool discovery cursors
2026-09-09 18:46:44 +08:00
creatixchu 0b3248e67d test(web): stabilize delivered-file snapshots across CI hosts 2026-09-09 18:21:45 +08:00
imccyu d7ecdcf02c fix(lint): parenthesize file handle callback 2026-09-09 18:21:17 +08:00
imccyu 60a3d0fbc2 fix(webworker): support file handle chmod 2026-09-09 18:21:17 +08:00
imccyu 950474605f docs(webworker): record file handle compatibility 2026-09-09 18:21:16 +08:00
imccyu a7bd71e024 fix(webworker): preserve bigint file handle identity 2026-09-09 18:21:16 +08:00
imccyu 0a9c774617 docs(webworker): document bigint handle identity 2026-09-09 18:21:16 +08:00
Tianyi Cui 3c4c6c3d7b fix(ci): cancel superseded PR and master validation 2026-09-09 18:20:01 +08:00
gengruilin 556857bcd2 Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 18:15:36 +08:00
creatixchu b53fed39d7 Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 18:07:26 +08:00
creatixchu b9587ada12 fix(web): open delivered files using the viewed session scope 2026-09-09 18:07:16 +08:00
Tianyi Cui 8803287f71 Merge pull request #3853 from deepseek-harness/fix/3835-tool-guidance-restrictions
fix: respect scoped tools in filesystem and web guidance
2026-09-09 18:04:11 +08:00
yudshj 4e0a405a9b fix(web): size diagram previews to image content 2026-09-09 18:01:36 +08:00
creatixchu 2ab73152ae Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 18:01:07 +08:00
creatixchu 7f69a3ec37 fix(web): complete shared file icon consumers and browser checks 2026-09-09 18:01:04 +08:00
creatixchu 43bf1d3f93 Merge remote-tracking branch 'origin/master' into worktree/pr-3819-release-sync 2026-09-09 17:56:14 +08:00
creatixchu 454caf0280 fix(web): reject empty sidebar splits and clarify page targeting 2026-09-09 17:56:11 +08:00
imccyu bd60582403 Merge pull request #3859 from deepseek-harness/worktree-sidebarsubagent
fix(workspace-files): support subagent session roots
2026-09-09 17:55:17 +08:00
creatixchu 9961eedec8 fix(web): preserve office file icons and lazy sidebar replay 2026-09-09 17:48:47 +08:00
Tianyi Cui cd95dda1bd Merge pull request #3866 from deepseek-harness/docs/session-format-authority
docs(session): centralize format status and timeless guidance
2026-09-09 17:46:17 +08:00
HYD@OVERTON 9e050260e4 feat(web): adapt diagram previews to application theme 2026-09-09 17:39:04 +08:00
yudshj fb84576ea7 refactor(web): unify markdown preview components and notes 2026-09-09 17:39:04 +08:00
yudshj a8f9d81f3a feat(client): preview Graphviz, SVG, and HTML Markdown fences 2026-09-09 17:39:04 +08:00
fz 4fabbd39c5 test(web): scope Mermaid snapshots to diagram content 2026-09-09 17:39:04 +08:00
fz 0bfd594875 refactor(ui): use tagged Mermaid preview results 2026-09-09 17:39:04 +08:00
fz 220103670a fix(ui): retain Mermaid previews and support hybrid touch controls 2026-09-09 17:39:04 +08:00
fz fc0c885287 style(ui): simplify Mermaid preview controls 2026-09-09 17:39:04 +08:00
fz ee35e40bc8 feat(ui): preview Mermaid diagrams in Chat code blocks 2026-09-09 17:39:04 +08:00
creatixchu 7c9b29563d Merge branch 'worktree/pr-3872-release-sync' into worktree/pr-3819-release-sync 2026-09-09 17:34:20 +08:00
creatixchu c6b3900d2a Merge remote-tracking branch 'origin/master' into worktree/pr-3872-release-sync 2026-09-09 17:33:47 +08:00
imccyu d7dcc5f5af test(web): update sidebar preview expectations 2026-09-09 17:29:38 +08:00
imccyu 177eacbe8b docs(workspace-files): clarify session scope behavior 2026-09-09 17:29:38 +08:00
imccyu c5432b94f9 chore: satisfy workspace files CI gates 2026-09-09 17:29:38 +08:00
imccyu 7214a97723 fix(workspace-files): resolve subagent session roots 2026-09-09 17:29:38 +08:00
Yif 3b4122ac16 feat(client): polish sidebar and file preview interactions
Seed sidebar default pages lazily on expansion, scope page-tab dedupe
to the target pane, let a sole tab split its own pane with a factory
backfill, close menus when focus enters a sandboxed iframe, and pin the
code preview copy banner while unifying its background with the pane.
2026-09-09 17:27:37 +08:00
creatixchu 1d55cab9e6 fix(web): use shared file type icons in delivery cards 2026-09-09 17:23:07 +08:00
creatixchu 644f6abd7c Merge branch 'worktree/pr-3858-release-sync' into worktree/pr-3819-release-sync
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
2026-09-09 17:20:37 +08:00
creatixchu a7b5c8a043 Merge remote-tracking branch 'origin/master' into worktree/pr-3858-release-sync 2026-09-09 17:20:01 +08:00
creatixchu f5804826a8 Merge remote-tracking branch 'origin/master' into codex/pr-3819 2026-09-09 17:13:08 +08:00
Tianyi Cui 8a41f7a8e1 docs(session): clarify release authority review findings 2026-09-09 17:12:06 +08:00
Tianyi Cui 56c4c3e47c docs(session): centralize format status and timeless guidance 2026-09-09 17:06:03 +08:00
Tianyi Cui bafe887d6d Merge pull request #3851 from deepseek-harness/docs/released-v3-wording
docs(session): correct released V3 compatibility guidance
2026-09-09 17:05:14 +08:00
creatixchu dfda1d6aaf fix(web): ship protocol runtime dependency for delivered file actions 2026-09-09 17:02:24 +08:00
gengruilin 86c61e24e9 Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 16:57:25 +08:00
creatixchu 99bffa7f9a fix(web): update delivery card snapshot and remove unused button segments 2026-09-09 16:52:04 +08:00
creatixchu b443c4d246 fix(present): resolve file services in live agent scope and refresh snapshots 2026-09-09 16:48:39 +08:00
creatixchu 7e4d9edc13 Merge remote-tracking branch 'origin/master' into codex/pr-3819 2026-09-09 16:45:05 +08:00
creatixchu 00bfdfbce6 fix(present): follow session filesystem access for deliverables 2026-09-09 16:44:51 +08:00
yixiangihsiang 1eee75b424 fix(client): satisfy icon validation gates 2026-09-09 16:41:15 +08:00
yixiangihsiang 4ee9e055d5 feat(client): add shared file type icons 2026-09-09 16:41:15 +08:00
Turtle 6d99a8a53a Merge pull request #3794 from deepseek-harness/turtle/issue-3761-plugin-instance-label
fix(web): distinguish same-package plugin instances
2026-09-09 16:29:54 +08:00
Tianyi Cui a5fc275a56 docs(session): address scoped review clarifications 2026-09-09 16:26:49 +08:00
Turtle d6a699be19 Merge pull request #3845 from deepseek-harness/turtle/keep-blocked-approval-pending
Keep blocked weighted approvals pending
2026-09-09 16:20:11 +08:00
creatixchu 74bf7aaa2f fix(web): preserve artifact actions across reconnects and keyboard use 2026-09-09 16:18:24 +08:00
fz aed212657a docs: clarify scoped guidance and file observation policy 2026-09-09 16:13:09 +08:00
Turtle e9f1725b11 docs: record pending weighted approval blockers 2026-09-09 15:58:21 +08:00
turtle1999 0d44848ba6 Rename weighted approval publisher job 2026-09-09 15:58:21 +08:00
turtle1999 8eede0f60d Keep blocked approvals pending 2026-09-09 15:58:21 +08:00
yx.zhang 057b4879cf feat(web): align presented file cards with design 2026-09-09 15:53:44 +08:00
fz 4029451fa7 test: refresh guidance for the fetch-only composition 2026-09-09 15:50:06 +08:00
fz 9d6c964985 fix: respect scoped tools in filesystem and web guidance 2026-09-09 15:45:54 +08:00
Turtle 2e2489b888 fix(web): trim composition marker from plugin subtitles 2026-09-09 15:41:02 +08:00
Tianyi Cui 7b6b8a2baa docs(session): correct released V3 compatibility guidance 2026-09-09 15:32:55 +08:00
Turtle 2b631c0646 test(web): update plugin settings golden order 2026-09-09 15:27:18 +08:00
yudshj c83f02ad81 fix(web): defer desktop metadata until delivery cards appear 2026-09-09 15:26:34 +08:00
yudshj 5b671d7df3 fix(web): show artifact paths relative to the workspace 2026-09-09 15:26:34 +08:00
yudshj b27d861741 docs: refresh native file action catalog references 2026-09-09 15:26:34 +08:00
yudshj 4158a96e14 feat(web): add native file actions to artifact cards 2026-09-09 15:26:28 +08:00
imccyu da042b78ff Merge pull request #3765 from deepseek-harness/worktree/issue-3515-feedback-dialog
反馈弹窗:点踩与 /feedback 共用一个带分类的弹窗,提交后出 toast
2026-09-09 15:24:24 +08:00
Turtle 1349af8e97 fix(web): give plugin identities a full row 2026-09-09 14:57:45 +08:00
creatixchu 0b5fca5c68 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog
# Conflicts:
#	apps/web/tests/message-feedback-layout.e2e.ts
2026-09-09 14:56:31 +08:00
Yudong Han ba5ce5700c Merge pull request #3832 from deepseek-harness/fix/file-delivery-present
fix(deliverables): distinguish file changes and require explicit delivery
2026-09-09 14:53:17 +08:00
gengruilin 96ac11885e Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 14:40:06 +08:00
Turtle f42fddad34 Merge pull request #3840 from deepseek-harness/turtle/remove-weighted-approval-cyborg-text
Remove cyborg wording from weighted approval
2026-09-09 14:35:50 +08:00
Tianyi Cui 456162410b Merge pull request #3780 from deepseek-harness/fix/master-ci-3661
test(ci): 固定异步完成观察并收紧导入豁免
2026-09-09 14:35:17 +08:00
CreatixChu 4f0adbc99a Merge pull request #3839 from deepseek-harness/fix/3838-composer-placeholder
fix(web): 输入空白字符后隐藏 Composer 占位提示
2026-09-09 14:34:43 +08:00
Huanqi Cao cc5a7697e7 Merge pull request #3698 from deepseek-harness/feat/picker-alt-foreground
fix(picker): foreground-activate the Windows native folder dialog via a synthesized Alt press
2026-09-09 14:28:23 +08:00
turtle1999 1eaba2809b Remove cyborg wording from weighted approval 2026-09-09 14:28:10 +08:00
creatixchu 6c4a2fb294 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog
# Conflicts:
#	packages/client/ui-model-selection/tests/browser-plugin.client.spec.ts
2026-09-09 14:27:15 +08:00
creatixchu 224f75dc63 test(web): strengthen composer placeholder regression evidence 2026-09-09 14:15:25 +08:00
yx.zhang 30ea609363 Merge remote-tracking branch 'origin/pr-3765-head' into pr-3765 2026-09-09 14:06:27 +08:00
creatixchu a6ee97ebe1 Merge remote-tracking branch 'origin/master' into fix/3838-composer-placeholder 2026-09-09 14:04:23 +08:00
creatixchu 0f1164cdee fix(web): hide composer placeholder for whitespace drafts 2026-09-09 13:56:54 +08:00
yx.zhang 4b3cfcfaf3 style(feedback): refine feedback dialog disclosure and layout 2026-09-09 13:56:53 +08:00
Turtle cad50c2504 Merge pull request #3792 from deepseek-harness/turtle/issue-3762-provider-base-url-validation
fix(web): validate custom provider base URLs
2026-09-09 13:54:48 +08:00
yudshj 9708c4bb42 test(web): scope SVG delivery snapshot to the chat transcript 2026-09-09 13:41:56 +08:00
yudshj 152e0f42ca fix(web): await settled browser state and shorten file-change label 2026-09-09 13:41:56 +08:00
yudshj 7a0afea27f fix(deliverables): distinguish file changes and require explicit delivery 2026-09-09 13:41:56 +08:00
Turtle fac33d7ba7 Merge pull request #3791 from deepseek-harness/turtle/issue-3760-zh-display-model-copy
fix(web): localize Chinese display and model copy
2026-09-09 13:36:09 +08:00
gengruilin 8053f3d450 Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 13:19:42 +08:00
Tianyi Cui 6bc836c0c0 docs(ci): distinguish fixture controls from completion policy 2026-09-09 13:18:09 +08:00
Tianyi Cui 1b56cf6013 test(ci): retain useful regression controls after master rebase 2026-09-09 13:18:09 +08:00
Tianyi Cui da1df501b8 test(runtime): isolate busy-meter decisions from worker startup 2026-09-09 13:18:09 +08:00
Tianyi Cui 43d00069a9 test(web): await restoration before workspace actions 2026-09-09 13:18:09 +08:00
Tianyi Cui bc55f10a46 test(web): wait for admitted queue before steering shortcut 2026-09-09 13:18:09 +08:00
Tianyi Cui d85bdd80c1 test(ci): observe command readiness and transport settlement 2026-09-09 13:18:08 +08:00
Tianyi Cui c93bfee16e test(web): drain retained request handlers before teardown 2026-09-09 13:18:08 +08:00
Tianyi Cui e7feedab5e test(web): await durable UI and responsive layout publication 2026-09-09 13:18:08 +08:00
Tianyi Cui d38391d629 test(web): release timed-out barriers and await frame animations 2026-09-09 13:18:08 +08:00
Tianyi Cui 94a2b0a248 test(ci): await details transitions and report benchmark runtime 2026-09-09 13:18:08 +08:00
Tianyi Cui 5b0d65fd72 test(ci): observe asynchronous completion and settled layout 2026-09-09 13:18:08 +08:00
Huanqi Cao 2059bdf78e Merge remote-tracking branch 'origin/master' into feat/picker-alt-foreground 2026-09-09 13:17:20 +08:00
Turtle ebd7e82075 Merge pull request #3834 from deepseek-harness/turtle/remove-automatic-review-requests
ci: remove automatic review requests
2026-09-09 13:13:25 +08:00
Turtle 939222a4ad fix(web): normalize custom provider base URLs 2026-09-09 13:12:43 +08:00
Turtle d6ed693f23 ci: remove automatic review requests 2026-09-09 12:56:06 +08:00
imccyu 88dfd72537 Merge pull request #3807 from deepseek-harness/sidebar-ui-polish-main
feat(web): right sidebar UI polish
2026-09-09 12:49:57 +08:00
creatixchu 0199633269 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog 2026-09-09 12:45:32 +08:00
creatixchu 700e8df91a test(feedback): cover the seed-failure and unmount paths of the Dislike control 2026-09-09 12:45:31 +08:00
imccyu 2f2831f033 test(web): align sidebar interaction expectations 2026-09-09 12:15:00 +08:00
imccyu ff3ccb4d7c test(web): use supported sidebar visibility assertion 2026-09-09 12:15:00 +08:00
imccyu 3481d4043e fix(client): align sidebar checks after rebase 2026-09-09 12:15:00 +08:00
Yif d0a1ab8723 chore(client): regenerate slot catalog after master merge 2026-09-09 12:15:00 +08:00
Yif c73dcecb96 fix(textpreview): say a stat-and-read failure once
A file whose stat and first page both fail — outside the workspace, gone —
showed the same line twice: the metadata bar above an identical centred body
failure. The bar now stands only over pages already loaded, and the centred
retry runs the full reload so one press clears both halves.
2026-09-09 12:15:00 +08:00
Yif 284758cbc3 test(web): refresh goldens for the sidebar aria renames
The expand/collapse and wrap toggles' accessible names diverged from their
tooltips, and the replay harness now normalizes clientTimeZone in recorded
sessions; every golden holding the old names or the literal zone refreshes.
2026-09-09 12:15:00 +08:00
Yif c76e371874 fix(sidebar): address review feedback on aria names, touch hits, and fullscreen close
- Split toggle aria-labels from their tooltips: the sidebar expand/collapse
  buttons announce "Open/Collapse right sidebar" so the two sidebars stay
  distinguishable, and the wrap toggle keeps an invariant "Line wrap" name
  beside aria-pressed while the tooltip keeps the action wording.
- A hidden tab close also takes no pointer events, so a touch press on the
  chip's trailing edge activates the tab instead of closing it; e2e closes
  hover the chip first, the way a reader would.
- Closing the last docked tab in fullscreen hands the mode back to push, so
  the next expand does not give the whole window to the start page.
- The drop scrim mixes from bg-base, not bg-layer-2, which dark mode binds
  to a lighter bluish step than the column beneath it.
- Document the menuitem probe in TabMenuExtras and the strip fade's known
  gap; match the open-in-app split-button comment to the 28px control row.
2026-09-09 12:14:59 +08:00
Yif 814f447b8f fix(dockkit): move ui-primitives to devDependencies and hoist zone glyph paths past the i18n gate 2026-09-09 12:14:59 +08:00
Yif 5e44fc79d3 test(web): refresh header and file-preview goldens for renamed controls 2026-09-09 12:14:59 +08:00
Yif 7a032b6366 test(web): disambiguate the left sidebar toggle from the right expand control 2026-09-09 12:14:58 +08:00
Yif 237618ca33 test(dockkit): cover the bottom drop-zone glyph 2026-09-09 12:14:58 +08:00
Yif e94241f601 feat(web): move the session-log control into the header more-actions menu 2026-09-09 12:14:58 +08:00
Yif 5ee343f735 feat(sidebar): live tab titles with file-type icons and disambiguated paths 2026-09-09 12:14:58 +08:00
Yif f4c1e31ba8 feat(sidebar): last-tab close rules and collapsed expand button
The lone guide tab withholds its close and menu, any other lone tab closes
together with the column, and the expand button renders only while collapsed
so the corner seat costs the header nothing.
2026-09-09 12:14:58 +08:00
Yif 838dbbe0d0 feat(dockkit): refine strip and chip presentation, close policy, and room reading
Chip capsules with scroll fades and live titles, drop-zone hint cards, the
canCloseTab control policy with the quiet lone chip and self-dismissing empty
menu, and a room reading that stays independent of hidden split controls.
2026-09-09 12:14:58 +08:00
Yif 69a13cef6d feat(primitives): add file-type icon set and shared link icon 2026-09-09 12:14:57 +08:00
Turtle bc4fde06ac fix(web): validate custom provider base URLs 2026-09-09 12:04:40 +08:00
gengruilin 189ca97ec9 Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 12:04:24 +08:00
Tianyi Cui 08f646da36 Merge pull request #3812 from deepseek-harness/worktree/ci-reliability-master-followup-20260908
test(ci): stabilize asynchronous fixtures and benchmark budgets
2026-09-09 11:52:54 +08:00
gengruilin 454825ca38 Merge origin/master into fix/mcp-pagination-cycles 2026-09-09 11:49:04 +08:00
creatixchu 4b88085c2a style(feedback): refine dialog proportions 2026-09-09 11:41:24 +08:00
Tianyi Cui 2c0596c1ba docs(bench): clarify reviewed request-history limit 2026-09-09 11:29:05 +08:00
Tianyi Cui ba4b8fddeb test(bench): calibrate hosted cold Agent resume limit 2026-09-09 11:26:48 +08:00
Tianyi Cui 2567d35cdf docs(bench): synchronize request-history limit 2026-09-09 11:26:48 +08:00
Tianyi Cui 843029448a test(code-runtime): allow measured worker initialization time 2026-09-09 11:26:48 +08:00
Tianyi Cui d1b1488ed3 test(session): await durable live writes with owned teardown 2026-09-09 11:26:48 +08:00
Tianyi Cui bd24f8a17f test(app-boot): control user-patch HMR event delivery 2026-09-09 11:26:48 +08:00
Tianyi Cui dc14f5e4f9 test(web): await resized details geometry through its transition 2026-09-09 11:26:48 +08:00
Tianyi Cui 48007d76f2 test(bench): allow measured request-history runner variation 2026-09-09 11:26:48 +08:00
Tianyi Cui fd5d68586f test(web): wait for model selection menu closure 2026-09-09 11:26:48 +08:00
Turtle 9606b69545 Merge origin/master into turtle/issue-3760-zh-display-model-copy 2026-09-09 11:02:57 +08:00
Turtle 43846e7032 Merge pull request #3783 from deepseek-harness/turtle/weighted-approval
feat: enforce weighted pull request approvals
2026-09-09 11:00:39 +08:00
Turtle 9da63ca94d Merge pull request #3789 from deepseek-harness/turtle/issue-3757-settings-accessible-name
fix(client): name collapsed Settings trigger
2026-09-09 10:56:30 +08:00
creatixchu 6207453d36 Merge remote-tracking branch 'origin/master' into worktree/issue-3515-feedback-dialog 2026-09-09 10:44:25 +08:00
creatixchu d692289533 style(feedback): compact the dialog to a 540px card with lighter chips and a grown detail box 2026-09-09 10:42:06 +08:00
imccyu c57fb6f7ef Merge pull request #3798 from deepseek-harness/worktree-sidebarfeat
feat(client): document previews — HTML, PDF, Markdown and code
2026-09-09 10:41:39 +08:00
creatixchu 1094431de9 docs(feedback): document the FeedbackSurface fields for the export-jsdoc gate 2026-09-09 10:33:09 +08:00
creatixchu a25e5fd8a9 test(sdk): refresh the feedback expectations on the V3 base and restore the frozen v2 generation 2026-09-09 10:27:15 +08:00
creatixchu 3e53a08f36 fix(feedback): keep the category tuple out of types.ts, retire the toast with its entry, and answer the review 2026-09-09 10:27:12 +08:00
creatixchu f2f9700de2 feat(feedback): open one feedback dialog from /feedback and Dislike, with categories and a toast
Dislike and a bare /feedback open the Session's feedback dialog, which
collects one of seven fixed categories and an optional description and
records through the messageFeedback put or the new sessionFeedback
Remote; Like records at once. A recorded rating shows the filled glyph
and every submission is acknowledged by a toast. feedback/record and
MessageFeedbackItem carry the optional category; the note popover, its
layout scenario, and the clearNote/clear verbs are removed. ui-commands
gains the action command kind the /feedback decoration runs as.

Closes #3515
2026-09-09 10:20:24 +08:00
imccyu 64560eaff1 fix(client): remove stale preview contracts 2026-09-09 10:12:46 +08:00
imccyu 93b30b9765 fix(client): narrow document preview contracts 2026-09-09 10:12:46 +08:00
imccyu be58ae0577 test(web): await sidebar collapse before snapshots 2026-09-09 10:12:46 +08:00
imccyu 4d07fbcb85 fix(client): address document preview review feedback 2026-09-09 10:12:46 +08:00
imccyu ce28b0672f fix(client): simplify PDF observer cleanup 2026-09-09 10:12:46 +08:00
imccyu 39872bafe6 docs(client): record sidebar guide translation 2026-09-09 10:12:45 +08:00
imccyu c78fdb583a fix(ci): refresh document preview metadata 2026-09-09 10:12:45 +08:00
imccyu 693621dcad fix(client): streamline continuous PDF previews 2026-09-09 10:12:41 +08:00
imccyu dcfd8c299d refactor(client): rename document preview package 2026-09-09 10:12:40 +08:00
imccyu 5c283d27e2 fix(client): allow outside previews and streamline document readers 2026-09-09 10:12:39 +08:00
imccyu 4321766ead feat(client): add extensible document previews and sidebar defaults 2026-09-09 10:12:38 +08:00
Yichen Jiang e9b3f80f0b Merge pull request #3724 from deepseek-harness/worktree/pi-ai-settings-recovery
fix(llm-pi-ai): keep catalog-invalid settings repairable
2026-09-09 06:37:54 +08:00
Yichen Jiang d80891921b Merge remote-tracking branch 'origin/master' into worktree/pi-ai-settings-recovery
# Conflicts:
#	packages/llm/llm/README.i18n.yaml
#	packages/llm/llm/README.md
#	packages/llm/llm/README.zh.md
2026-09-09 06:18:13 +08:00
imccyu ab904f4b6b Merge pull request #3813 from deepseek-harness/worktree-nodeaddworkflow
ci(native): consolidate platform compatibility jobs
2026-09-09 02:45:46 +08:00
imccyu 063165a800 ci(native): consolidate platform compatibility jobs 2026-09-09 02:31:43 +08:00
fz 0ba6c25807 Merge pull request #3510 from deepseek-harness/feat/remove-str-replace-editor-from-minimal
feat(minimal): make editor opt-in and align bash output
2026-09-09 02:10:26 +08:00
fz 452fe6de55 Merge remote-tracking branch 'origin/master' into feat/remove-str-replace-editor-from-minimal 2026-09-09 01:49:09 +08:00
fz 887c1efd7a ci(npm): expose failed install HTTP diagnostics 2026-09-09 01:48:54 +08:00
fz 0f6e7442d7 perf(session): bundle migration verifier dependencies 2026-09-09 01:48:27 +08:00
Yudong Han 6635cddaa4 Merge pull request #3569 from deepseek-harness/fs/stream-bytes
feat(web): declare workspace deliveries and open source files
2026-09-09 01:33:20 +08:00
fz 40c9766a8d Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-09 01:22:09 +08:00
Yudong 228f3aef83 test(ci): stabilize completion waits and Session fixtures 2026-09-09 01:15:31 +08:00
yudshj 72549e91a0 test(present): pass the event to delivery matcher 2026-09-09 01:15:31 +08:00
yudshj cd2b9ca04a refactor(present): restore existing conversation coordinate handling 2026-09-09 01:15:31 +08:00
yudshj 207dce0bee docs(present): refresh module graph after removing attachments 2026-09-09 01:15:31 +08:00
yudshj c9038b4b31 refactor(present): declare and open workspace source files 2026-09-09 01:15:31 +08:00
yudshj 387e437af4 fix(web): use the preview-compatible stream promises entry 2026-09-09 01:15:31 +08:00
yudshj 6d8a400d79 fix(web): open delivered snapshots in the default application 2026-09-09 01:15:31 +08:00
yudshj 37d27fcdf9 feat(web): present immutable file deliveries with download cards 2026-09-09 01:15:31 +08:00
imccyu 4d831f2d14 Merge pull request #3771 from deepseek-harness/worktree-fixreactpeer
fix(web): move client dependencies to devDependencies
2026-09-09 01:15:27 +08:00
imccyu bfe82d4c2d Merge pull request #3784 from deepseek-harness/worktree-leftsideslot
feat(web): add panellist to left-sidebar
2026-09-09 00:59:11 +08:00
Dudu-0223 a4176ef851 Merge pull request #3674 from deepseek-harness/feat/parent-subagent-catalog-foundation
feat(subagent): record and observe parent-owned child catalogs
2026-09-09 00:37:47 +08:00
imccyu f39a37a523 fix(client): keep browser dependencies out of production installs 2026-09-09 00:30:37 +08:00
imccyu f3d7ef2b95 docs(client): define browser third-party build inputs 2026-09-09 00:30:36 +08:00
imccyu 58144ccf78 test(web): await command and settings readiness before assertions 2026-09-09 00:26:41 +08:00
imccyu e807447288 fix(client): re-read navigation cancellation after preparation 2026-09-09 00:26:41 +08:00
imccyu 713b1aacad docs(client): synchronize panel navigation APIs and contracts 2026-09-09 00:26:40 +08:00
imccyu 385f651c5f fix(test): release default slot runtime sources symmetrically 2026-09-09 00:26:36 +08:00
imccyu 8715fd2a87 fix(client): preserve the latest panel and session navigation 2026-09-09 00:26:36 +08:00
imccyu bc840b483e feat(client): simplify and exercise sidebar panel entries 2026-09-09 00:26:35 +08:00
imccyu 092d16d7ab style(client): satisfy panel lint rules 2026-09-09 00:26:35 +08:00
imccyu 9736136d95 fix(client): leave global panel entries empty by default 2026-09-09 00:26:34 +08:00
imccyu fbbcbf33fe docs(client): document global main-panel extension points 2026-09-09 00:26:34 +08:00
imccyu f95e781f3d test(client): migrate panel navigation fixtures and snapshots 2026-09-09 00:26:29 +08:00
imccyu fe460f7fd1 test(client): support panel selection in slot runtime 2026-09-09 00:26:29 +08:00
imccyu 581803bf57 feat(client): add global sidebar panels 2026-09-09 00:26:28 +08:00
fz b42b5b5e94 fix(ci): align minimal prompt-history expectations with shell-only turns 2026-09-08 23:57:15 +08:00
gengruilin 594305ce19 fix(mcp): reject repeated tool discovery cursors
Refs: https://github.com/deepseek-ai/deepseek-harness/discussions/3660
2026-09-08 23:33:23 +08:00
fz 25d675fcf3 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-08 23:31:51 +08:00
Dudu-0223 4977ccc965 chore(chunked-list): follow master release version 2026-09-08 23:29:58 +08:00
fz 3c05dcb537 fix(ci): refresh persistent bash fixtures and synchronize LSP lifecycle test 2026-09-08 23:29:03 +08:00
Dudu-0223 5ab91467e2 test(cli): include catalog facts in profile expectations 2026-09-08 23:28:50 +08:00
Dudu-0223 79dda6cf45 test(subagent): align catalog snapshots with Session V3 2026-09-08 23:28:50 +08:00
Dudu-0223 e2fa69f5e2 test(snapshot): bind sibling roles to catalog publication order 2026-09-08 23:28:50 +08:00
Dudu-0223 9f69a7fb16 refactor(subagent): extract persistent chunked list utility 2026-09-08 23:28:50 +08:00
Dudu-0223 661135fe29 fix(subagent): reject invalid catalogs and preserve snapshot event order 2026-09-08 23:28:50 +08:00
Dudu-0223 ba731d1c9e fix(subagent): handle rejected runs after catalog failure 2026-09-08 23:28:50 +08:00
Dudu-0223 867c47c415 docs: drop unrelated projection README whitespace changes 2026-09-08 23:28:50 +08:00
Dudu-0223 59623c8ff4 docs(subagent): refresh event declaration references 2026-09-08 23:28:50 +08:00
Dudu-0223 0274a6dd75 fix(subagent): preserve catalog augmentation in declarations 2026-09-08 23:28:50 +08:00
Dudu-0223 924282cbcd fix(subagent): retain catalog event types in host exports 2026-09-08 23:28:50 +08:00
Dudu-0223 532e712c7b refactor(subagent): expose catalog through existing projection views 2026-09-08 23:28:50 +08:00
Dudu-0223 3dcabbba44 refactor(session-query): return all projection states by default 2026-09-08 23:28:50 +08:00
Dudu-0223 e3cb6dd352 refactor(session): limit hydration views to all or none 2026-09-08 23:28:50 +08:00
Dudu-0223 80e34ce709 perf(subagent): list parent catalog in event order 2026-09-08 23:28:50 +08:00
Dudu-0223 99462aef98 fix(subagent): preserve catalog citations and skip unrequested views 2026-09-08 23:28:50 +08:00
Dudu-0223 399d7313c4 test(session): cover historical catalog comparison failures 2026-09-08 23:28:50 +08:00
Dudu-0223 2db4bdd31d feat(subagent): record and observe parent-owned child catalogs 2026-09-08 23:28:50 +08:00
imccyu 5dda764ed3 Merge pull request #3809 from deepseek-harness/worktree/release/dsh-0.1.5-alpha.1
release: [email protected]
2026-09-08 23:25:45 +08:00
fz 94ff82f57b Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-08 23:22:25 +08:00
imccyu 2faa751be9 release(dsh): 0.1.5-alpha.1 2026-09-08 23:06:34 +08:00
imccyu 96a66ba478 Merge pull request #3790 from deepseek-harness/worktree-ci-0908
fix(CI): update spec timeout and behavior
2026-09-08 23:04:59 +08:00
Tianyi Cui 7b1c989332 Merge pull request #3631 from deepseek-harness/release/session-log-v3
feat(session): 建立 V3 日志迁移协作基线与版本升级 cookbook
2026-09-08 23:03:39 +08:00
Tianyi Cui edcde102e9 Merge pull request #3808 from deepseek-harness/integrate/v3-master-e5f3-refresh
ci(session): sync latest master e5f3ccebbd with V3 content admission
2026-09-08 22:56:44 +08:00
Tianyi Cui 5ad38e5b94 Merge remote-tracking branch 'origin/master' into integrate/v3-master-refresh-345248 2026-09-08 22:44:51 +08:00
Tianyi Cui 6982a8f53c Merge remote-tracking branch 'origin/release/session-log-v3' into integrate/v3-master-refresh-345248 2026-09-08 22:44:49 +08:00
Tianyi Cui f7a4f0b95c Merge pull request #3805 from deepseek-harness/session-v3/content-admission-fix
fix(session): 补齐 V2→V3 所有内容入口的迁移审计
2026-09-08 22:41:35 +08:00
Tianyi Cui 5212603a4b fix(session): audit every historical content carrier before V3 migration 2026-09-08 22:38:04 +08:00
imccyu 2c21c7a03e ci: 1 2026-09-08 22:31:16 +08:00
imccyu 93a51e4dc2 Merge pull request #3804 from deepseek-harness/worktree/release-nativesystem-0.1.2
release(node-addon-system): 0.1.2
2026-09-08 22:25:46 +08:00
Tianyi Cui bb407e309d Merge master into session-log-v3 release
Merge 3ea52fc3e475a3e7c430812bde4209258416e57b into a0a61a8237f61344a01448a97954df603d8fff73. Retain the V2-to-V3 migration dependency alongside native system flock support, removing the replaced fs-ext dependency. Union the lockfile workspace importer entries; frozen installation validates the result without regeneration.

Preserve release publint async lane-signal cancellation, close ownership, and spawn-error regressions, satisfying the incoming CI budget intent. Keep canonical, prompt, preset, and latest migration regression behavior. Rename an arbitrary preset fixture value to custom-agent to avoid the inherited vendor-rescope false positive without changing test semantics.

Validation: frozen install; full build including Darwin addon; focused V3/persistence/prompt/publint and runtime tests; built migration, two-process lease, and loader smokes; native flock and package-matrix tests; touched dependency and CI owner tests; all hygiene leaves (vendor residue repaired and rechecked); doc-sync 34/34.
2026-09-08 22:21:18 +08:00
imccyu 9ddc35c26b release(node-addon-system): 0.1.2 2026-09-08 22:11:41 +08:00
Tianyi Cui 08f42810b9 Merge pull request #3781 from deepseek-harness/worktree/ci-reliability-master-20260908
test(ci): honor test budgets and clean up fixture processes
2026-09-08 22:08:50 +08:00
imccyu 9ea82286f2 Merge pull request #3708 from deepseek-harness/worktree-fixgyp
fix(native): use prebuilt flock over fs-ext
2026-09-08 22:08:03 +08:00
Tianyi Cui 11ec7cc52a Merge pull request #3799 from deepseek-harness/session-v3/migration-coverage
test(session): 补齐 V3 迁移组合回归并统一升级规格
2026-09-08 22:03:56 +08:00
Tianyi Cui 92d4410ada Merge pull request #3801 from deepseek-harness/worktree/ci-reliability-release-v3-20260908
test(web): align SSH replay with V3 release fixtures
2026-09-08 22:03:21 +08:00
Tianyi Cui ae4919634d test(web): align SSH replay with V3 release fixtures 2026-09-08 22:00:57 +08:00
Tianyi Cui cadd3ac05a Merge current V3 release into migration coverage audit 2026-09-08 21:51:09 +08:00
Tianyi Cui 5924d4c152 test(session): audit V3 migration composition and centralize upgrade spec 2026-09-08 21:51:06 +08:00
Tianyi Cui e72c9e4b13 Merge pull request #3797 from deepseek-harness/integrate/v3-master-refresh-345248
ci(session): merge latest master 345248f470 into V3 release
2026-09-08 21:45:12 +08:00
Tianyi Cui 36997d853c test(ci): inherit runner budgets in publint and LSP fixtures 2026-09-08 21:35:18 +08:00
Tianyi Cui 59ec2d3e94 test(ci): clean up fixture workers after test timeouts 2026-09-08 21:35:18 +08:00
Tianyi Cui 475f5648b3 test(ci): wait for owned completion in master tests 2026-09-08 21:35:18 +08:00
fz a0656e24b3 Merge pull request #3787 from deepseek-harness/feat/upgrade-codex-claude-runtimes
chore(subagent): upgrade Codex to 0.153.4 and Claude Code to 2.1.263
2026-09-08 21:24:33 +08:00
Tianyi Cui 0aa1ef0d1e Merge remote-tracking branch 'origin/release/session-log-v3' into integrate/v3-master-refresh-345248 2026-09-08 21:23:29 +08:00
Tianyi Cui 537102a052 Merge pull request #3636 from deepseek-harness/session-v3/canonical-envelopes
refactor(session): 在 V2→V3 中规范化事件 envelope
2026-09-08 21:21:09 +08:00
Tianyi Cui e11b2a5558 merge: refresh session-log-v3 from master 345248f470 2026-09-08 21:15:06 +08:00
Turtle f830cfd66a Merge remote-tracking branch 'origin/master' into turtle/weighted-approval
# Conflicts:
#	.github/review-ownership/README.md
2026-09-08 21:06:57 +08:00
Turtle c2a5540ddb fix(web): distinguish plugin configuration instances 2026-09-08 21:05:37 +08:00
Turtle 555c04bdfc fix(web): localize Chinese model copy 2026-09-08 21:05:31 +08:00
Turtle b4983e92df Merge pull request #3788 from deepseek-harness/turtle/fix-approved-review-rerequest
fix(ci): do not re-request approved reviewers
2026-09-08 20:55:17 +08:00
CreatixChu 03f439df9e Merge pull request #3673 from deepseek-harness/worktree/typert-forward-reexport
修复 Typert 对包内类型转发的误判
2026-09-08 20:49:23 +08:00
imccyu 97e7223d5f refactor(native): expose Landlock through its capability subpath 2026-09-08 20:49:10 +08:00
imccyu a2784a223e test(web): synchronize theme writes and focus assertions 2026-09-08 20:49:10 +08:00
imccyu 3a445b802d test(ci): stabilize storage and subprocess lifecycle checks 2026-09-08 20:49:10 +08:00
imccyu d927cbff99 feat(native): add prebuilt Node-API flock support 2026-09-08 20:49:10 +08:00
imccyu 7264906f99 refactor(native): rename package family to node-addon-system 2026-09-08 20:49:10 +08:00
imccyu 336ebb235e refactor(native): move Landlock workspace to native/system 2026-09-08 20:49:09 +08:00
_Kerman bcdaed38cc Merge pull request #3295 from deepseek-harness/xtr/explicit-agent-context
refactor(agent): make runtime identity explicit
2026-09-08 20:40:12 +08:00
Turtle 3c21d4c28c fix(client): name collapsed Settings trigger 2026-09-08 20:38:10 +08:00
Turtle c4855581c3 fix: preserve weighted approval review semantics 2026-09-08 20:19:29 +08:00
_Kerman 3a98d05a3d refactor(subagent): keep preset teardown outside identity changes 2026-09-08 20:19:19 +08:00
_Kerman d5e6b4e2b2 chore: remove unrelated PTY test repair from agent refactor 2026-09-08 20:19:09 +08:00
_Kerman 5045631a9a chore: remove unrelated sidebar test notes from agent refactor 2026-09-08 20:18:59 +08:00
Turtle fde15a8394 fix(ci): do not re-request approved reviewers 2026-09-08 20:14:34 +08:00
fz ace0c4619e chore(subagent): upgrade Codex and Claude Code runtimes 2026-09-08 20:12:38 +08:00
creatixchu 606b85cd58 refactor(typert): track forwarding visits without a delimiter 2026-09-08 20:04:09 +08:00
creatixchu b72919827a fix(typert): distinguish forwarding visits by export name 2026-09-08 19:56:33 +08:00
_Kerman 3e0e419bd2 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context
# Conflicts:
#	apps/web/tests/queue-actions.e2e.ts
#	docs/subsystems/tools.i18n.yaml
#	docs/subsystems/tools.md
#	docs/subsystems/tools.zh.md
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/visualizer/tool-visualizer/README.i18n.yaml
#	packages/visualizer/tool-visualizer/README.md
#	packages/visualizer/tool-visualizer/README.zh.md
#	packages/visualizer/tool-visualizer/src/index.ts
#	packages/visualizer/tool-visualizer/tests/loader-composition.spec.ts
#	packages/visualizer/tool-visualizer/tests/model-surface.spec.ts
2026-09-08 19:54:59 +08:00
creatixchu 657482d1dd Merge remote-tracking branch 'origin/master' into worktree/typert-forward-reexport 2026-09-08 19:51:29 +08:00
fz 1f1537914f feat(minimal): align persistent bash output with the one-shot shell contract
The minimal compositions serve the same models that trained against a
one-shot `bash` tool; three surface differences remained visible to them.

- Every settled command now appends `[Command finished with exit code N]`,
  including exit code 0, instead of `[exit code: N]` only on failure. A
  timeout appends `[Command timed out or OOM]` after the partial output.
- Trailing newlines are all dropped before the status trailer rather than
  only the last one.
- The `bash` description in the `minimal` preset and the `sdk-minimal`
  bundle replaces the two fixed network lines with a single environment-
  dependent line; the pwsh description is unchanged.

Tests, READMEs, the web minimal-preset schema snapshot, and the packaged
Python minimal model-visible snapshot follow the new wording. The
standalone `persistent-tools` SDK replay fixture keeps its own copy of the
old description since it is a per-launch customization, not the profile.
2026-09-08 19:48:21 +08:00
_Kerman 6c87f030a3 fix(checks): preserve visualizer composition preset identifiers 2026-09-08 19:46:52 +08:00
_Kerman 36bd297293 fix(visualizer): keep model registration independent of agent identity 2026-09-08 19:46:51 +08:00
_Kerman 795a9cc226 test(web): sample queue alignment in one layout 2026-09-08 19:46:50 +08:00
_Kerman 55660e8a9e test(terminal): decouple descendant identity from startup 2026-09-08 19:46:12 +08:00
_Kerman 8fda2f620a Merge pull request #3671 from deepseek-harness/fix/session-prose-local-media-display
fix(web): display local media paths referenced in session prose
2026-09-08 19:43:21 +08:00
_Kerman 44008a79ca test(team): await mailbox acknowledgement flushes before teardown 2026-09-08 19:24:08 +08:00
Turtle 4550bb6e69 feat: enforce weighted pull request approvals 2026-09-08 19:08:08 +08:00
_Kerman 404097f813 test(subagent): reap SDK startup before readiness fixture cleanup 2026-09-08 18:59:11 +08:00
_Kerman 939e6907da test(shell): gate consuming PowerShell reads on parent acknowledgement 2026-09-08 18:59:04 +08:00
_Kerman 71e96aebae test(subagent): preserve ACP readiness budgets and teardown ownership 2026-09-08 18:56:50 +08:00
_Kerman b76a6d9963 fix(web): keep animated connection dots hidden on hover 2026-09-08 18:27:12 +08:00
_Kerman a433eec5e7 test(web): await editor credential state before snapshots 2026-09-08 18:24:32 +08:00
_Kerman c846beaf95 merge: sync reverted visualizer base from master 2026-09-08 18:20:48 +08:00
Tianyi Cui eda67c4a64 Merge pull request #3778 from deepseek-harness/revert-3337-feat/visualizer-host-plugin
Revert "feat(visualizer): add dormant Host capability"
2026-09-08 18:12:31 +08:00
Tianyi Cui 92b3b02622 Revert "feat(visualizer): add dormant Host capability" 2026-09-08 18:12:15 +08:00
_Kerman e186c218c0 test(web): release workflow gates after failed submissions 2026-09-08 18:04:56 +08:00
_Kerman 7599652627 merge: sync origin/master 2026-09-08 18:00:55 +08:00
_Kerman c26350c303 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context 2026-09-08 18:00:35 +08:00
_Kerman 0f9d944f98 test(worker): account for the dockkit browser CSS entry 2026-09-08 17:57:44 +08:00
_Kerman 7627622c7a test(session): await durable cold projection cache writes 2026-09-08 17:56:00 +08:00
_Kerman 3ec2191246 test(web): await feedback submit replies before snapshots 2026-09-08 17:55:54 +08:00
_Kerman 19d87778a1 test(web): hold workflow children through live navigation checks 2026-09-08 17:55:48 +08:00
_Kerman e7bde97aa0 fix(tool-subagent): await agent-started preset cleanup 2026-09-08 17:55:17 +08:00
Ziya b4c69b0f64 Merge pull request #3337 from deepseek-harness/feat/visualizer-host-plugin
feat(visualizer): add dormant Host capability
2026-09-08 02:54:50 -07:00
_Kerman 180bdede47 fix(test): retain child turn diagnostics when log reads time out 2026-09-08 17:27:59 +08:00
_Kerman f7ef7103f3 test(subagent): await the image capability read before draining 2026-09-08 17:27:52 +08:00
_Kerman f7c9170b3b fix(web): dismiss tooltips when composer actions become disabled 2026-09-08 17:21:13 +08:00
_Kerman 314ccf08af Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context
# Conflicts:
#	packages/bundle/headless/tests/headless.spec.ts
#	packages/core/agent-loop/src/agent.ts
#	packages/subagent/subagent/tests/continuation.spec.ts
2026-09-08 17:12:51 +08:00
_Kerman ef8f166ccc test(ci): preserve the lane budget for invariant verifier children 2026-09-08 17:00:41 +08:00
Tianyi Cui 3fc9027a01 docs(session): refresh replay config source location 2026-09-08 16:56:53 +08:00
Tianyi Cui 53f42a781b test(session): close canonical envelope CI gaps 2026-09-08 16:56:53 +08:00
Tianyi Cui c4d8ee5ff2 test(session): canonicalize headless expected system replacements 2026-09-08 16:56:52 +08:00
Tianyi Cui 920e917988 fix(session): retain unknown required events for vocabulary validation 2026-09-08 16:56:52 +08:00
Tianyi Cui b7622e9f13 chore(session): refresh canonical API catalog after integration 2026-09-08 16:56:52 +08:00
Tianyi Cui 756b10fcfe test(session): cover composed canonical and PTC restoration 2026-09-08 16:56:52 +08:00
Tianyi Cui c28639587a test(session): keep historical fixtures outside current V3 encoding 2026-09-08 16:56:52 +08:00
Tianyi Cui 657e68186a fix(session): canonicalize V3 envelopes through adjacent migration 2026-09-08 16:56:52 +08:00
Tianyi Cui 7cbb052661 Merge pull request #3711 from deepseek-harness/integrate/v3-latest-master-for-canonical
ci(session): merge latest master into V3 for canonical review
2026-09-08 16:50:33 +08:00
ZiyaZhang 8e468c13a0 test(visualizer): remove redundant host web replay 2026-09-08 01:40:11 -07:00
ZiyaZhang 934d4b6501 refactor(visualizer): trust settled widget contents 2026-09-08 01:40:11 -07:00
ZiyaZhang e7dc1322a3 fix(visualizer): leave motion to presentation choice 2026-09-08 01:40:11 -07:00
ZiyaZhang b80e22ec2d docs(visualizer): require self-contained widget sources 2026-09-08 01:40:11 -07:00
ZiyaZhang b75b8ce49e chore(visualizer): align release metadata and snapshots 2026-09-08 01:40:11 -07:00
ZiyaZhang 7729e0ffee refactor(visualizer): simplify host contract 2026-09-08 01:40:11 -07:00
ZiyaZhang b17e90f78a fix(visualizer): validate fragment contracts precisely 2026-09-08 01:40:11 -07:00
ZiyaZhang f1f6ca1c77 feat(visualizer): add dormant Host capability 2026-09-08 01:40:11 -07:00
_Kerman 839a6fa995 test(web): await mutation replies before capturing settled UI 2026-09-08 16:35:16 +08:00
_Kerman 3aee29c657 test(lsp): hold queued source reads behind a response barrier 2026-09-08 16:35:01 +08:00
Turtle 189d96920c Merge pull request #3769 from deepseek-harness/turtle/auto-repair-issue-labels
fix(ci): auto-repair invalid Issue labels
2026-09-08 16:29:28 +08:00
Yichen Jiang da1bc2523a Merge branch 'master' into worktree/pi-ai-settings-recovery 2026-09-08 16:28:15 +08:00
Turtle 1d6b898ef6 Merge pull request #3764 from deepseek-harness/turtle/request-review-live-smoke
feat: rank review owners by changed LOC
2026-09-08 16:13:35 +08:00
_Kerman e33834f522 test(web): await session and responsive layout readiness 2026-09-08 16:12:14 +08:00
_Kerman 999b677e18 merge: sync origin/master 2026-09-08 16:08:28 +08:00
Yichen Jiang dd0fe585dd Merge remote-tracking branch 'origin/master' into worktree/pi-ai-settings-recovery 2026-09-08 16:07:59 +08:00
Turtle 614ff04842 fix: reconcile automated review requests 2026-09-08 16:05:09 +08:00
Turtle f8828b2ce1 fix(ci): auto-repair invalid Issue labels 2026-09-08 16:01:57 +08:00
Turtle f9ec0c28ed Merge pull request #3753 from deepseek-harness/turtle/package-summary-100-word-gate
docs: constrain package README summaries
2026-09-08 15:55:30 +08:00
Turtle f96fbba2db fix: cap counted review requests at one 2026-09-08 15:50:36 +08:00
Yichen Jiang c9a702a267 Merge remote-tracking branch 'origin/master' into worktree/pi-ai-settings-recovery 2026-09-08 15:42:48 +08:00
Yichen Jiang dad135dd41 Merge remote-tracking branch 'origin/master' into worktree/pi-ai-settings-recovery 2026-09-08 15:42:25 +08:00
Kaige-Gao babf22b4cf Merge pull request #3557 from deepseek-harness/slash-command-i18n
feat(web): localize slash command descriptions
2026-09-08 15:38:00 +08:00
_Kerman 8932b8670e test(ci): make Lefthook lock replacement deterministic 2026-09-08 15:36:59 +08:00
_Kerman a189104d81 docs: refresh session controller module dependencies 2026-09-08 15:36:55 +08:00
Turtle a04bffb7ed feat: rank review owners by changed LOC 2026-09-08 15:35:53 +08:00
Turtle f37eb3de47 test: exercise request-review routing 2026-09-08 15:16:08 +08:00
Turtle e19f62a553 merge: sync origin/master 2026-09-08 15:11:19 +08:00
Turtle 5e7c984663 Merge pull request #3752 from deepseek-harness/turtle/request-review-smoke
fix: reconcile automated review requests
2026-09-08 15:11:09 +08:00
Tianyi Cui be9d401c33 test(web): await action acknowledgements before following controls 2026-09-08 15:00:53 +08:00
Turtle 7d8546b4db fix: cap reviewers per pull request 2026-09-08 14:37:54 +08:00
Tianyi Cui 6c0e258b27 test(web): await observed browser settlement in replay scenarios 2026-09-08 14:35:11 +08:00
Turtle 0b43d89d5f fix: cap review owners per module 2026-09-08 14:31:23 +08:00
_Kerman cb3df20cf3 docs(api): remove obsolete media path restrictions 2026-09-08 14:25:50 +08:00
_Kerman 3f1f7da7c3 Merge origin/master into fix/session-prose-local-media-display 2026-09-08 14:25:21 +08:00
Turtle fe834c7f92 fix: reconcile automated review requests 2026-09-08 14:15:41 +08:00
lsdsjy 0707f4af3e Merge pull request #3700 from deepseek-harness/fix/open-in-app-ssh
fix(open-in-app): hide workspace app actions over SSH
2026-09-08 14:11:41 +08:00
Tianyi Cui d058899194 test(snapshot): isolate child-turn diagnostic timeout from harvesting 2026-09-08 13:59:47 +08:00
Turtle f1c1ff5a08 docs: constrain package README summaries 2026-09-08 13:52:40 +08:00
fz 61cd1a3f91 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-08 13:51:47 +08:00
Turtle c41b2895eb test: exercise request-review routing 2026-09-08 13:51:31 +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
Tianyi Cui 1c06f1d3ac test(snapshot): declare spill command fixture plugin types 2026-09-08 13:40:49 +08:00
Tianyi Cui 154b2a3cd6 test(snapshot): reconcile V3 fixtures with isolated master replay 2026-09-08 13:36:12 +08:00
Yichen Jiang da313e4fdc fix(llm-pi-ai): preserve actionable model diagnostics 2026-09-08 13:35:09 +08:00
Kaige-Gao aed565f382 Merge master into slash-command-i18n 2026-09-08 13:32:55 +08:00
Turtle f121b09fb1 Merge pull request #3680 from deepseek-harness/turtle/strip-think-summary-bold-markers
fix(web): strip bold markers from think summaries
2026-09-08 13:30:04 +08:00
Tianyi Cui 2b64ea5f1a test(web): align V3 seeded stats with absent decode timing 2026-09-08 13:20:43 +08:00
Tianyi Cui 96fa1dfac8 Merge pinned master 84bde6c7 into V3 readiness repair 2026-09-08 13:16:35 +08:00
Huanqi Cao a39d309187 fix(directory-picker-native): foreground-activate the Win32 folder dialog via a synthesized Alt press 2026-09-08 13:10:03 +08:00
Tianyi Cui 0bb083d898 Merge pull request #3646 from deepseek-harness/fix/pr-ci-reliability-20260906
fix(ci): 隔离临时存储并稳定测试夹具
2026-09-08 13:06:58 +08:00
Xu Hanxiang 66ac8cc094 Merge pull request #3485 from deepseek-harness/issue-1424-goal-resume-activation
fix(goal): keep manual pause authoritative and show activation
2026-09-08 13:02:47 +08:00
Yudong Han 612afd1eaa Merge pull request #3726 from deepseek-harness/skills/playwright-video-gif
feat(skills): record browser GIFs with Playwright Videos
2026-09-08 13:02:11 +08:00
Kaige-Gao ea60e1c8a7 chore(web): remove command description gate 2026-09-08 13:01:29 +08:00
Turtle b08310ac1d fix(web): strip bold markers from think summaries 2026-09-08 12:56:21 +08:00
_Kerman 40c5ef4fc3 refactor(api): reuse attachment limits for file responses 2026-09-08 12:55:57 +08:00
mektpoy 0dc6ce26d7 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-08 12:48:51 +08:00
Turtle dfae5f0351 Merge pull request #3686 from deepseek-harness/turtle/from-default-profile
feat(cli): create custom profiles from shipped templates
2026-09-08 12:45:58 +08:00
lsdsjy 5b8c8b781f test(open-in-app): scope SSH snapshot to the session header 2026-09-08 12:43:55 +08:00
_Kerman 88ab8e9133 fix(ui): show authored text when markdown images fail 2026-09-08 12:06:43 +08:00
_Kerman b52966922a fix(api): serve bounded files through the filesystem provider 2026-09-08 12:06:11 +08:00
Yichen Jiang 8dc30d270c test(llm-pi-ai): cover recovery diagnostics and document repair limits 2026-09-08 12:04:18 +08:00
yudshj 614cffda8f docs(skills): preserve browser-control workflow preference 2026-09-08 11:52:37 +08:00
yudshj e57e7dc57f feat(skills): record browser GIFs with Playwright video 2026-09-08 11:52:37 +08:00
Turtle 7263193655 Merge pull request #3517 from deepseek-harness/turtle/issue-2029-root-marker-stat-error
fix(agent-instructions): surface root marker stat errors
2026-09-08 11:49:13 +08:00
Turtle 371dce2469 Merge pull request #3523 from deepseek-harness/turtle/issue-2421-reject-empty-prompt
fix(session-controller): reject empty prompts
2026-09-08 11:48:49 +08:00
Turtle e970408acd chore: automate static review ownership 2026-09-08 11:37:58 +08:00
lsdsjy a8d960ecb6 Merge master into fix/open-in-app-ssh 2026-09-08 11:37:46 +08:00
Yudong Han c153123bdd Merge pull request #3720 from deepseek-harness/docs/windows-wsl
docs: explain Windows and WSL development environments
2026-09-08 11:37:44 +08:00
lsdsjy 28d478a80d Merge pull request #3681 from deepseek-harness/fix/busy-send-button-follows-setting
fix(web): make the running Send button follow the busy-Enter setting
2026-09-08 11:35:25 +08:00
Yifffan 012475f7ae Merge pull request #3699 from deepseek-harness/fix/input-placeholder-stat-ui-polish
fix(web): composer polish — menu layering, placeholders, spacing, and two-pill session stats
2026-09-08 05:35:20 +02:00
fz ad05ed6ad8 docs(minimal): describe current editor availability 2026-09-08 11:33:24 +08:00
lsdsjy 7f47954cad fix(open-in-app,directory-picker): share inherited SSH detection 2026-09-08 11:32:36 +08:00
mektpoy 514f92ba53 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation
# Conflicts:
#	packages/goal/goal/tests/projection.spec.ts
2026-09-08 11:23:08 +08:00
Yichen Jiang 5bc792f629 refactor(llm): keep diagnostics in configurable provider metadata 2026-09-08 10:55:53 +08:00
Turtle a56619d9f7 fix(session): reject empty queue edits 2026-09-08 10:48:32 +08:00
Turtle 40b20be9f5 docs(context): record root marker failure policy 2026-09-08 10:48:15 +08:00
Turtle 99a49712e6 test(agent-instructions): model provider absence in resolve 2026-09-08 10:48:15 +08:00
Turtle 08edb3cf10 fix(agent-instructions): surface root marker stat errors 2026-09-08 10:48:15 +08:00
Turtle ae19d9383b fix(session-controller): reject empty prompts 2026-09-08 10:47:36 +08:00
Yichen Jiang a12d30df2a refactor(llm-pi-ai): reuse settings validation for startup recovery 2026-09-08 10:47:05 +08:00
Yichen Jiang 642b538fe0 Merge remote-tracking branch 'origin/master' into worktree/pi-ai-settings-recovery 2026-09-08 10:34:14 +08:00
Yichen Jiang fe03b0686d fix(llm-pi-ai): keep catalog-invalid settings repairable 2026-09-08 10:28:45 +08:00
HYD@OVERTON 76235ecfb7 docs: align Chinese WSL use cases with English 2026-09-08 09:36:19 +08:00
Yif 0ffbd65843 test(web): follow hero headline nesting and Tool definitions copy in e2e 2026-09-08 01:42:35 +08:00
Yifffan 7005d500b4 Merge branch 'master' into fix/input-placeholder-stat-ui-polish 2026-09-07 19:18:33 +02:00
Yif bbd899d478 fix(client): count IconGaugeOutline16 in the icon-set pin; keep the hero headline text addressable
The icon-set spec still pinned 74 exports after IconGaugeOutline16
landed (a hand-drawn product glyph — the set is now eight of those).
Moving the preview badge inside the hero title group had merged the
headline into one text node with the badge, which broke exact text
lookup (hmr-live e2e); the headline gets its own span again.
2026-09-08 01:16:56 +08:00
HYD@OVERTON a5a9746277 docs: explain Windows and WSL development environments 2026-09-08 00:57:15 +08:00
Tianyi Cui c389f96bf3 Merge pull request #3713 from deepseek-harness/fix/workspace-browser-race
test(web): 等待种子 Session 归属投影后再选择
2026-09-08 00:46:19 +08:00
Yif 256afa848c Merge remote-tracking branch 'origin/master' into fix/input-placeholder-stat-ui-polish
# Conflicts:
#	packages/client/ui-chat/src/client/locale.ts
#	packages/client/ui-chat/tests/gate-branch-tails.client.spec.tsx
2026-09-08 00:45:29 +08:00
Tianyi Cui eec9c3b694 test(snapshot): avoid duplicate projection registry setup 2026-09-08 00:37:58 +08:00
Yif 2c45dfe71e fix(client): address review — pill accessible names, static untimed pill, exclusive stat dialogs
StatsPills buttons carry explicit aria-labels separating segments with
' · '; a log with no timed figure renders the counts pill as a static
reading instead of a button opening an empty dialog; the pills row owns
one exclusive open slot so sibling dialogs never stack. ContextMeter
restores the '~' approximation prefix (usedTokens prefers heuristic
projectedTokens). ModelSelect's jscpd:ignore now names the real gap
(useAnchoredPosition places from the left edge only). The pills Agent
Note's stale facts (locale keys, context occupancy, golden ownership)
are rewritten in place, en+zh. plan-review.e2e.ts parks the pointer
after Approve so the ContextMeter tooltip cannot leak into the aria
captures; affected goldens refreshed.
2026-09-08 00:35:04 +08:00
Tianyi Cui 47434e8554 fix(session-format): align v3 migration with merged release version 2026-09-08 00:32:02 +08:00
Tianyi Cui e73906d06f test(web): await seeded workspace membership before selection 2026-09-08 00:28:25 +08:00
Tianyi Cui ccb861d0e2 Merge branch 'master' into fix/pr-ci-reliability-20260906 2026-09-08 00:23:08 +08:00
Tianyi Cui 5b039c1796 Merge master 822041865d into Session V3 release 2026-09-08 00:17:14 +08:00
Tianyi Cui 3ef3bc17c5 Merge pull request #3483 from deepseek-harness/feat/system-prompt-in-history
feat(agent-loop): append a changed system prompt in history on capable routes
2026-09-08 00:06:45 +08:00
imccyu de01754f1e Merge pull request #3588 from deepseek-harness/worktree-sidebar
feat(client): right Sidebar arch — docking surface, tab types, resource model, workspace files
2026-09-07 23:47:39 +08:00
Tianyi Cui 4eebc70df2 test(agent-loop): account for route switch notice during prompt admission
The plain-to-capable transition emits the model-selection notice inherited from master. Preserve the exact in-history system ordering and assert both the admitted user input and the single durable notice instead of expecting the obsolete five-message request. Reproduces the identical Linux and Windows CI failure; all 57 adjacent admission, projection, reconstruction and selection tests pass.
2026-09-07 23:29:49 +08:00
fz 707d0e7e52 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-07 23:25:03 +08:00
imccyu 08cfbd8970 chore(api): remove stale session controller file dependencies 2026-09-07 23:13:10 +08:00
imccyu 4a60189a63 fix(layout): prepare destination widths before fullscreen retreat 2026-09-07 23:00:56 +08:00
fz b92cc94122 test(minimal): cover documented editor opt-in 2026-09-07 22:56:48 +08:00
imccyu 77690644b5 fix(sidebar): show full file paths and refine split and fullscreen controls 2026-09-07 22:37:45 +08:00
imccyu 755e3ceca7 test: cover file subscription and tab lifecycle edge cases 2026-09-07 22:17:56 +08:00
Yif e939a482e9 Merge origin/master: reconcile placeholder rewording with steer-all and note archival
Master archived three Agent Notes this branch had fact-updated (archived
copies restored to their frozen master content; the pills note now links
the archived path), extended the steer-all placeholder to continuable
children (spec and subagent e2e take master's behavior with this branch's
reworded copy), and dropped the session-sharing sentence from feedback
acks (goldens re-refreshed with the new placeholder).
2026-09-07 22:01:06 +08:00
lsdsjy 5e19460c28 docs(notes): sync the continuable-subagent Send clause and tighten the label-state enumerations
The 2026-08-06 continuable-subagent interrupt note said the child's Send
always queued; it now names the busy-Enter delivery and cross-links the
busy Send button note, which links back. The new note's and bench's
plain-Send enumerations now exclude the ordinary running empty/blocked
draft, whose seat is Stop.
2026-09-07 21:43:55 +08:00
imccyu 4fef2786a9 chore: regenerate catalogs, dependency lock, and translation hashes 2026-09-07 21:29:49 +08:00
imccyu fe5aee7e71 test(web): cover Sidebar interactions and refresh recorded UI expectations 2026-09-07 21:29:42 +08:00
imccyu bd4199f48c test: cover filesystem resources and Sidebar domain behavior 2026-09-07 21:29:42 +08:00
imccyu 508831624f chore(web): assemble Sidebar domains and register workspace packages 2026-09-07 21:29:41 +08:00
imccyu a7c7e99652 feat(deliverables): open produced files through Sidebar resources 2026-09-07 21:29:41 +08:00
imccyu 108a7478c9 refactor(tool-ui): route file navigation and remove ToolDetails 2026-09-07 21:29:41 +08:00
imccyu 7e017046ca refactor(chat): open file resources in the Sidebar and remove Details 2026-09-07 21:29:41 +08:00
imccyu d10af0654f feat(textpreview): add paged file tabs and retained reader state 2026-09-07 21:29:41 +08:00
imccyu b24ebc8cce feat(sidebar-files): add lazy workspace file tree tabs 2026-09-07 21:29:40 +08:00
imccyu b67e0a838c feat(sidebar): add tab navigation, injected information, and fullscreen shell 2026-09-07 21:29:40 +08:00
imccyu 4909550782 feat(conversation): provide the session header corner slot 2026-09-07 21:29:40 +08:00
imccyu 9241e10a47 feat(layout): add responsive right column and width concessions 2026-09-07 21:29:40 +08:00
imccyu 9e7c570094 feat(dockkit): add reversible docking engine and pointer interactions 2026-09-07 21:29:40 +08:00
imccyu 9f2b07cea8 feat(remotes): expose workspace file operations to the Client 2026-09-07 21:29:39 +08:00
imccyu 4ce4f0bac4 feat(workspace-files): add dual-face file API and Host-resolved resources 2026-09-07 21:29:39 +08:00
imccyu 3a85ac6d81 feat(resources): add Client resource registry and retained subscriptions 2026-09-07 21:29:39 +08:00
imccyu 4a4b86d9b0 feat(workspace-path): define Session and absolute file resource addresses 2026-09-07 21:29:39 +08:00
imccyu 4429763445 feat(fs-e2b): implement cancellable sandbox byte windows 2026-09-07 21:29:39 +08:00
imccyu bc2174e3aa feat(fs-local): implement bounded local byte windows 2026-09-07 21:29:38 +08:00
imccyu f7b6a13321 feat(fs): define bounded byte-range reads 2026-09-07 21:29:38 +08:00
_Kerman b0a7d2ce3b Merge pull request #2672 from deepseek-harness/xtr/durable-inbox-recovery
refactor(agent): keep projection-backed Inbox loop-internal
2026-09-07 21:24:32 +08:00
Yif ad38d63626 fix(client): ellipsize the composer placeholder — one docked line, two hero lines
A long placeholder wrapped and clipped against the docked composer's 36px
floor; the hero's 52px floor fits exactly two lines.
2026-09-07 21:18:22 +08:00
lsdsjy 4a89178785 fix(open-in-app): hide workspace app actions over SSH 2026-09-07 21:14:19 +08:00
_Kerman dbb9db5f34 docs(session-controller): refresh translation pairing record 2026-09-07 21:05:29 +08:00
Yif 3997f36999 feat(client): replace the stats strip with two icon pills and click-open stat dialogs
The A/B winner over the single-line StatsLine: a gauge pill (counts + TPS,
opening the session-stats dialog) and a database pill (billed total +
cache-hit share, opening the exact token-usage dialog), sharing a new
stat-dialog module. StatsLine and its dead locale keys are deleted, the
gauge icon is optically centered, and the composer keeps its 4px clearance
through the data-composer-stats contract. Agent Note added; stale
StatsLine references across implemented notes updated in place.
2026-09-07 20:59:19 +08:00
lsdsjy 2cb684c754 test(web): pin the failed-upload Send label and document the bench mirror scope 2026-09-07 20:56:34 +08:00
Turtle 267d2f8eb9 Merge remote-tracking branch 'origin/master' into turtle/from-default-profile
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	packages/boot/app-boot/README.i18n.yaml
#	packages/boot/app-boot/README.md
#	packages/boot/app-boot/README.zh.md
2026-09-07 20:53:53 +08:00
_Kerman 68643a07f9 docs(session-controller): unwrap zh readme paragraph 2026-09-07 20:52:09 +08:00
_Kerman 753effe602 fix(bench): rely on testkit session projection mounting
mountAgentLoopTestDependencies registers SessionProjectionRegistry, so benchmark workers must not mount it again before resuming agents.
2026-09-07 20:52:06 +08:00
Turtle 2555474a7d refactor(cli): simplify profile option forwarding 2026-09-07 20:47:47 +08:00
Turtle 7a7b7d5a53 fix(cli): make profile template creation exclusive 2026-09-07 20:46:40 +08:00
07akioni ba05b7d49d Merge pull request #3413 from deepseek-harness/feat/electron
feat(desktop): add managed Electron distribution
2026-09-07 20:46:31 +08:00
lsdsjy 8935c3d725 fix(web): keep plain Send while a file upload is pending
Review follow-up: the mode label predicate now includes !uploadsPending,
so a running draft whose file is still uploading (or failed) keeps the
plain Send label on its disabled button, matching the documented
'enabled button' condition. Test pins pending vs ready upload states;
the Agent Note and README pair name the upload gate.
2026-09-07 20:43:12 +08:00
_Kerman 0348599f04 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/acp/acp/tests/harness.ts
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/api/session-controller/tests/commands-queue-attachment.host.spec.ts
#	packages/context/agent-instructions/tests/agent-instructions.e2e.ts
#	packages/fs/tool-fs/tests/harness.ts
#	packages/preset/agent-presets/tests/invariant.spec.ts
#	packages/preset/agent-presets/tests/mount.spec.ts
#	packages/preset/agent-presets/tests/remote.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-09-07 20:22:24 +08:00
Turtle dd25e1e6b3 feat(cli): create profiles from shipped templates 2026-09-07 19:58:41 +08:00
fz 110db78707 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-07 19:53:33 +08:00
07akioni 016af7c67b Merge release 0.1.3-alpha.2 and reconcile desktop composition 2026-09-07 19:49:36 +08:00
07akioni 8d0d729091 Merge master native containment updates into feat/electron 2026-09-07 19:45:55 +08:00
Yichen Jiang 82a5fd61a7 Merge pull request #3685 from deepseek-harness/worktree/release-dsh-0.1.3-alpha.2
release: [email protected]
2026-09-07 19:45:35 +08:00
Tianyi Cui 053bf8aaad Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 19:45:32 +08:00
Tianyi Cui 34832ddb2e Merge published V3 repair root into system-message branch
Include the root merge from #3678 without altering the previously validated implementation tree. Preserve structural V3 system messages and the current native-runtime recordings.
2026-09-07 19:45:32 +08:00
Tianyi Cui 98c043ab0f Merge branch 'master' into fix/pr-ci-reliability-20260906 2026-09-07 19:44:51 +08:00
fz 5c98a81a50 test(benchmarks): explicitly compose the SDK file editor 2026-09-07 19:43:49 +08:00
fz d3281d0218 docs(minimal): explain editor opt-in configuration 2026-09-07 19:33:48 +08:00
lsdsjy 2f630626b8 fix(web): name the running Send mode only for a plain message draft
Review follow-up. The mode label predicate lacked `!empty`, so a running
continuable child with an empty draft showed a disabled "Queue message";
and a claimed slash command or a `/` line headed for adjudication executes
a command rather than delivering a message, so naming Queue/Steer there
misdescribed the click. The label now names the mode only when the click
would deliver a plain message: running, steer-capable, enabled, non-empty,
unclaimed, and not a `/` line. Tests pin the empty-draft child, the slash
line, and the claimed command; the Agent Note, README pair, and
ComposerKeyboard.submit JSDoc state the exact predicate.
2026-09-07 19:33:20 +08:00
fz 71a291cbc4 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-07 19:28:12 +08:00
Yichen Jiang e379fa8bdd release(dsh): 0.1.3-alpha.2 2026-09-07 19:27:06 +08:00
Tianyi Cui 4bcabe6da4 test: pair spill cleanup roots with concurrent run results 2026-09-07 19:20:39 +08:00
Tianyi Cui 23b48b7577 Merge pull request #3678 from deepseek-harness/fix/v3-benchmark-reliability
fix(ci): integrate latest master and repair V3 performance/readiness checks
2026-09-07 19:14:22 +08:00
lsdsjy 9a5ed6fb60 fix(web): make the running Send button follow the busy-Enter setting
The ui-conversation.busyEnter setting selected Queue or Steer for plain
Enter only; the running draft's Send button always submitted through the
public InputActions.submit() face, which is fixed to Queue, while labeled
"Send message". A user who chose Steer got Steer from Enter and Queue
from the button beside the same draft with nothing explaining why.

InputBar now resolves the primary click through the same `enter` gesture
and steer-availability predicate as the keyboard path (ordinary Sessions
and continuable children) and submits via ComposerKeyboard.submit(mode).
While that delivery is available the button's tooltip and accessible name
state it ("Queue message" / "Steer message"; 排队发送 / 插话发送), so the
mode is never hidden; idle sessions, one-shot children, and locked
composers keep the plain Send label. The composer bar inject face
publishes the live preference as hooks.busyEnter instead of a resolver
closure, and resolveSubmitMode is a pure function taking the preference
explicitly, so label and delivery derive from one value in one render and
the label follows live Settings changes. The Settings row is retitled
"Send behavior while busy" with a description that names both Enter and
the button; the busyEnter field, its default, and the Host schema are
unchanged.

Tests pin both preferences on the running button for ordinary sessions
and continuable children, the live relabel, the idle Queue path, and the
pure resolver; the settings-chrome ARIA goldens and the live-interactions
running-draft and queue-actions failed goldens carry the new copy. A new
Agent Note owns the decision and reverses the pointer-ignores-preference
clause of the archived 2026-08-20 running-draft note.
2026-09-07 19:14:21 +08:00
Tianyi Cui f3c98e4539 test(web): settle queue tooltip and select exact seeded session 2026-09-07 19:03:25 +08:00
Tianyi Cui 89bafdb945 Merge native subprocess containment into in-history updates
Preserve both sdk-minimal-in-history and native runner smoke scenarios. Record the current Cordis inspection through the actual upper headless owner while retaining upstream V2 bytes and strict prompt admission semantics.
2026-09-07 18:49:19 +08:00
Tianyi Cui 90307dd7d6 Merge native containment master into V3 system-message layer
Preserve strict live-smoke challenges and structural system messages while adopting the native subprocess runtime. Regenerate only the current Cordis inspection recording from the upstream V2 source to retain its no-ordinary-PID coverage; predecessor bytes match master.
2026-09-07 18:46:59 +08:00
Tianyi Cui 1dc95884a1 Merge frozen native containment master f6132bd into V3 repair
Preserve the root V3 current-writer, PTC dispatch identity, and reliability fixes while incorporating provider-owned native ranges and the private packaged runner bootstrap.

Refresh only the current cordis-inspect-jsdoc V3 owner through the built headless profile so upstream subprocess API coverage is exercised. Preserve incoming master V2 bytes and all other fixtures and benchmark thresholds.
2026-09-07 18:42:02 +08:00
pku-xht c7e29f4b68 Merge pull request #2825 from deepseek-harness/codex/subprocess-native-containment
fix(subprocess): contain escaped descendants with native owners
2026-09-07 18:30:37 +08:00
Tianyi Cui b000ca44f6 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 18:20:03 +08:00
Tianyi Cui 3ae70558e7 test: make publint assertion callbacks explicitly void 2026-09-07 18:19:45 +08:00
Tianyi Cui f4e10a61b1 test: make publint assertion callbacks explicitly void 2026-09-07 18:19:44 +08:00
Tianyi Cui 0deeec02c4 Merge current master and CI readiness repairs into in-history updates
Preserve prepared-route admission and V3 prompt semantics while adopting latest master. Regenerate the new model-switch recording at its actual upper-layer title ordering, retain the V2 predecessor, and keep queued-image and publint lifetime assertions strict.
2026-09-07 18:18:08 +08:00
Tianyi Cui 153d54a2f2 ci: retain shared persistent npm cache 2026-09-07 18:14:33 +08:00
Tianyi Cui d792a694ef test: bind publint subprocess lifetime to lane cancellation 2026-09-07 18:14:17 +08:00
Tianyi Cui 710823fd24 Merge current master and benchmark repairs into V3 system messages
Adopt current model-switch notices, lazy observation, and open-in-app integration while preserving structural V3 admission. Regenerate only the new model-switch owner’s native V3 recording, prompt-count manifest and expected delimiter; keep the master V2 predecessor byte-exact.
2026-09-07 18:14:14 +08:00
Tianyi Cui f91f33094a test: bind publint subprocess lifetime to lane cancellation 2026-09-07 18:13:07 +08:00
Tianyi Cui c4ad45378d test(web): await admitted queue image before snapshot 2026-09-07 18:07:13 +08:00
Tianyi Cui 07b9d2e780 test(web): await admitted queue image before snapshot 2026-09-07 18:06:55 +08:00
Tianyi Cui 89f4acbd74 Merge frozen master 777d73f into V3 benchmark repair
Bring model-switch notices, lazy observations, and open-in-app into the root V3 integration without importing the child structural header changes. Preserve V3 migration, PTC, and all predecessor fixtures.

Refresh only the model-switch-notice owner through dsh --profile headless to harvest native current-writer session.v3.jsonl. Keep the master session.v2.jsonl byte-exact; existing header pin and versioned writer helpers require no changes.
2026-09-07 18:04:19 +08:00
_Kerman 67c5136c7e fix(api): refuse non-regular files before open and bound full streams
- A media-named FIFO or device node is refused before the open would
  block on it (pre-open isFile check); POSIX FIFO regression test added.
- The full-body stream is bounded to the stat'ed size so concurrent
  appends cannot exceed the declared Content-Length.
- Error responses carry no body for HEAD requests.
- Docs no longer overclaim the replacement race: the stat-identity
  comparison narrows (does not fully close) the replacement window, and
  the earlier realpath-to-stat window is acknowledged. Pairs re-recorded.
2026-09-07 18:04:07 +08:00
pku-xht 0f83a2cdc0 Merge remote-tracking branch 'origin/master' into codex/subprocess-native-containment 2026-09-07 18:02:44 +08:00
_Kerman ba4a536030 fix(api): honor only bytes ranges and ignore malformed or multi-range headers
range-parser never validates the range unit, so /api/file now parses only
headers that start with the bytes unit: unsatisfiable ranges answer 416,
while malformed, unknown-unit, and multi-range headers are ignored for a
full 200 body per RFC 9110. The filesystem-root workspace case stays
POSIX-only in tests (a Windows drive-root spelling cannot be constructed
portably); containment already treats any separator-terminated root the
same. Docs (README pair, Agent Note pair) re-recorded.
2026-09-07 18:01:29 +08:00
creatixchu 5acf3cd09b fix(typert): try explicit forwarding edges before star edges and reuse the resolution cache
Review follow-up. A forwarding module's explicit re-exports are tried
before its star re-exports and an entered module is skipped on later
edges, so a star edge that loops back no longer hides the explicit
re-export beside it. Import resolution outside the checker goes through
the face's shared compiler host and module-resolution cache, and an
import naming an unregistered package fails the public-export check
instead of throwing a TypeError. Tests pin the looping star, the
relative-only cycle exit, namespace re-exports, and re-exported
namespace imports.
2026-09-07 18:00:39 +08:00
ihsiang 9292dd8a2d feat(workspace): open the workspace in local apps from the web UI (#3409)
Add the first-party open-in-app host and client packages with a localized Open In menu in the Web Session header.

Resolve installed applications on macOS, Windows, and Linux, launch workspace directories through platform-specific adapters, and remember the selected application.

Closes #1500.

Co-authored-by: ihsiang <[email protected]>
2026-09-07 17:58:11 +08:00
pku-xht e9f1b6c53e Merge remote-tracking branch 'origin/master' into codex/subprocess-native-containment
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.md
#	.agents/notes/implemented/architecture/2026-07-16-explicit-turn-cancellation.zh.md
#	.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml
#	.agents/notes/implemented/architecture/2026-09-05-nonofficial-feedback-otel.i18n.yaml
#	.agents/notes/implemented/architecture/2026-09-06-embedded-stream-record-readers.i18n.yaml
#	.agents/notes/implemented/bug-fix/2026-09-03-normalized-unread-fs-tool-diagnostic.i18n.yaml
#	.agents/notes/implemented/bug-fix/2026-09-06-windows-python-console-spawn-wait.i18n.yaml
#	.agents/notes/implemented/feature/2026-08-26-generic-file-upload.i18n.yaml
#	.agents/notes/implemented/feature/2026-09-07-model-switch-notice.i18n.yaml
#	.agents/notes/implemented/process/2026-09-03-semantic-issue-templates-and-policy.i18n.yaml
#	packages/shell/bash-local/tests/executor.spec.ts
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	packages/subprocess/subprocess-local/src/spawn.ts
#	packages/subprocess/subprocess-local/tests/spawn.spec.ts
#	packages/subprocess/win32-process/package.json
2026-09-07 17:43:45 +08:00
Dudu-0223 9d93c57053 Merge pull request #3672 from deepseek-harness/perf/session-observation-lazy-events
perf(session-query): materialize live observation events on first read
2026-09-07 17:40:45 +08:00
Tianyi Cui 4ee338532a ci: retain shared pnpm store across runner instances 2026-09-07 17:28:12 +08:00
_Kerman 8b8a051c7a fix(api): address /api/file review findings
- HEAD never opens a file stream; GET streams are destroyed on client
  abort and are never opened for already-aborted requests.
- Validation and reading bind to the same opened file: pre-open and
  opened stat identities are compared, so replacement/re-linking races
  are refused (dev/ino check, read through the FileHandle).
- Workspace containment compares path components, so a filesystem-root
  workspace serves files instead of doubling the separator.
- Multi-range headers are ignored for a full 200 body instead of a
  mislabeled single-segment 206; single-range behavior unchanged.
- Tests now cover the reviewed edges (empty path, multi-range, root
  workspace, HEAD+range, mid/early abort, unreadable file, explicit
  unregister-on-dispose, private outside-target directories); module
  coverage is back at 100/100/100/100.
- Agent Note bilingual facts and the ui-primitives/session-controller
  README pairs are synced to the shipped behavior (pairs re-recorded).
2026-09-07 17:27:57 +08:00
_Kerman 1780d0d355 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context 2026-09-07 17:25:46 +08:00
Tianyi Cui 2c2092e2c6 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 17:21:56 +08:00
Tianyi Cui dbd28a8071 fix(benchmarks): keep composer focus during streamed input 2026-09-07 17:21:56 +08:00
Tianyi Cui 9baebd8f3f fix(benchmarks): keep composer focus during streamed input 2026-09-07 17:21:55 +08:00
Tianyi Cui 09e56a4b4a Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 17:18:19 +08:00
Tianyi Cui 201987b374 perf(llm): scan file content without per-array callbacks 2026-09-07 17:18:18 +08:00
Tianyi Cui a7661e2672 perf(llm): scan file content without per-array callbacks 2026-09-07 17:18:18 +08:00
Dudu-0223 5b91dbfba0 perf(session-query): materialize live observation events on first read 2026-09-07 17:15:35 +08:00
creatixchu 3599ff5119 Merge remote-tracking branch 'origin/master' into worktree/typert-forward-reexport 2026-09-07 17:15:32 +08:00
Tianyi Cui d718965f00 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 16:58:53 +08:00
Tianyi Cui f277ec0e06 Merge published V3 root after master integration approval
Include the root merge ancestry from #3669. Preserve the already validated system-message child recording rather than restoring the root’s header-system representation. The resulting tree is unchanged from the preceding representation head.
2026-09-07 16:58:52 +08:00
CreatixChu cb602a0df5 Merge pull request #3507 from deepseek-harness/worktree/3410-model-switch-notice
feat(agent): announce model switches
2026-09-07 16:55:45 +08:00
_Kerman ead14339bc refactor(ui-chat): fold local-path media mapping into AssistantMarkdown
A single-consumer pure helper does not earn its own file: the mapping
now lives beside the prose vocabulary it serves (same shape as the
deliverables file-mention logic), and its unit cases merged into the
component spec.
2026-09-07 16:46:46 +08:00
Tianyi Cui 7ef325619f Merge branch 'master' into fix/pr-ci-reliability-20260906 2026-09-07 16:46:31 +08:00
Tianyi Cui 930e4d67ea Merge pull request #3669 from deepseek-harness/fix/spkv-root-latest-master
ci(session): bring protected V3 integration onto latest master
2026-09-07 16:45:19 +08:00
_Kerman 4b009e7f94 refactor(api): shrink media-references surface and reuse maintained libs
- /api/file module now exports only the SessionMediaReferences plugin
  contribution; MIME and range policy helpers are module-private and
  exercised entirely through the registered route.
- Replace the hand-rolled media extension table with mime-types (served
  categories image/video/audio, excluding image/svg+xml) and the
  hand-rolled Range parser with range-parser; keep the fail-closed
  workspace containment policy.
- Spec rewritten as route-level behavior tests (12 cases) covering the
  same branches; Agent Note facts updated in the same change.
2026-09-07 16:35:15 +08:00
_Kerman f81c5072bd fix(api): close coverage edges in media-references route 2026-09-07 16:20:10 +08:00
creatixchu 48cc1cf1d6 feat(agent): announce model switches 2026-09-07 16:19:59 +08:00
Tianyi Cui b0ba955be2 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 16:17:19 +08:00
Tianyi Cui 476918da0a Merge latest master teardown and migration waiter fixes
Observe actual shared-preparation waiter admission and settle both callers before cleanup, preserving current V3 migration expectations. Adopt master’s cross-platform teardown regressions without changing budgets or Session data.
2026-09-07 16:15:57 +08:00
Tianyi Cui a062772d7d Merge latest master teardown and migration waiter fixes
Observe actual shared-preparation waiter admission and settle both callers before cleanup, preserving current V3 migration expectations. Adopt master’s cross-platform teardown regressions without changing budgets or Session data.
2026-09-07 16:15:57 +08:00
_Kerman b685a9a6b0 fix(api): satisfy oxlint same-type operand rule in range header 2026-09-07 16:02:14 +08:00
07akioni 5fd247f64c Merge latest master into feat/electron 2026-09-07 16:02:13 +08:00
creatixchu b2a3a0335d fix(typert): follow package-local forwarding modules in cross-package references
A type imported by relative path from a module of the same package that
re-exports it from another package failed as a cross-package reference
without an explicit package import. The analyzer now resolves the relative
specifier, follows re-exports while the file stays inside the referencing
package, and applies the public-export check to the package specifier the
chain reaches. Relative paths into other packages and forwarded private
exports still fail.

Fixes #3525
2026-09-07 15:58:40 +08:00
_Kerman 7a715e7919 refactor(api): serve /api/file media by extension allowlist only
Drop the byte-signature sniff duplicated from fs/tool-fs's read_image tool:
the cross-file duplication gate forbids the clone, and no shared owner
exists without widening the attachment package's public API. The
extension allowlist keeps non-media content out; corrupt image payloads
fail in the browser, not on the route. Agent Note facts updated in the
same change.
2026-09-07 15:53:54 +08:00
_Kerman 0c823f4b6f chore(docs): re-record config catalog translation-pair record 2026-09-07 15:53:53 +08:00
Tianyi Cui 4ac4e3d014 Merge pull request #3668 from deepseek-harness/fix/windows-subagent-teardown-ci
test(ci): synchronize Windows waiters and complete teardown
2026-09-07 15:52:01 +08:00
Tianyi Cui 7ebde31dde Merge current master human inbox controls into in-history updates
Preserve in-history request ordering and native V3 system heads while incorporating master’s human inbox controls. Regenerate only the current SDK child recording through its actual owner; retained V2 predecessor bytes match master.
2026-09-07 15:50:05 +08:00
Tianyi Cui d9042f61e1 test(snapshot): refresh V3 human-steering child recording
Record current V3 output from master’s human inbox control scenario while retaining the V2 predecessor unchanged. No additional product behavior or validation change.
2026-09-07 15:48:25 +08:00
Tianyi Cui b7f66f4440 test(sdk): record native V3 human-steering inbox transitions
Refresh the current V3 child recording through the actual SDK scenario after master’s inbox-control change. Preserve the V2 predecessor inherited from master and retain system-message admission and current references.
2026-09-07 15:47:27 +08:00
Tianyi Cui 50cce9c28d Merge latest master human inbox controls into system-prompt layer
Preserve the V3 PTC SDK assertion and enable the new human-steering runtime fixture while carrying master’s inbox lifecycle changes. Retain prior deterministic CI repairs and immutable predecessor ownership.
2026-09-07 15:45:09 +08:00
Tianyi Cui fffd39b101 Merge latest master human inbox controls into V3 integration
Preserve the V3 PTC scenario while enabling the current subagent human-steering fixture environment. All product changes are inherited from master; no V3 migration semantics are altered.
2026-09-07 15:44:17 +08:00
_Kerman 2aaa88ca1a chore(docs): regenerate config catalog after session-controller import shift 2026-09-07 15:42:16 +08:00
Tianyi Cui ce9f124e0e Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 15:40:52 +08:00
Tianyi Cui e2b3800a7e fix(python): challenge fresh file state in live SDK smoke 2026-09-07 15:40:51 +08:00
Dudu-0223 96ead6091d feat(subagent): align human inbox controls (#3223)
* feat(subagent): align continuable human inbox controls

* fix: repair rebase documentation and close test persistence

* docs: refresh rebased module dependency graph
2026-09-07 07:39:39 +00:00
_Kerman 9da174c304 fix(web): display local media paths referenced in session prose
Assistant prose that references a workspace-contained local media path
(e.g. `![](/Users/.../x.png)`) now renders through a same-origin
`GET|HEAD /api/file?path=` route instead of inert alt text.

- ui-primitives: MarkdownText gains a settled-only MarkdownPathImages
  vocabulary gate (same posture as file mentions); no vocabulary means
  byte-identical output.
- ui-chat: AssistantMarkdown supplies a page-stable rewrite vocabulary
  for absolute POSIX paths (local-path-media.ts).
- session-controller: SessionMediaReferences plugin contribution mounts
  the route on the authenticated connection.fetch channel; per-request
  policy = workspace-root containment after realpath, regular file,
  allowlisted media extension (images additionally signature-checked),
  range/HEAD streaming, private no-store + nosniff, fail-closed statuses.
- Agent Note added (feature/2026-09-07-session-prose-local-media-display).

Closes #3662.
2026-09-07 15:34:19 +08:00
Tianyi Cui 275ff714cf Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 15:03:33 +08:00
Tianyi Cui f7b1658ff2 fix(benchmarks): reserve system heads in generated V3 histories 2026-09-07 15:03:32 +08:00
Tianyi Cui 0d0914b814 fix(agent-loop): import message type for freeze provenance
Restore the explicit Message type import needed by master’s per-agent WeakSet after composing it with the in-history request builder.
2026-09-07 14:56:45 +08:00
Tianyi Cui 70ae2354d0 Merge latest master performance work and V3 preset migration
Freeze exactly the post-admission derived message array using the inherited per-agent provenance cache, preserving the prepared-route ordering and retry semantics. Adopt the root’s legacy preset migration without changing native V3 custom preset behavior. Request freeze, admission, projection and reconstruction regressions pass58 tests.
2026-09-07 14:55:12 +08:00
Tianyi Cui 19d167cec2 Merge latest master request-freeze and frontend performance work
Preserve the V3 system-prompt projection while adopting master’s per-agent frozen-message provenance and frontend performance gates. Keep benchmark workload admission and diagnostics fixes intact, and retain both migration and first-open/reopen lifecycle guarantees.
2026-09-07 14:53:00 +08:00
Tianyi Cui 95400aa52c Merge V3 preset-reference migration into system-prompt representation
Compose the root’s exact legacy code-to-ptc preset conversion with the existing structural system-head migration. Keep dense source events, audited payload admission, local reference mapping, and native V3 extension behavior unchanged. Preserve the historical preset migration fixture byte-for-byte and test unsupported sparse/opaque sources explicitly.
2026-09-07 14:51:05 +08:00
Tianyi Cui 85dcebcda4 Merge remote-tracking branch 'origin/master' into fix/spkv-root-latest-master 2026-09-07 14:48:39 +08:00
Tianyi Cui 8d0f45febc Merge remote-tracking branch 'origin/release/session-log-v3' into fix/spkv-root-latest-master 2026-09-07 14:47:55 +08:00
Tianyi Cui 5608528e14 Merge pull request #3637 from deepseek-harness/perf/frontend-scenarios
test(perf): gate long-session browser and reconnect workflows
2026-09-07 14:42:15 +08:00
Tianyi Cui b53c95e458 Merge pull request #3664 from deepseek-harness/fix/scroll-follow-pending-sample
fix(chat): preserve pinned scroll-follow across layout changes
2026-09-07 14:38:43 +08:00
Tianyi Cui 4023879df7 test(codex): finish captured cleanup after sibling failures 2026-09-07 14:30:31 +08:00
Tianyi Cui a1d11f213f test(session): observe shared waiter admission before cancellation 2026-09-07 14:30:29 +08:00
Tianyi Cui 5b2c9ba2d2 Merge pull request #3666 from deepseek-harness/worktree/session-v3-preset-rename
fix(session): migrate legacy code preset references to ptc
2026-09-07 14:30:24 +08:00
Tianyi Cui 1ca0df2e24 test(python): synchronize advanced snapshot workflow membership 2026-09-07 14:26:30 +08:00
Tianyi Cui 0ff0850678 Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 14:21:50 +08:00
Tianyi Cui d1e9254454 fix(web-tests): author preset and stats seeds in current format
Generated V0 logs put user surfaces before the first step and cannot migrate to a protected V3 system head without changing chronology. Author native current headers, open the first step before the empty system head and user, keep title sequence references aligned, and supply embedded assistant streams.

Give the preset child a current identified user message. Preserve all paging, geometry, preset assertions and committed historical fixtures. Validated both generators red/green through the source seed reader, one full build, all preset/stats/trajectory browser tests (11), and scoped type-aware lint.
2026-09-07 14:21:50 +08:00
07akioni 4a9c180e2d Merge branch 'master' into feat/electron 2026-09-07 14:21:23 +08:00
Tianyi Cui dda0f05999 fix(web-tests): generate native system head before chat users
The long-chat builder emitted current V3 with user/message before system/message, so seed restoration rejected its protected head before browser assertions ran. Open the first step and append the system head before the user surface; keep Session-assigned title and tool-result references.

Add an independent seed-reader regression for current version, protected head order, title/tool references and closed turns. Observed protected-head failure before the fix; focused regression and full configured type-aware lint pass. Existing browser scroll assertions are unchanged; full built owner runs follow.
2026-09-07 14:17:08 +08:00
Tianyi Cui 12dd429331 Merge remote-tracking branch 'origin/master' into fix/spkv-root-latest-master 2026-09-07 14:02:51 +08:00
Tianyi Cui 2eccae5631 Merge branch 'release/session-log-v3' into worktree/session-v3-preset-rename 2026-09-07 14:00:22 +08:00
Tianyi Cui 73865675a4 docs(system-prompt): combine cache guarantees in model-experience field
Keep the merged in-history and stable suffix guarantees within the required single KV Cache effect paragraph. No behavior or guarantee changes.
2026-09-07 13:58:41 +08:00
Tianyi Cui c1be95a0cd Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 13:56:15 +08:00
Tianyi Cui a4f6250be9 Merge remote-tracking branch 'origin/release/session-log-v3' into feat/system-prompt-surface-node 2026-09-07 13:56:08 +08:00
Tianyi Cui 086b94d4f6 Merge pull request #3655 from deepseek-harness/fix/v3-pwsh-current-fixtures
test(session): 同步最新 master 并修复 V3 PowerShell fixtures
2026-09-07 13:53:21 +08:00
Yichen Jiang ff33f79eb1 fix(session): migrate legacy code preset references to ptc 2026-09-07 13:52:22 +08:00
mektpoy 21db102cea refactor(ui-goal): keep activation slot types private 2026-09-07 13:50:11 +08:00
Tianyi Cui d43d93d89f test(agent-loop): use current persona slots in admission harness
Adopt master’s explicit personaPrefix/personaSuffix configuration in the in-history test harness. The assembly override and all admission assertions remain unchanged; this fixes the typed build integration rather than weakening the tests.
2026-09-07 13:46:33 +08:00
Tianyi Cui 9ef426d729 fix(chat): keep genuine near-floor scroll gestures pending 2026-09-07 13:46:30 +08:00
Tianyi Cui 421e3b075c test(subagent): preserve lane budgets and await teardown completion 2026-09-07 13:39:56 +08:00
Tianyi Cui a4e445236f Merge latest master prompt placement into in-history updates
Keep prepared-route in-history append, clear-all, and normalization semantics while adopting named persona prefix/suffix and late environment facts from master. Resolve documentation against the derived system-message history and retain the existing strict migration behavior.
2026-09-07 13:39:12 +08:00
Tianyi Cui d3ed6d6f88 Merge remote-tracking branch 'origin/master' into feat/system-prompt-surface-node 2026-09-07 13:35:06 +08:00
Tianyi Cui 57885bd73d Merge latest master prompt placement through V3 integration
Preserve system/message persistence while adopting named persona prefix/suffix and environment facts after reusable instructions. Resolve the Web assertion against the logged system message, not retired header.system. Keep the existing protected V3 integration PR as the root publication path; no rules are bypassed.
2026-09-07 13:34:43 +08:00
Tianyi Cui cbdf32447e fix(benchmarks): calibrate repeated hosted browser open median 2026-09-07 13:29:38 +08:00
Tianyi Cui 1a3af89a8d fix(benchmarks): calibrate hosted paging and trajectory endpoints 2026-09-07 13:29:38 +08:00
Tianyi Cui 620c2b0b27 fix(benchmarks): calibrate hosted frontend endpoints and preserve input overlap 2026-09-07 13:29:38 +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 00e452aa03 docs(perf): confirm repeated frontend CI calibration 2026-09-07 13:29:38 +08:00
Tianyi Cui 82cd35467a docs(perf): record first frontend CI calibration 2026-09-07 13:29:38 +08:00
Tianyi Cui 9369585872 test(perf): bound browser observers to active response 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 7ac5e08246 test(perf): measure real history streams and live input overlap 2026-09-07 13:29:38 +08:00
Tianyi Cui 6ad74db2e3 test(perf): gate long-session browser and active reconnect workflows 2026-09-07 13:29:38 +08:00
Tianyi Cui 843c8723e5 docs(perf): link active hosted request calibration 2026-09-07 13:29:37 +08:00
Tianyi Cui e2b81cf8bf docs(perf): distinguish hosted request and catalog budgets 2026-09-07 13:29:37 +08:00
Tianyi Cui 8e270960ed test(perf): calibrate request history on standard hosted CI 2026-09-07 13:29:37 +08:00
Tianyi Cui 73edce1ae7 perf(agent-loop): reuse proven message freezes per agent 2026-09-07 13:29:37 +08:00
Tianyi Cui 84914c316d test(perf): calibrate baseline requests for hosted CI 2026-09-07 13:29:37 +08:00
Tianyi Cui 2f0088357d test(perf): calibrate tool continuation for hosted CI 2026-09-07 13:29:37 +08:00
Tianyi Cui daa7f60630 test(perf): calibrate catalog for standard hosted CI 2026-09-07 13:29:37 +08:00
Tianyi Cui 1507f82888 docs(perf): record backend CI evidence and align workload prose 2026-09-07 13:29:37 +08:00
Tianyi Cui c599ef87c4 test(perf): baseline tool-heavy backend workflows 2026-09-07 13:29:37 +08:00
Tianyi Cui e335d6af08 Merge V3 seed and coverage fixes from system-prompt parent
Preserve valid native V3 system heads in resumed fixture seeds and inherit the scanner coverage repair. Regenerate only upper-layer owner-local expected output through the actual loop so fallback title follows header/context. All five affected expected cases pass refresh; no historical Session generation or assertion is weakened.
2026-09-07 13:27:59 +08:00
Tianyi Cui 6c4cd033e3 Merge pull request #3280 from deepseek-harness/fix/ci-node-compile-cache-data-disk
ci: redirect Node compile cache to data-volume runner temp
2026-09-07 13:24:49 +08:00
Tianyi Cui fa6bf62a98 fix(chat): settle pinned scroll deliveries before layout growth 2026-09-07 13:24:04 +08:00
07akioni 6d55da993d Merge master into feat/electron after scope cleanup 2026-09-07 13:21:45 +08:00
07akioni 4879a8a33a refactor(desktop): remove unrelated changes and own host dependencies 2026-09-07 13:16:04 +08:00
Tianyi Cui 74a6d30aba test(cli): seed resumed native V3 sessions with protected system heads 2026-09-07 13:15:38 +08:00
Tianyi Cui cbbbb30214 Merge remote-tracking branch 'origin/master' into release/session-log-v3 2026-09-07 13:15:00 +08:00
Tianyi Cui 78f03ffef9 fix(session): cover V3 admission and keep compressed fixture migratable
Keep the synthetic compressed historical fixture step-first without changing frozen generation data or shared fixtures. Pin its migrated empty system head and unchanged source bytes. Exercise malformed native system rows before and after recoverable damage through scanner and read/write handles. Remove the unreachable duplicate unsupported-format catch after current-row admission; preserve its owned rejection and generic error path.

Validation: original zstd regression red; admission-bypass negative control 3/3 red; five focused specs 314/314 pass with format.ts 100% statements/branches/functions/lines. Final admission cleanup 15/15 pass. Full build-backed lint found one matcher typing error; exact identifier oracle replaces it and focused type-aware lint passes.
2026-09-07 13:14:18 +08:00
Tianyi Cui 25b28a14cd Merge branch 'feat/system-prompt-surface-node' into feat/system-prompt-in-history 2026-09-07 13:12:53 +08:00
Tianyi Cui 76cf592234 Merge commit 'd1e5b724d71e9a6f675232caa760395710826b81' into feat/system-prompt-surface-node 2026-09-07 13:12:46 +08:00
Tianyi Cui ef11a4e007 Merge pull request #3644 from deepseek-harness/fix/environment-prompt-suffix
fix(system-prompt): move environment facts behind reusable instructions
2026-09-07 13:12:22 +08:00
Tianyi Cui f68c4239e4 Merge remote-tracking branch 'origin/master' into release/session-log-v3 2026-09-07 13:09:36 +08:00
Tianyi Cui 7340438fe7 Merge latest master integration from system-prompt parent
Propagate the V3 parent and current master CI reliability fixes without changing in-history semantics, performance budgets, or recorded predecessor ownership. PR-owned CLI seed and source-coverage repairs follow in their lower owning layer.
2026-09-07 13:09:27 +08:00
Tianyi Cui fdd6380503 Merge latest master V3 integration into system-prompt representation
Retain the protected system-message fixture representation while incorporating the latest master PowerShell, browser timezone, asynchronous subscription and Python-runtime CI fixes through the V3 parent. Existing parent V3 successor refreshes are preserved without rewriting predecessor bytes beyond upstream master.

Local build and pwsh one-shot refresh passed. Persistent PowerShell completes the model turn but times out during process exit on both this layer and the updated V3 parent; an exact-master control is running before attributing that failure. PR-owned seed and coverage repairs are isolated follow-ups.
2026-09-07 13:08:26 +08:00
07akioni 0125f9019e revert: remove pwsh changes from desktop PR 2026-09-07 13:08:11 +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 403b978c6c Merge pull request #3626 from deepseek-harness/optimize/ci-compatible-selfhosted
ci: run isolated Node compatibility jobs on self-hosted Linux
2026-09-07 13:05:07 +08:00
_Kerman 78ee959a5b Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context 2026-09-07 12:58:58 +08:00
07akioni 694d250f7a Merge master and retain upstream CI synchronization fixes 2026-09-07 12:44:25 +08:00
Tianyi Cui a7ea2d74de docs: remove redundant compatibility runner guide 2026-09-07 12:42:02 +08:00
Tianyi Cui ac4fa3d6f5 docs: clarify compatibility runner scope and verification 2026-09-07 12:42:02 +08:00
mektpoy 03ce9c2ab3 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation
# Conflicts:
#	packages/terminal/terminal-bash/tests/local.spec.ts
#	snapshots/session/persistent-pwsh-tool-turn/session.v2.jsonl
#	snapshots/session/pwsh-tool-turn/session.v2.jsonl
2026-09-07 12:41:49 +08:00
Tianyi Cui a137256f80 ci: set compatibility toolcache after runner environment export 2026-09-07 12:41:23 +08:00
Tianyi Cui f7a18f49ff ci: isolate compatibility Node jobs on self-hosted Linux 2026-09-07 12:41:23 +08:00
Tianyi Cui fd9debed10 Merge branch 'master' into fix/environment-prompt-suffix 2026-09-07 12:41:16 +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
07akioni fbb385c58f test(web): pin replay timezone and await UI settlement 2026-09-07 12:40:26 +08:00
mektpoy d006772ab6 fix(goal): enforce durable pause at execution time 2026-09-07 12:39:54 +08:00
Tianyi Cui d49cbed379 Merge master and retain independent PR CI reliability fixes 2026-09-07 12:38:27 +08:00
Tianyi Cui b648d3712f Merge remote-tracking branch 'origin/master' into release/session-log-v3 2026-09-07 12:34:13 +08:00
Tianyi Cui 31090e240a Merge pull request #3643 from deepseek-harness/fix/ci-python-runtime-smoke-retry
fix(ci): 加固 Python runtime 构建——安装重试与凭据隔离
2026-09-07 12:29:43 +08:00
mektpoy 8188dc55f9 test(snapshot): make ACP diagnostic wait deterministic 2026-09-07 12:19:54 +08:00
mektpoy 35bc3a3c60 test(web): normalize browser timezone in snapshots 2026-09-07 12:12:02 +08:00
winewill 541dc51e9e fix(desktop): allow fs-ext in generated projects 2026-09-07 12:11:34 +08:00
_Kerman 8551b04e95 test(tool-subagent): use current session format in fixture 2026-09-07 12:11:18 +08:00
_Kerman b759ad91e8 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context
# Conflicts:
#	packages/subagent/subagent/src/continuation.ts
2026-09-07 12:09:06 +08:00
07akioni 8b250f5df5 test: synchronize console and shell readiness and pin browser timezone 2026-09-07 12:08:29 +08:00
mektpoy ed3c7efade test: sync pwsh snapshots and readiness 2026-09-07 12:02:24 +08:00
Tianyi Cui 24f6b30d10 test(web): isolate browser timezone and settle reference fixture queries 2026-09-07 12:00:18 +08:00
Tianyi Cui 60d3e32069 fix(test): await lazy grammar registration notifications 2026-09-07 11:54:10 +08:00
07akioni 1ed20364cd test(snapshot): refresh PowerShell fixtures 2026-09-07 11:51:59 +08:00
Tianyi Cui 571ee55ca6 test(web): pin recorded Cordis browser timezone 2026-09-07 11:38:36 +08:00
mektpoy ab62273984 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-07 11:37:52 +08:00
Tianyi Cui 64dfd7a425 fix(test): await Client Console subscription delivery 2026-09-07 11:35:13 +08:00
Tianyi Cui 313a8958c4 fix(test): pin minimal PowerShell fixtures and wait for exact prompt readiness 2026-09-07 11:23:54 +08:00
Tianyi Cui f5302b2b4d fix(test): isolate recorded Web browser timezone 2026-09-07 11:17:42 +08:00
07akioni 31b3f3bc44 Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	.agents/notes/archived/manifest.json
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.i18n.yaml
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.md
#	.agents/notes/archived/simplification/2026-07-31-drop-user-message-edit-stub.zh.md
#	.agents/notes/implemented/architecture/2026-09-05-canonical-feedback-log.i18n.yaml
#	.agents/notes/implemented/bug-fix/2026-09-05-nested-terminal-cards.i18n.yaml
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.zh.md
#	packages/boot/app-boot/README.i18n.yaml
#	packages/boot/app-boot/README.md
#	packages/boot/app-boot/README.zh.md
#	packages/client/connection/src/index.ts
#	packages/client/connection/tests/node-half.host.spec.ts
#	packages/shell/tool-pwsh-persistent/README.i18n.yaml
#	packages/shell/tool-pwsh-persistent/README.md
#	packages/shell/tool-pwsh-persistent/README.zh.md
#	pnpm-lock.yaml
#	tsconfig.host.json
2026-09-07 11:10:46 +08:00
Tianyi Cui 8def94aa5a test(sdk): record in-history admission in composed V3 PTC scenario
Capture the inherited SDK PTC scenario under the upper loop lifecycle using the real current writer. The shared V3 dispatch vocabulary and protected system head remain unchanged; title follows admitted header/context as in the other upper recordings.
2026-09-07 11:09:40 +08:00
Tianyi Cui 691861091f test(python): record upper V3 native event ordering
Regenerate current Python Session expectations through the real macOS arm64 SEA executable built from fdd44667b4b496093e765af57d3751dfb917d834. The native writer emits session/title after request/header and request/context. Update only five current V3 logs; result.json, minimal/model-visible.json, and minimal-in-history/prompt-history.json regenerate identically. All five V2 predecessors remain byte-identical to b2b300f9.

Build evidence: LEFTHOOK=0 pnpm install --frozen-lockfile --offline; pnpm exec tsx scripts/build-exe-for-python-sdk.ts --targets node24-macos-arm64 (full build, no skip-build): passed. file dist-exe/deepseek-harness-sdk-runtime-macos-arm64: Mach-O 64-bit executable arm64.

Smoke evidence: export PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=python/sdk/src:python/sdk-runtime/src; PY=/Users/cty/dsh-deploy/.agents/worktrees/sp-kv-sdk-evidence/tmp/py-sdk-venv/bin/python. For each scenario in sdk-snapshot sdk-restart sdk-minimal sdk-minimal-in-history, ran "$PY" scripts/smoke-python-runtime.py --exe dist-exe/deepseek-harness-sdk-runtime-macos-arm64 --scenario "$scenario" --update-snapshots, then the same command without --update-snapshots: all eight passed.

Helpers: PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=python/sdk/src:python/sdk-runtime/src uv run --offline --no-project --python /Users/cty/.local/share/uv/python/cpython-3.14.5-macos-aarch64-none/bin/python3 --with pytest --with "pydantic>=2.12,<3" python -m pytest python/sdk/tests/test_smoke_model.py -q: 28 passed. git diff --quiet b2b300f9 -- "scripts/snapshots/python-sdk-single-exe/**/*.v2.jsonl" and git diff --cached --check passed. No source, migration, test, or launcher changes.
2026-09-07 11:09:40 +08:00
Tianyi Cui 6cb0bc1e69 test(session): record upper V3 PowerShell admission order
Refresh both PowerShell native V3 cases with the installed PowerShell runtime so fallback title follows admitted request metadata consistently with the other upper-layer recordings. Refresh and independent replay both pass; historical inputs and output content remain unchanged.
2026-09-07 11:09:40 +08:00
Tianyi Cui afec36839d test(snapshot): refresh upper V3 ACP and Web event ordering 2026-09-07 11:09:40 +08:00
Tianyi Cui b2d1cd942e docs(token-meter): distinguish projection cache from Session V3
Align the in-history ownership note with compact projection checkpoint version4. Both PRs use Session format3; the projection cache version is independent and invalidates scalar caches without introducing another persistence format.
2026-09-07 11:09:40 +08:00
Tianyi Cui 1fb187b31e test(session): record final V3 admission order across native profiles
Regenerate only native V3 Session/output oracles through the shipped headless and SDK profiles. These outputs retain system-message admission before users, bind request metadata before title fallback, and record real V3 delivery acknowledgments. Historical V0/V1/V2 replay inputs remain unchanged; pinned scenarios keep separate writer outputs.

The upper headless/SDK refresh covered109 cases; the only initial failure used macOS system Python3.9 for the PTC Python scenario, which passed with the declared CPython3.14 PATH. No assertion or runtime behavior was changed to accommodate it.
2026-09-07 11:09:40 +08:00
Tianyi Cui 179699a8c8 test(snapshot): mark in-history scenarios as native V3 2026-09-07 11:09:40 +08:00
Tianyi Cui 621d03d003 test(trajectory): pass partial-window state to the assembler fixture
Forward the new headerless-window regression flag to replaceWindow instead of silently ignoring an extra test-helper argument. This makes the regression exercise a real incomplete history window and fixes the aggregate test typecheck without changing production behavior.
2026-09-07 11:09:40 +08:00
Tianyi Cui cea0aff474 fix(web): display known prompts in headerless history windows
Give appended Chat system messages their own cards and suppress the following initial or same-step update header card. Preserve replacement/header ownership and conservative unknown surface ordering. Trajectory uses prompt-only presentation when no request header is loaded, never fabricated provider, model, or tools; prepend deduplicates against real request changes. Test-first regressions showed missing Chat cards and missing trajectory prompt data; 148 focused tests and affected client project typechecks pass.
2026-09-07 11:09:40 +08:00
Tianyi Cui 4574602c07 fix(token-meter): distinguish compact caches from parent scalar version
The parent representation fix now correctly invalidates header-based caches with scalar state version3. The dependent in-history projection has a different compact live-surface schema and must not reuse that version. Advance it to4 and prove that a lower-layer version3 cache is discarded and refolded, alongside the existing version2 regression. No historical Session migration or compatibility mechanism is added.

Addresses ds-review-bot cache-version thread3921300994 across the stack. Validation:62 focused projection, adapter and admission tests passed; context.ts and breakdown-projection.ts each have100% exact-source coverage; paired README record updated.
2026-09-07 11:09:40 +08:00
Tianyi Cui 85421f31bc fix(agent-loop): detect first resumed pre-step replacement
Seed the request surface watermark from the attached session so a replacement before the first resumed request consolidates retained prompt versions. An unchanged resume still continues the series. Actual-loop replacement regression fails before the fix; 53 focused tests and the agent-loop project typecheck pass.
2026-09-07 11:09:40 +08:00
Tianyi Cui c562a4193c test(web): omit throughput for zero-duration skill seed
The normalized embedded stream in the skill seed contains no positive decode interval. Its rendered metrics correctly omit throughput rather than invent a rate. Refresh only the owning ARIA expectation after the full Web lane isolated this final mismatch; user/model/skill content and metric calculation remain unchanged.

Validation: owning refresh and subsequent read-only browser replay pass. The preceding full Web run had only this one expectation mismatch.
2026-09-07 11:09:40 +08:00
Tianyi Cui 6861ac7459 refactor(client): trust narrowed surface event markers
The in-operator narrows SessionEvent to events whose surfaceOp is required. Remove redundant undefined checks from both target Definitions; retain append-versus-replacement discrimination and shared prompt interpretation. This deletes dead conditions reported by the full type-aware CI lint gate without adding fallback behavior.

Validation: both Chat and Trajectory definition regression suites pass with the simplified predicates.
2026-09-07 11:09:40 +08:00
Tianyi Cui 044777fc2b docs(prompt): remove stale representation claims after integration
State the implemented empty-head reservation and messages-only summarization input in the feature note. Align the Chinese Chat contract with the shared surviving-surface interpretation rather than chronological predecessor selection. These localized corrections remove stale claims left by independently merged fixes without changing code or tests.

Validation: both bilingual pairs re-recorded and normal pairing hooks pass; the referenced runtime behavior is covered by the already executed empty-head, compaction and partial-window regressions.
2026-09-07 11:09:40 +08:00
Tianyi Cui f7b3f237bd test(session): target the admitted request header in spill replay
Synchronous admission finalization moves the first request/header to seq10 before the deferred title. Read that actual header rather than seq11 request/context so the spill scenario exercises a large canonical request record. Keep the inherited dynamic-locator verification and independent file-content oracle; the test now requires a real successful read and SPILL_CANONICAL_OK rather than recording shell failure.

Validation: targeted built refresh and subsequent read-only replay both pass with complete spilled JSON equal to the live request/header and the session_event_search schema present.
2026-09-07 11:09:40 +08:00
Tianyi Cui af87e576da test(token-meter): preserve shadow-price mismatch rejection coverage
The breakdown refactor correctly stopped consuming scalar shadow claims, but its old negative test was the only coverage of the pressure fold rejection path. Exercise the remaining real pressure consumer with mismatched start and end claims, preserving the runtime invariant rather than deleting or ignoring its guard.

Validation: Linux and Windows CI reported the two uncovered locations in surface-projection.ts. All118 token-meter tests pass and the exact pressure fold file now has100% statement, branch, function and line coverage.
2026-09-07 11:09:40 +08:00
Tianyi Cui 42955a346a test(python): record final admitted-input notification order
Refresh advanced and restart expectations through the final native packaged runtime. Synchronous request finalization places deferred fallback-title events after header/context in parent and child logs; expected SDK notifications must reflect that actual lifecycle instead of forcing the old incidental scheduling order.

Validation: the advanced mismatch was reproduced against the built macOS ARM64 executable, both owning scenarios refreshed, then the complete keyless --scenario all passed, including the new in-history prompt evidence and independent shell/file effects. No SDK runtime or normalizer behavior changes in this commit.
2026-09-07 11:09:40 +08:00
Tianyi Cui fc1bc118e9 docs: align generated admission contracts and SDK evidence
Regenerate the source-owned service and persistence catalogs after prepared-route admission and clear semantics changed. Synchronize exact bilingual declaration blocks and replace the obsolete SDK evidence gap with links to the recorded TypeScript notifications and Python prompt history. Keep generated descriptions tied to the source instead of preserving the old previous-context decision rule.

Validation: both changed catalog/note pairs passed scoped pairing and exact type-equivalence/graph checks passed in the preceding isolated documentation repair. Complete documentation gates are rerun on the final integrated tree.
2026-09-07 11:09:40 +08:00
Tianyi Cui 326f5ef869 test(session): refresh admitted-input ordering across shipped profiles
Request preparation now precedes durable user admission and finalization is synchronous. The title service intentionally defers fallback publication, so titles naturally follow request/header and request/context instead of landing in an incidental await gap. Refresh the actual headless, SDK, ACP and CLI recordings rather than adding a synthetic yield or changing title ownership to preserve obsolete ordering.

Keep every model response, user input, tool effect and identity relationship; review reordered title/header facts and remapped references. Current master also removes the base editor contribution, so shared schema pins follow the actual shipped profile. Historical generations remain unchanged: their test-only comparison orders title facts independently while preserving title payloads and references. Normalize only generated stream clocks in refreshed fixtures.

Validation: owning refresh runs passed current scenarios, CLI expected tier28/28, Web minimal/replay11/11 and targeted SDK in-history1/1. Read-only full built corpus passed127 cases with2 unavailable-PowerShell skips; its sole failure is the separately repaired historical invalid-citation negative control on the lower PR. Six retained historical comparison cases pass. No production behavior is changed in this commit.
2026-09-07 11:09:40 +08:00
Tianyi Cui 627747d8fa docs: synchronize prompt admission contracts and repair lifecycle diagram
Copy the current SessionEventMap prompt and route JSDoc into both subsystem references so type-equiv validates the prepared-route and clear-all semantics. Remove the Mermaid statement delimiter from the generated retry note while retaining the same lifecycle meaning; regenerate graph artifacts and confirm both bilingual pairs.

Validation: verify-type-equiv, verify-mermaid, verify-doc-graphs, scoped verify-translation-pairing, and git diff --check.
2026-09-07 11:09:40 +08:00
Tianyi Cui 2b363223da fix(agent-loop): clear noncanonical retained system content
A durable system message may contain multiple text blocks or other content. The runtime-context helper recognizes only one text block; treating an unrecognized system message as empty allowed clearing and incapable-route normalization to leave its instructions active. Keep undefined text distinct from genuinely empty content so every noncanonical node is replaced or cleared instead of silently skipped. Runtime-context snapshot equality remains unchanged.

Regression: a multiblock head and nontext tail previously survived a clear request; the new source-level case fails before this fix. Both system-prompt projection and actual-loop admission suites pass (21 tests).
2026-09-07 11:09:40 +08:00
Tianyi Cui 99cffb4de7 test(client): construct immutable multi-block system fixture
The system message content is readonly. Build a replacement fixture value for the multi-block extraction test instead of assigning into a readonly message property. Preserve the exact behavioral assertion without weakening production types or adding a cast that hides mutation.

Validation: aggregate client build exposed TS2540 at the mutation; all seven system prompt interpretation tests pass with immutable fixture construction.
2026-09-07 11:09:40 +08:00
Tianyi Cui 84e94d8394 test(token-meter): narrow optional projection state before checkpoint checks
The session projection API can return undefined when a unit is not registered. Assert the registered test fixture produced state before inspecting compact entries, rather than assuming a value that the current master type does not guarantee. This preserves the retained-state regression and adds no production fallback.

Validation: the aggregate build identified three TS2532 errors in this test; all context-breakdown projection cases pass after narrowing. Full build is rerun separately.
2026-09-07 11:09:40 +08:00
Tianyi Cui 1721a9c566 test(compaction): expect admitted instructions on metered retry
The meter regression deliberately rewrites the system node during request-error recovery. After the retry reconciliation fix, the next request must restore the captured admitted prompt rather than trust that temporary replacement. Keep the replacement stimulus and zero-delta metering assertions, but compare the retried prompt with the initial request so the two independently corrected components are tested together.

Validation: the combined regression run exposed this obsolete retry-text expectation while 945 other cases passed; all eight compaction-loop-repro cases pass with the admitted-prompt assertion.
2026-09-07 11:09:39 +08:00
Tianyi Cui 7e253f3995 test(llm-deepseek): isolate in-history cache retention evidence
Namespace prompt prefixes per invocation and compare appended updates against an identical warm request. Check exact pre-dispatch message prefixes and stopped responses; use the same latest prompt for rewritten-head control, without an artificial Updated prefix or assumed cache block size. This measures provider behavior, not loop capability selection.

Validation: serialize.spec.ts 54 passed; adapter.spec.ts 154 passed after offline dependency install resolved collection failures; focused e2e selector collected and skipped without standard key/model configuration; focused staged-config lint and git diff --check passed. No live provider result claimed.
2026-09-07 11:09:39 +08:00
Tianyi Cui b3116b6048 fix(client): derive effective system prompts from surviving surface nodes
Chronological lookup keeps B after compaction shadows it even though the model sees surviving head A and no system event is emitted. Share pure extraction and compact immutable surface interpretation through uiConversation; target-owned Definitions preserve historical cards. Track inherited surface positions in a map containing only surviving replacement endpoints. No full-log scans or prompt work on ordinary messages/chunks.

A partial window cannot infer the order of older unindexed endpoints: pre-window [head seq5, tail seq3], followed by replacements 3->6 and 5->7, must not report seq7 as effective. Withhold subsequent prompt text until prepend reconstructs the prefix; exact pure and both target regressions cover unavailable -> C. Drop shadowed replacement-index entries; repeated rewriting one node keeps one entry, while historical prefix maps remain immutable. Current replacement work is O(S+P), where S is surviving system nodes and P surviving replacement endpoints; history retains per-prefix copies, not an unbounded linked chain.

Coverage includes A->B->C, A->B->compaction->A without a system event in replay/live/partial windows, chained nonmonotonic replacements, empty tails, head rewrites, unknown ordering, inherited prompt withholding, and index pruning. Focused suites total 89 passing cases; rebuilt trajectory smoke 3 passed. Affected client types/lint/bundles, diff checks, and 33/33 doc-sync gates passed. README EN/ZH and owning note updated. Parent owns final GUI/recorded-session evidence; no server started.
2026-09-07 11:09:39 +08:00
Tianyi Cui 9c8884284f test(sdk): record in-history system prompt updates in both clients
Cover the missing SDK projections through shipped dsh profiles. TypeScript reuses the headless read-completion composition and records SDK notifications. Python all includes a focused minimal-profile variant with an ordinary prompt section updated after shell completion, unchanged tools, persisted/subscribed append events, and independently checked editor output.

Observed: focused TS refresh and built replay passed (1 test); Python sdk-minimal-in-history and sdk-minimal passed against apps/cli/lib/bin.js using uv; unchanged-prompt negative control failed as expected then restored scenario passed; corpus 3 tests, doc-sync 33 gates, and lint:contracts-ready passed. Host-only build initially left SDK built startup incomplete; build:lib:client completed the prerequisites. Native packaged/wheel and Windows validation remain pending parent integration.
2026-09-07 11:09:39 +08:00
Tianyi Cui 8d0bf14eb6 docs(notes): remove superseded in-history prompt proposal
The proposed and implemented 2026-09-02 feature triplets record the same decision. Keeping the proposal active presents obsolete node-0/config-change rules as live work even though PR3483 already shipped the capability. Delete the complete proposed EN/ZH/sidecar triplet rather than archive a proposal or retain a redundant rejection.

Read both complete bilingual notes before consolidation. The implemented owner already retains the motivation, all five proposal alternatives, cache cost and proxy/model risks, capability validation, and current snapshot/e2e evidence. Preserve the still-valid unchanged-prompt/resume lifecycle verification and both SDK typed appended-event expected-output requirement in its Testing paragraph. Explicitly identify missing SDK appended-event coverage instead of treating the headless snapshot as SDK evidence. Do not revive the obsolete plan-mode fixture or absolute cache-hit inequality; the implemented note records the shipped fixture and comparative e2e assertion.

Only the implemented Testing paragraph and pairing record change. Runtime, accounting, UI, and frozen archived notes are untouched. Active inbound references already target the implemented owner, so no link retarget is necessary. This commit addresses only the reviewed lifecycle/consolidation finding.

Focused evidence (all exit 0): pnpm install --frozen-lockfile; pnpm run verify-translation-pairing --write .agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.md (1 record written); pnpm run verify-translation-pairing .agents/notes/implemented/feature/2026-09-02-in-history-system-prompt-replacement.md (1 named pair consistent); pnpm run verify-md-links (1381 files, all links/fragments resolve); pnpm run verify-agent-note-format (246 notes conform); git diff --check; git diff --cached --check. Full combined doc-sync remains with the parent integration branch after runtime fixes; no full gates, push, rebase, or hook bypass.
2026-09-07 11:09:39 +08:00
Tianyi Cui 095c51aa1c fix(ui-trajectory): compare consecutive prompt updates with latest state
An in-history route can append A, B, and C without another request/header. The system-message Definition read only the prior real header, so C incorrectly reported A as its previous prompt. Select the newer real or synthetic header through the existing indexed predecessor reader; preserve target-owned Definitions and avoid any log scan.

Add replay and per-event live A -> B -> C regressions. Both fail before the fix with previous=A and pass with previous=B. All 13 trajectory Definition tests pass; focused staged lint, bilingual pairing, and diff checks pass. Update the trajectory README pair and owning design note.
2026-09-07 11:09:39 +08:00
Tianyi Cui 6525195953 fix(token-meter): classify surviving prompts in surface order
Scalar shadow prices cannot restore an earlier effective prompt when compaction removes the newest system node: subtracting that price from messages can permanently make the published bucket negative. Reuse the positional measurement planner over compact current surface entries and choose the last nonempty system by surface order, not event sequence or provenance citations.

Explicitly trade the scalar checkpoint for O(current retained surface) state, dropping shadowed entries and message bodies. Version 3 invalidates old scalar checkpoints; pure transitions preserve wire identity for same-price rewrites. Cover newest/middle removal, reversed sequence ranges, extra sources, empty fallback nodes, replay and late registration, cache version rejection, and route-independent heuristic totals. Document the bounded-state exception and rejected prompt-only ancestry approach in both languages.
2026-09-07 11:09:39 +08:00
Tianyi Cui 4028686136 fix(agent-loop): clear every retained system instruction
Use the same logged per-node normalization for an empty rendering as for incapable routes and broken request series: empty each active later system node, then empty the first node. Clearing only the latest node exposes stale earlier instructions, including converter-demoted user text. Dormant empty tails neither override effective text nor produce repeated replacements.

Keep the cleared structural head and ordinary restoration semantics: a capable continuing series may append new nonempty instructions, while incapable or broken-series requests refill the head. No initial empty-head creation change, deletion event, or rollback machinery.

Tests: capable/plain clearing after three active prompt versions fails before the fix and passes afterward; repeated clear and seeded resume remain empty without duplicate system events, restoration includes only new instructions, pi-ai conversion has no stale prompt, and source-event replay reconstructs every request. Final 395 loop tests pass with exact agent.ts/runtime-context.ts coverage at 100% all metrics; source tsc and focused lint pass. Fix new test discriminant narrowing discovered by focused compiler audit. Update EN/ZH consumers and owning rationale, seven pairs verified; parent owns broad gates and generated catalog/SDK/GUI updates.
2026-09-07 11:09:39 +08:00
Tianyi Cui 425a0a55e3 fix(agent-loop): reconcile prompts after retry compaction
Every same-step attempt resolves its bound route and reconciles the accepted rendered prompt against the current surface before deriving history. Preserve assembly, pre-step admission and entered users exactly once; compaction retries must not resurrect an older surviving prompt.

Normalize a broken request series to the current head plus dormant empty later system nodes, even if later versions survive or the effective text is unchanged. This removes the later-survivor exception without a delete operation and avoids appending instructions after already-admitted users on retry. Capture surface generation after reconciliation so subsequent ordinary retries do not emit phantom series headers.

Tests: both compaction cases fail before the fix (stale head, or stale later survivor), then pass with real loop/MockAdapter, pi-ai conversion and source-event reconstruction. Assert two retries keep one assembly/pre-step/user admission, preserve rendered text across section changes, and log one series boundary. Add unchanged-text explicit/tool series regressions. 391 loop tests with exact agent.ts/runtime-context.ts coverage pass at 100%; final admission spec has 11 passing cases. Source tsc and focused lint pass. Update EN/ZH implementation and owning rationale plus lifecycle retry documentation.
2026-09-07 11:09:39 +08:00
Tianyi Cui 2ce9738564 fix(agent-loop): admit prompts under the prepared route
Resolve agent/request and prepareCall inside the accepted open step before committing system and user input. Preserve prompt-assembly model selection, bind capability and dispatch to the same prepared adapter, then log the envelope and derive the request synchronously. Preparation cancellation leaves a balanced empty step with no admitted input.

Normalize incapable-route retained prompt versions with logged per-node empty replacements and a current head, including unchanged rendering and resumed history. Dormant empty tails do not override the effective prompt. No new event or delete operation.

Tests: 389 agent-loop cases pass with exact agent.ts/runtime-context.ts coverage at 100% for all metrics; tsc -b packages/core/agent-loop/tsconfig.json passes. Seven actual-loop MockAdapter cases exercise pi-ai conversion, source-event reconstruction, both route transitions, resume, cancellation barriers, and bound selection. Stale-capability negative control fails all three transition regressions. Update EN/ZH request visibility, lifecycle generator, and owning rationale. Broad catalogs, recorded SDK/GUI and aggregate gates remain parent-owned.
2026-09-07 11:09:39 +08:00
Tianyi Cui c988a6796f feat(agent-loop): append system prompt changes on capable routes
Consolidate the existing in-history capability, loop, UI and artifacts into one baseline. Preserve the reviewed tree so each independently verified correction has a subsequent rationale-rich commit.
2026-09-07 11:09:39 +08:00
Tianyi Cui fcbadb07db fix(benchmarks): keep Session opening fixture migratable to V3
Begin each synthetic step before its user surface message so the structural V2-to-V3 migration can reserve its protected system head without reordering historical events. Keep the workload size, frame partition, original chunk provenance, and every timing/heap budget unchanged.

Add a small real persistence migration/publication/reopen prerequisite that preserves all user and assistant content and original V0 bytes. Both this regression and bounded stderr-headline regression fail before the fix and pass afterward. Worker errors retain a bounded head and tail instead of hiding migration refusal behind a generic stack tail.

Validation: full Session-opening benchmark16/16 passed, including all six128MB completion cases; focused full type-aware lint passed. First Agent resume median178.7ms and reopen27.4ms are below unchanged450/100ms budgets.
2026-09-07 11:09:36 +08:00
Tianyi Cui 237b3d5edf fix(test): synchronize pwsh completion and refresh profile snapshots 2026-09-07 11:07:19 +08:00
Tianyi Cui f7c5621db6 test(snapshot): refresh current V3 PowerShell fixtures
Refresh both current-writer successors with the real PowerShell runtime and existing headless composition. Align their owned prompt/schema pins with installed tools; retain every historical Session generation and the recorded model/tool behavior.
2026-09-07 10:54:56 +08:00
Tianyi Cui 15345af731 fix(test): synchronize console enablement and verify fresh SDK file content 2026-09-07 10:43:46 +08:00
Tianyi Cui beb23febfd Merge branch 'master' into fix/environment-prompt-suffix 2026-09-07 10:43:43 +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 4158a81188 test(snapshot): cover cleanup when spill allocation fails 2026-09-06 22:55:17 +08:00
Tianyi Cui 362ee7931d fix(test): isolate recorded spill and sandbox fixture storage 2026-09-06 22:44:54 +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 350dcad963 fix(test): allocate sandbox snapshot outside temp grants on runner volume 2026-09-06 22:04:52 +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 6ad0799419 test(cli): seed diagnostic parent with native system head 2026-09-06 21:35:03 +08:00
Tianyi Cui 4107ae7516 test(sdk): record combined V3 PTC system-message notifications
Refresh the inherited SDK PTC scenario through the native V3 writer so its protocol oracle includes the protected system head. The generated Session remains unchanged and independent replay passes.
2026-09-06 21:35:03 +08:00
Tianyi Cui 71b0d83822 Merge current V3 PTC vocabulary into system-prompt representation
Compose the shared release branch PTC rename with the structural system-head migration in the existing V2-to-V3 stage. Audit source payloads and remap local coordinates before renaming dispatch vocabulary and owned plugin attribution; retain original message identities and generation-qualified references. Native V3 validation combines the same system and PTC lifecycle semantics through a private released-validation view.

Reuse the V3 row-admission owner in current JSONL scanning before recoverable-tail suppression, so malformed rows cannot hide retired required PTC tags or header.system. The new corruption-prefix regressions and all173 existing JSONL scanner tests pass. Combined migration/catalog/persistence suite:300 tests; executable V3 migration source has100% coverage. No released generation, prior migration implementation, shared release branch, benchmark or CI workflow is modified by this integration.
2026-09-06 21:33:35 +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 5f2c676581 test(cli): author native v3 inheritance replay fixture 2026-09-06 21:19:41 +08:00
Tianyi Cui a4dcff874e fix(scripts): validate historical fixture layout with source codecs 2026-09-06 21:18:49 +08:00
Tianyi Cui 83b11feb70 Merge pull request #3635 from deepseek-harness/session-v3/ptc-durable-vocabulary
feat(session): 在 V2→V3 中迁移 PTC 持久化词汇
2026-09-06 21:18:26 +08:00
Tianyi Cui 2890cf3a18 docs(replay): regenerate catalog after removing notification shim
Keep the generated configuration source pointers aligned with the smaller replay module. No configuration semantics or public runtime behavior changes.
2026-09-06 21:16:39 +08:00
Tianyi Cui b47bfa711b test(session): pin structural v3 chain expectations 2026-09-06 21:12:50 +08:00
Tianyi Cui ab74a93ed3 test: compare current notification outputs without legacy migration shim 2026-09-06 21:11:39 +08:00
Tianyi Cui 449fb9c71e docs(notes): remove duplicate promoted system-prompt proposal
The implemented owner at .agents/notes/implemented/architecture/2026-09-02-system-prompt-as-surface-node.md retains the decision, alternatives, consequences, and verification. Remove only the reintroduced pre-promotion triplet under the lifecycle rules in .agents/notes/README.md; the dependent feature proposal already links to the implemented owner. No proposal archival or body rewrite is needed.
2026-09-06 21:06:54 +08:00
Tianyi Cui cfc10f7e1f test(session): keep migration assertions type-aware
Treat Vitest asymmetric matchers as unknown expected values and spell void assertion callbacks explicitly. This preserves the migration identity and refusal checks under the full type-aware lint configuration without relaxing validation or suppressing a rule.
2026-09-06 21:00:21 +08:00
Tianyi Cui e9957a2671 test(python): record native V3 delivery provenance
Regenerate advanced and restart expectations through the shipped macOS arm64 SEA runtime built from 0521815d45. Real delivery-accepted events now record sessionFormatVersion 3 in the five V3 logs and advanced SDK notifications. Restart result.json and requests.json regenerate identically. Preserve all five V2 predecessors byte-for-byte from b2b300f9; no production, migration, launcher, or test changes.

Evidence (macOS arm64): pnpm exec tsx scripts/build-exe-for-python-sdk.ts --targets node24-macos-arm64 passed, including the full pnpm build. file dist-exe/deepseek-harness-sdk-runtime-macos-arm64 reports Mach-O 64-bit executable arm64.

For each SCENARIO=sdk-snapshot,sdk-restart: PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=python/sdk/src:python/sdk-runtime/src /Users/cty/dsh-deploy/.agents/worktrees/sp-kv-sdk-evidence/tmp/py-sdk-venv/bin/python scripts/smoke-python-runtime.py --exe dist-exe/deepseek-harness-sdk-runtime-macos-arm64 --scenario SCENARIO --update-snapshots passed; the same two commands without --update-snapshots passed.

PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=python/sdk/src:python/sdk-runtime/src uv run --no-project --python /Users/cty/.local/share/uv/python/cpython-3.14.5-macos-aarch64-none/bin/python3 --with pytest --with pydantic>=2.12,<3 python -m pytest python/sdk/tests/test_smoke_model.py -q: 28 passed. Earlier helper invocations lacked pytest or SDK imports; corrected environment passed without source changes. git diff --quiet b2b300f9 -- scripts/snapshots/python-sdk-single-exe/**/*.v2.jsonl and git diff --cached --check passed.
2026-09-06 20:58:57 +08:00
Tianyi Cui 49e1050092 fix(session-format): narrow repair identities for native validation
Require a string call identity before constructing the private repair-validation prefix; do not stringify arbitrary durable JSON. Remove a redundant narrowed version comparison and use explicit void test callbacks.

Verified full type-aware package Oxlint (90 rules), all 71 focused cases with 100% exact V3 statements/branches/functions/lines, and host TypeScript build. No coverage ignores or broad lint exceptions.
2026-09-06 20:58:57 +08:00
Tianyi Cui 9e5f8a1e44 test(session-format): cover V3 durable admission branches
Exercise malformed source envelopes, feedback metadata, file attachments, native system ownership, protected head replacement, started versus repaired tools, dangling coordinate mappings and successful compaction ranges. The focused package suite now has 71 cases with exact V3 source coverage at 100% statements, branches, functions and lines.

Remove unreachable rechecks after owned payload validation instead of adding artificial tests or coverage ignores. Unseeded inherited markers already fail at arrival; message arrays and IDs are validated before observation. Bind the unchanged frozen decoder run callback without an unreachable wrapper.
2026-09-06 20:58:57 +08:00
Tianyi Cui 5c48f8101a test(session): retain positive predecessor migration lifecycle coverage
Construct supported historical inputs with the first surface inside step/start instead of weakening publication, singleflight, packed-row, and read-handoff assertions into refusal cases. Account for the inserted empty system head and shifted event sequence when V2 rows become V3; preserve exact native V3 expectations and original source bytes.
2026-09-06 20:52:37 +08:00
Tianyi Cui 6579d53a97 test(sdk): preserve current V3 output and shared-base message spacing
Keep structural system-message V3 recordings when taking the release branch spacing fix, rather than reintroducing retired header.system snapshots. Refresh native SDK delivery evidence and the retained multi-turn writer oracle; historical V2 inputs remain byte-for-byte inherited from the release base. Document generation-aware fixture storage checks so current child invariants stay enforced without rewriting retired historical roles.
2026-09-06 20:51:27 +08:00
Tianyi Cui 8f48afe851 test(session): record native V3 writer oracles without rewriting history
Retained V0/V1 fixtures remain replay inputs while writer.expected JSONL records the actual current V3 output. Record these through the shipped headless scenarios rather than reverse-normalizing system messages back into historical headers. Preserve generation-qualified reference provenance, and correct the unreleased PowerShell seed to start its step and protected system head before user surface input.

Validation: the structural migration, real persistence, corpus and snapshot-support gate passed616 tests with one intentional skip; all91 headless refresh cases pass after the audited assistant-attempt source handling. Every predecessor path remains restored to the shared V3 base, and generated changes are confined to V3/output oracles and current tool schema pins.
2026-09-06 20:45:00 +08:00
Tianyi Cui ab7f19cd3d test(session): refuse frozen pre-step fixture at current open
Current V3 promotion must preserve chronology, so historical user surfaces before the first step are unsupported. Assert refusal for read and write opens, preserve source bytes and identity, and forbid intermediate or current publication. Frozen codec validation remains in its existing owner tests; V2 no-downgrade coverage lives in v2-system-migration.spec.ts.
2026-09-06 20:45:00 +08:00
Tianyi Cui c09ca68e6f test(session): pin deliberate historical corpus refusals
Keep supported generations and native V3 restoration mandatory. Enumerate only chronology-preserving migration refusals by source path, generation and exact typed reason; retain headerless harness protocol examples separately. Verify source bytes remain unchanged and reject stale, widened, or current-generation exceptions.
2026-09-06 20:45:00 +08:00
Tianyi Cui 3d898cb954 test(session): cover V2 system prompt persistence migration 2026-09-06 20:45:00 +08:00
Tianyi Cui d551f5a118 test(session-snapshot): pin migrated empty system head 2026-09-06 20:45:00 +08:00
Tianyi Cui e6499cd2cc test(session-snapshot): preserve historical retired fixture roles 2026-09-06 20:45:00 +08:00
Tianyi Cui 6f5fc05ea3 fix(session-format): admit audited V2 corpus payloads
V2 assistant attempts have no V0 semantic dispatch case: validate their exact V2 members and positive step coordinates locally while preserving the embedded stream. Explicitly classify agent-message relay attribution and file attachment metadata; both preserve foreign identities and non-Session byte counts, and reject unknown members.

Native V3 request headers retain current extension fields while rejecting retired header.system, independently of the closed V2 migration inventory. Add direct and multihop attempt regressions, exact source/file negative cases, and native header roundtrip coverage. All 41 focused tests and host tsc pass; scoped lint and bilingual pairing pass.
2026-09-06 20:45:00 +08:00
Tianyi Cui 9fa3c8e7f6 build(session): link V3 source-validation dependency
The structural V2-to-V3 edge reuses the frozen V0 payload and relationship helpers through their public package exports. Record the explicit workspace dependency so clean installs resolve the same validation code without editing a released migration package.
2026-09-06 20:45:00 +08:00
Tianyi Cui e04cfc4c87 feat(session-format): migrate V2 prompts into V3 system surfaces
Stream an empty protected head after the first step and replace it before changed or cleared request headers, without moving source events. Remap only audited local sequence references, derive inherited cuts after upstream cardinality changes, and preserve generation-qualified captures and message identities.

Refuse pre-step surfaces and out-of-step prompt changes rather than invent lifecycle events. Reject unclassified migration payloads and detect deterministic generated-ID collisions in either source order. Native V3 accepts empty and in-history system messages, protects only the head, and reuses frozen relationships through a private nonescaping projection; historical repair IDs remain opaque.

Keep released codecs untouched and distinguish migration admission from native extension admission. V3 structural payload preflight cannot disappear behind recoverable row corruption. Validation: 35 focused tests, host TypeScript build, focused Oxlint, documentation quick gates and paired README recording. Parent owns installed-core/catalog/persistence integration and lockfile propagation.
2026-09-06 20:45:00 +08:00
Tianyi Cui 9efabace86 docs(snapshot): separate historical inputs from V3 writer oracles
Keep retained canonical generations selected for replay and compare native V3 output against dedicated writer expectations. Remove the reverse historical projection claim; official migration correctness remains independent of native event layout.
2026-09-06 20:45:00 +08:00
Tianyi Cui a592e70ebc test: compare packed history using its released codec expansion 2026-09-06 20:45:00 +08:00
Tianyi Cui 1a9bef60c2 test: separate native V3 writer expectations from historical replay 2026-09-06 20:45:00 +08:00
Tianyi Cui 19fdc37448 docs(session): define V3 system-head migration guarantees
Record order-preserving structural conversion and strict refusal instead of an identity edge; distinguish native writer layout and local references from historical delivery facts. Keep released generations frozen and one evolving unreleased V3 target, with canonical envelopes composing afterward.
2026-09-06 20:45:00 +08:00
Tianyi Cui 8cdc6eba02 test(session): preserve released fixtures with corrected V3 successors
Restore all 147 historical canonical fixtures changed by the lower branch to exact shared base 220ff708e3628a9be46d9747d09af6d8cd742f0d bytes (145 V2 and two V0). All 180 committed V0/V1/V2 canonical files now have zero diff against that base, including unchanged Python, test-support and preview sources.

Preserve corrected lower writer bodies in 146 V3 successors across 119 owner directories: replace 135 unreleased V3 counterparts and add 11 siblings. Change only each copied Session header version; preserve all body bytes, raw model streams, inline images, IDs, references and historical delivery generation markers. Remove two unshipped V2 additions after creating their V3 sibling: record-suite/rec-pin and empty-response-retry-current.

Keep six explicitly historical snapshot owners pinned with no V3 sibling. Restore the two pre-step V0 record child sources without synthesizing current output. Fix seven embedded Session header versions in exactly five test-support behavior owners whose output filenames already select V3. Leave protocol expectations, shared references, sidecars, consumer scripts and production migration/normalization code untouched.

Validation: purpose-built temporary Python inventory and verifier checked 337 canonical headers, 3714 successor JSON rows, message roles, contiguous child roles, exact successor bodies, all 180 historical base bytes and zero git diff, noncanonical JSONL immutability, six retained owners and six unchanged preview fixtures. git diff --cached --check passed. Temporary generators removed. Strict migration, native refresh and replay remain pending parent integration; unsupported pre-step sources are reported separately.
2026-09-06 20:45:00 +08:00
Tianyi Cui 7af8a596ce test(llm-pi-ai): keep rejection assertions type-safe
Use a typed expected failure object and the current toThrow matcher in the new leading-system-image regression. This preserves the rejection test while avoiding deprecated matcher and unsafe-any diagnostics from the full type-aware lint gate.
2026-09-06 20:44:39 +08:00
Tianyi Cui eba829784b fix(token-meter): invalidate header-based breakdown caches
Address ds-review-bot thread 3921300994 (PRRT_kwDOS3Pfcs6eyLsu). contextBreakdown now folds system/message instead of request/header.system, so version-2 checkpoints have different semantics even though their numeric fields still pass the current schema. Bump the lower projection to stateVersion 3 so cache-only reads omit old values and restore replays the full log; derived caches are not covered by the Session-log persistence compatibility waiver. No migration or fallback is added.

Regression seeds a schema-valid v2 row at the current watermark with stale system/message prices. Before the bump, cache views returned it, restoreFloor selected seq 2 rather than 0, and restore retained system=0/message=17 instead of system=8/message=9. After the bump, the 13-test owning suite passes and exact src/breakdown-projection.ts coverage is 100% statements, branches, functions, and lines; refreshed rows equal a fresh fold at version 3. Existing token-meter README prose documents the current system/message fold without a version literal, so it needs no edit.

Propagation requirement: the upper layer already uses version 3 for a different compact cache representation. Advance that layer to version 4 when propagating this fix to avoid assigning one version to two schemas.
2026-09-06 20:44:39 +08:00
Tianyi Cui 454b80b90e fix(llm-pi-ai): reject leading system images before splitting
Address ds-review-bot thread 3921300999 (PRRT_kwDOS3Pfcs6eyLsz). The synchronous conversion removed a leading system message before its image check, silently discarding image-only, mixed, and nested image content. Reuse assertSupportedImageRoles on the unsplit history, matching the image-aware path without changing text prompt precedence or user-image storage requirements.

Regression: all three leading-system image cases failed against 8082f4a950 (expected rejection, received a context). The focused context suite now passes 20 tests, including both conversion paths, no attachment reads on rejection, empty/text leading prompts, later systems, and explicit options.system precedence. Exact src/context.ts coverage is 100% statements, branches, functions, and lines. Updated the paired README limitation and synchronous JSDoc.
2026-09-06 20:44:39 +08:00
Tianyi Cui fe2ac749b9 test(web): refresh plan and goal recorded session metadata
These two current fixtures already contain system/message, so searching
only for stale request/header.system misses their persisted replay drift.
Both omit the shipped standard agentPreset. Plan exit must replace the
first system message (sequence 10), not append a second system prompt.
The Goal fixture's first get_goal result must reference its own tool call
at sequence 18 rather than the preceding bash call at sequence 16.

Refresh both owning browser scenarios. Retain the writer's canonical
embedded Assistant stream packing and refreshed timing where repacking
requires it. Expanded stream chunks, all 44 user/model/tool messages and
calls, and the deliberate shuf command failure remain unchanged. The
plan title remains before request/header on this lower branch. No UI,
runtime, normalizer, test-driver, or frozen v0/v1 files change.

Evidence at lower d29574fed9, reusing the dedicated tree's own prior build
(the intervening subagent spacing edits do not affect these owners):
- DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/{plan-review,goal-multi-turn-actions}.e2e.ts: before refresh, both owners failed persisted-session comparisons.
- DSH_SNAPSHOT=refresh pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/{plan-review,goal-multi-turn-actions}.e2e.ts: 2 files passed, 4 tests passed, 1 record-only test skipped (10.24s).
- DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/{plan-review,goal-multi-turn-actions}.e2e.ts: 2 files passed, 4 tests passed, 1 record-only test skipped (10.24s).
- JSON payload comparison: all 44 messages/calls and expanded chunk content
  across all 14 Assistant streams preserved; stream timing is excluded.
- git diff --check passed; only the two current session.v2.jsonl files changed.
2026-09-06 20:42:44 +08:00
Tianyi Cui f92eff58e0 test(web): align seeded expectations with resumed system prompts
Require exactly two System prompt controls for the unchanged-header resume fixture, and pin the repeated prompt in both collapsed and expanded subagent history. Keep all branch eligibility, disabled action, cancellation, disclosure, and inventory assertions intact.

Refresh stale July 25 clocks only where canonical fixture createdAt=0 already selects the seedSession near-now anchor. Preserve nonzero historical timestamps and the existing normalizer: do not conceal calendar differences globally. Update navigation read paths to the recorded workspace subdirectory and omit decode throughput for the zero-duration Bash cancellation stream.

Evidence: own frozen install and full build; baseline eight-file replay 10 failed, 37 passed, 3 record skips plus stale question teardown; six-file ARIA refresh 36 passed, 2 record skips; final read-only eight-file replay 47 passed, 3 record skips after separately authored Web fixture prerequisite eaa5277d82. Baseline exact count rejected 2 versus 1 and old date/prompt goldens rejected actual output. No Session generation, helper, runtime, or normalization edits in this commit. Live/question source mismatch is repaired solely by the prerequisite; their passing ARIA and skill goldens stay unchanged.
2026-09-06 20:42:44 +08:00
Tianyi Cui ae2be09813 test(web): refresh stale system-message session fixtures
Fourteen current Web v2 fixtures still store the system prompt in
request/header.system and omit system/message. The built Cordis owner
passes its five behavior assertions but fails persisted-session replay.
Refresh thirteen owning recorded scenarios and update the authored pwsh
seed input to carry the same system text as a message event.

Keep the lower branch's title-before-header order. Preserve all 90
user/model/tool messages and all 35 recorded Assistant streams, including
timing. Only the system event, header field removal, message identifiers,
and their sequence references differ. Frozen v0/v1, UI goldens, runtime,
and normalizers remain unchanged.

Evidence on macOS, base 8d66f7c917:
- pnpm install --frozen-lockfile && pnpm run build: passed.
- DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/cordis-tool-round.e2e.ts: before repair, persisted replay failed after 5 behavior tests passed.
- DSH_SNAPSHOT=refresh pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/{approval-composer,cordis-tool-round,feedback-command,file-upload-round,replay-round-trip,lifecycle-chrome,live-interactions,permission-policy-context,ptc-round,question-composer,steering,turn-tail-actions,web-search-round}.e2e.ts: 13 files passed; 71 tests passed, 2 record-only tests skipped.
- PATH="/tmp/pwsh:$PATH" DSH_SNAPSHOT=refresh pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/pwsh-terminal.e2e.ts: 2 tests passed with existing PowerShell 7.4.6.
- PATH="/tmp/pwsh:$PATH" DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.web.config.ts apps/web/tests/{approval-composer,cordis-tool-round,feedback-command,file-upload-round,replay-round-trip,lifecycle-chrome,live-interactions,permission-policy-context,ptc-round,pwsh-terminal,question-composer,steering,turn-tail-actions,web-search-round}.e2e.ts: 14 files passed; 73 tests passed, 2 record-only tests skipped (102.62s).
- Exact base/current JSON comparison: all 14 files equal base plus the system event, header.system removal and deterministic ID/sequence remapping.
- No current Web v2 request/header.system remains; git diff --check passed.
2026-09-06 20:42:44 +08:00
Tianyi Cui 7901c6bc9c test(replay): type decoded fixture records without unsafe any
Give JSON.parse results in the unexpected-header regression their actual record type before searching by event tag. Preserve the forbidden-field oracle while satisfying the full type-aware lint rules; do not weaken lint or production parsing.

Validation: exact-head Linux artifact CI reported unsafe-return and unsafe-member-access in this regression. The owning replay suite passes after the local typed result correction.
2026-09-06 20:42:44 +08:00
Tianyi Cui 616803de74 test(session): verify the live session-query spill locator
Replace the replay's fixed temporary-root find command with the existing fromRequest capture of the preceding session_event_read result. Quote the exact returned file and use portable grep -Fq/printf checks; emit SPILL_CANONICAL_OK only after request/header and session_event_search are present. Preserve the owning layer's seq11 request/header target.

Before cleanup or fixture refresh, require both successful tool results and the exact verification marker, read the returned spill file independently, and compare its complete JSON to the live request/header event. This prevents accepting a failed verification transcript or an unrelated/incomplete spill after event ordering changes. No runtime or error-text normalization changes.

Evidence: nonexistent recorded-root negative control fails at the marker assertion (bash exit 2 still carries isError:false). Focused keyless refresh, read-only source replay, built-profile replay, corpus ownership guard, and focused driver lint pass. Host/client library builds pass. Portable POSIX command reviewed; Linux CI remains the platform confirmation.
2026-09-06 20:42:44 +08:00
Tianyi Cui 77b6b10c21 fix(ui-chat): preserve prompt cards on resumed requests
A resume header starts a visible request series even when the system node text is unchanged. Include resume in the request-prompt visibility predicate so full history and an older-page prepend retain the restart card. Keep startsSeries handling and existing regression assertions unchanged; align the local JSDoc and README pair.
2026-09-06 20:42:43 +08:00
Tianyi Cui 237ed693c1 test(session): adapt upstream spill fixture to system surface node
Carry the newly merged current-writer spill recording through the representation change on its owning PR. Add the system surface message and remove header.system, while retaining the representation layer title-before-request order and every captured spill/source fact. The dependent admission PR separately records its changed title scheduling.

Validation: JSON records parse; the same recorded scenario was refreshed through the built integrated loop. Only layer-specific title order differs, and both variants are replayed before publication.
2026-09-06 20:42:43 +08:00
Tianyi Cui af07d59d10 test(session-reference): capture the actual pre-spill watermark
The source fixture now contains the system surface node, so a literal sequence13 no longer names its captured tail. Record the source watermark before saveText mutates the session and assert that exact independent observation. This continues proving the spill uses the pre-mutation capture without coupling the test to unrelated fixture event counts.

Validation: the newly merged upstream regression failed with expected13 versus actual14; the session-reference suite passes with the captured watermark assertion.
2026-09-06 20:42:43 +08:00
Tianyi Cui 1616c99dae test(snapshot): expect rejection of invalid historical citations
The historical-comparison negative control replaces title.messageSeqs with [0], which cites a non-human event. The current Session validator correctly rejects this before normalization; comparing the malformed result for inequality made the otherwise passing built snapshot lane fail.

Assert the specific earlier-human-message validation error for that malformed control. Keep the valid prompt and model difference comparisons, every citation field, and all production restoration and normalization logic unchanged.

Validation: full DSH_EXAMPLE_MODE=lib DSH_SNAPSHOT=replay pnpm exec vitest run --config vitest.snapshot.config.ts reproduced the lone negative-control failure, then passed all 6 files and 126 tests after repair (2 existing PowerShell availability skips). PATH used the existing uv Python 3.14.5 bin; no software installed.
2026-09-06 20:42:43 +08:00
Tianyi Cui b4d8a31ae8 test(session-snapshot): regenerate current rec-pin recording
The committed current rec-pin fixture held only request/header, so the corpus restore gate rejected it outside an open turn. Its owning scripted behavior already emits turn/start, step/start and the system surface message.

Regenerate the selected current fixture with ACP_SNAPSHOT_SPEC_BOOTSTRAP=1 and the focused rec-pin record test. Keep all retired parent and child generations unchanged. No parser, normalizer or production behavior changes.

Validation: the corpus restore test reproduced the missing-turn failure; documented owner bootstrap passed; pnpm exec vitest run packages/test-support/llm-replay/tests/session-format-corpus.spec.ts packages/test-support/session-snapshot/tests/suite.spec.ts passed (141 tests, one intentional skip).
2026-09-06 20:42:43 +08:00
Tianyi Cui dac85fada1 test(session-snapshot): close pin-turn step before replacement
The current Session relationship validator correctly rejects a second step/start while the previous step remains open. Both replay and refresh of the synthetic pin-turn scenario failed after the stricter master validation landed.

Add the missing step/end to the owning scripted behavior and resequence its later events. Regenerate only the current pin-turn fixture through defineAcpSnapshotSuite refresh mode. Preserve both system messages, replacement provenance, and all three request headers; do not relax migration validation or normalization.

Validation: reproduced both pin-turn failures with the focused suite filter; owning refresh passed; pnpm exec vitest run packages/test-support/session-snapshot/tests/suite.spec.ts passed (140 tests, one intentional record skip). Full build and doc-sync also passed before this fixture-only repair.
2026-09-06 20:42:43 +08:00
Tianyi Cui eba45d9add fix(rebase): preserve the complete replay plugin after migration API merge
Retain installLlmReplay, Config validation and apply when resolving the streaming migration API change. The representation layer requires no replay plugin source changes, so restore its complete current-master implementation rather than a truncated conflict fragment. Capability additions remain exclusively in the dependent feature layer.

Validation: the restored source is byte-identical to origin/master and the replay unit suite passes. The initial normal commit hook failed because this detached worktree had no dependency links; pnpm install --frozen-lockfile installs them before retrying the unchanged hook, without bypass.
2026-09-06 20:42:43 +08:00
Tianyi Cui db5e57347b fix(snapshots): separate historical replay inputs from current header pins
The default and retry header pins were retained pre-system-node logs, so preserving their historical header.system correctly exposed stale expectations across headless and shared SDK compositions. Move the default pin to tool-call-turn and add a current retry companion; retain every committed predecessor and keep readable sidecar ownership on text-turn.

Replace the historical blanket body-comparison skip with a headless-only semantic projection: current system nodes contribute historical header.system and event citations follow retained positions. Full normalized logs still compare, current-writer logs stay unadapted, and independent prompt/header checks remain strict. Negative controls preserve prompt, model and citation differences. Refresh only pi-ai metadata and Web minimal-preset current artifacts; no SDK outputs, Python fixtures or package oracles changed.

Validation: 18 focused headless/SDK/corpus tests; three pin, sidecar and historical mutation controls; Web minimal-preset persisted replay; focused oxlint; typecheck and client/Web builds. doc-sync:31 passed,2 failed on pre-existing token-meter/Cordis and config catalog freshness; no broad catalog rewrite. Full suite, browser interaction and platform matrix not rerun.
2026-09-06 20:42:43 +08:00
Tianyi Cui 0a02da4ba6 docs: regenerate catalogs for corrected prompt ownership
Regenerate source-owned catalogs after the oracle simplification and usage-anchor correction. The configuration catalog retains the same declared options while its source location follows removed compatibility stripping; the token-meter service docs now state that the usage anchor includes all admitted request inputs. Keep bilingual generated declarations aligned instead of retaining stale copied contracts.

Validation: pnpm run doc-sync identified only cordis catalog and config catalog freshness failures (31 other gates passed); pnpm run gen-cordis-catalog and pnpm run gen-config-catalog regenerated their owners, and the config pair was updated and recorded. Full layer documentation validation follows integration.
2026-09-06 20:42:43 +08:00
Tianyi Cui 4c9f5efc07 fix(agent-loop): reserve the initial empty system head
Cause: SystemPromptProjection skipped the first empty rendered prompt. The initial admitted user then occupied surface node zero, so a later nonempty prompt appended behind user history. Routes without in-history system support lost the leading system role; pi-ai demotes a non-leading system message to user content.

Fix: append the initial system node even when its content is empty. The existing loop commit order reserves node zero before admitted user messages; later prompt text replaces that node. Empty content still derives to no wire message. Keep retained-node replacement, clearing, multi-system handling, and pi-ai conversion unchanged; this addresses only the reviewed PR3476 initial-empty finding, not PR3483.

Tests: added initial-empty projection and two-turn loop regressions for empty wire output, reserved surface head, later leading system role, replacement intent, and series header. Negative control failed before the source fix. Focused projection/runtime-context/loop/request-reconstruction/session-surface/pi-ai-context suites passed 176 tests; exact runtime-context.ts coverage is 100% statements, branches, functions, and lines. test:docs passed all 15 gates. Updated README EN/ZH, architecture map and owning architecture note; recorded all three translation pairs. Broad doc-sync/lint stopped at parent request for combined-layer validation. No normalize.ts conflict-comment edit.
2026-09-06 20:42:43 +08:00
Tianyi Cui c29b97ad94 test(python): refresh system-node and packed restart expectations
The representation PR left child and restart recordings in the old header-system representation while the packaged writer emits system/message before entered user messages. Restart result expectations also retained standalone assistant/chunk notifications after the writer moved stream records into assistant/message. These are stale expected artifacts, not fields to erase in normalization.

Regenerate the owning advanced and restart scenarios through the native macOS ARM64 packaged dsh runtime. Retain messages, tool effects, typed feedback and packed streams; update only the missing system nodes and their sequence references, and remove obsolete standalone chunk notifications. The advanced parent result and parent session already match the writer after the rebase, so this commit changes only two child logs and the restart result/logs.

Validation: pnpm run build; pnpm exec tsx scripts/build-exe-for-python-sdk.ts --skip-build --targets=node24-macos-arm64; uv run --project python/sdk python scripts/smoke-python-runtime.py --scenario sdk-snapshot --exe dist-exe/deepseek-harness-sdk-runtime-macos-arm64 and the equivalent sdk-restart command each reproduced the mismatch, then passed with --update-snapshots and again without it. Both read-only reruns pass. Other native targets remain covered by exact-head CI.
2026-09-06 20:42:43 +08:00
Tianyi Cui 3607b320c7 test(snapshot): repair recorded child system message UUID
The rec-child fake-agent behavior used an 11-digit UUID tail for both copies of its shared system message. Supply the missing digit in both places without changing their identity relationship. This semantic correction is separate from the preceding five-file formatting-only change.

Add a focused owner-fixture assertion requiring two matching complete v4 UUIDs. It fails on the original short tail and passes after repair. Evidence: pnpm exec vitest run packages/test-support/session-snapshot/tests/suite.spec.ts: 140 passing, one intentional record-mode skip, including replay/record/refresh and UUID validation. No expected-output refresh or normalization change is needed.
2026-09-06 20:42:43 +08:00
Tianyi Cui bba5ec5f7a style(snapshot): restore one-event-per-line behavior fixtures
Compact each logged event onto one line in exactly five owner-local fake-agent behavior fixtures: record-suite rec-child/rec-pin and suite pin-turn/plain-turn/shared-pin. Keep wrapper structure readable so event sequencing and payload changes remain reviewable without hundreds of formatting-only lines.

Evidence: node deepStrictEqual compares parsed working-tree JSON against HEAD for all five changed files, with exactly five paths asserted; all semantic values and ordering are identical. git diff --check passes. The malformed rec-child UUID is deliberately retained here for a separate semantic repair commit. The unchanged fixture behavior passed the preceding suite.spec.ts run (139 passing, one intentional skip). No snapshot refresh was run.
2026-09-06 20:42:43 +08:00
Tianyi Cui e8e0ec4176 docs(snapshot): remove stale prompt scrubber conflict residue
Delete the leftover diff3 parent marker and both copies of the obsolete request-header prompt JSDoc. Keep only the current system/message tokenization contract. This is a local comment-only finding; neither oracle behavior nor fixture content changes.

Evidence: git diff --check is clean; focused normalize.spec.ts scrubSystemPrompts test passes (1 selected, 64 skipped). The earlier header-preservation commit intentionally retained this marker so the findings stay independent.
2026-09-06 20:42:43 +08:00
Tianyi Cui 7b182e95e1 fix(snapshot): enforce fixture storage for every selected role
sessionFixtures already selects the highest generation independently for each parent or child role. Filtering its output to files[0] silently exempted every child from prompt and schema fixed points and prompt-before-request ordering. Merge those assertions into the per-role loop and expose the actual checker for focused negative controls without mocking Vitest registration.

The three selected-child controls reject missing system/message, raw prompt text, and raw tool schemas; each resolved incorrectly with the parent-only filter. A positive mixed-generation case proves retained predecessors remain unselected. Correct the two versionless record-suite child fixtures that the restored enforcement exposes, including the retired-child copy used by recording tests. No released historical generation or broad recording is rewritten.

Evidence: pnpm exec vitest run packages/test-support/session-snapshot/tests/storage-policy.spec.ts packages/test-support/session-snapshot/tests/suite.spec.ts --coverage --coverage.include=packages/test-support/session-snapshot/src/suite.ts: 143 pass, one intentional record-mode skip, suite.ts 100% statements/branches/functions/lines. Update and re-record the session-snapshot README EN/ZH pair.
2026-09-06 20:42:43 +08:00
Tianyi Cui 1adcd8203a fix(token-meter): anchor usage after admitted prompt inputs
The loop appends step/start before system/message and the entered user
messages. Capturing nodes at step/start therefore omits inputs already
included in the provider's successful usage, then adds those inputs back
as a positive surface delta. Prompt replacement can also incorrectly add
or subtract the difference from the prior prompt on a completed call.

Snapshot the current priced surface immediately before assistant/message
commits. Keep provider output separate from the durable assistant node so
listener rewrites retain their signed delta. The invariant is zero delta
immediately after an unchanged successful output: provider usage already
includes every admitted prompt input. Later appends/replacements still
produce signed deltas, and low or absent usage keeps heuristic fallback.

Delete stepStart.nodes rather than adding prompt-specific corrections or
another request snapshot: the existing transactional surface fold already
contains the successful request inputs, including replacements made during
same-step retry recovery. Keep turn/step state and all overlap, mismatch,
and late-assistant lifecycle validation. Retry attempts are log-only and
request middleware changes configuration; injected messages remain queued
until admission. No loop, event format, projection, or retry policy changes.

Exercise the real loop with reported usage and initial, growing, shrinking,
and empty prompts; same-step failed attempt plus retry prompt replacement;
request middleware; eager observation and fresh seeded replay. The two
regressions fail before the fix with spurious deltas of +48 and +18 tokens.
Retain existing durable-output rewrite, route repricing, missing/low usage,
transactional failure, and lifecycle tests. Update README EN/ZH and the
existing system-prompt surface-node Agent Note, including pairing records.

Validation (dedicated worktree, no full unit suite):
- pnpm exec vitest run packages/llm/token-meter/tests packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts --coverage --coverage.include='packages/llm/token-meter/src/index.ts'
  118 passed; exact changed runtime file 100% statements/branches/functions/lines.
- pnpm exec vitest run packages/core/agent-loop/tests/request-reconstruction.spec.ts packages/compaction/compaction-basic/tests/compaction-basic.spec.ts packages/compaction/compaction-basic/tests/loader-composition.spec.ts
  118 passed, including retry reconstruction and real Loader composition.
- pnpm run doc-sync: 33 gates passed.
- pnpm run test:docs: 15 gates passed.
- pnpm run lint: passed, 0 warnings/errors.
- git diff --cached --check: passed.

Baseline normalize.ts comment conflict marker is intentionally untouched.
2026-09-06 20:42:43 +08:00
Tianyi Cui 8bde913784 refactor(compaction): replay the derived system head as a message
The session already derives the protected system head as a Message, and both adapters accept leading system history. Passing it through a separate SummarizationInput.system string unnecessarily flattens that value and rebuilds the same wire message in the adapter. Prepend the derived head to messages and remove textContent, the separate field, and GenerateOptions.system plumbing from the summarizer.

Keep range selection, shadowed seq accounting, session head protection, routed tools, image references, target policy, and the model-visible compaction instruction unchanged. Empty-content heads still derive to null and contribute no request message, but their surface node remains protected. Update subclass consumers/tests, EN/ZH package and subsystem prose, and the existing system-prompt surface owning note with refreshed pairing records.

Evidence: pnpm exec vitest run packages/compaction/compaction-basic/tests packages/llm/llm-deepseek/tests/serialize.spec.ts packages/llm/llm-pi-ai/tests/context.spec.ts --coverage --coverage.include='packages/compaction/compaction-basic/src/region.ts' --coverage.include='packages/compaction/compaction-basic/src/summarizer.ts' passed 203 tests in 6 files; both changed sources have 100% statements, branches, functions, and lines. Region-to-default-summarizer cases pin exact prefix and tools for nonempty Unicode/multiline, empty, and absent heads. DeepSeek JSON byte equality and pi-ai context equality pin leading-message vs separate-system equivalence on text and image-capable conversion paths.

pnpm run doc-sync passed all 33 gates including doc-typecheck, documentation build, translation pairing and model-experience checks. git diff --check passed. Own dependencies installed with pnpm install --frozen-lockfile. An initial test iteration used a nonexistent ctx.dispose teardown on the in-memory fixture; corrected to its existing fixture lifecycle and reran successfully. No runtime/model behavior, normalizer marker, main worktree, push, or rebase changes.
2026-09-06 20:42:43 +08:00
Tianyi Cui be53ea7dff fix(snapshot): preserve unexpected request header fields
Remove both unconditional header.system erasures from log normalization and replay comparison encoding, including the unrelated Session-header deletion. The catalog owns released-format migration; comparison must not turn an unexpected field into equality or supply a compatibility shim.

Add direct log/snapshot and catalog-restoration controls that retain unexpected request/header.system and differ from the field-absent fixture. Preserve malformed provenance data as well, closing the owned normalizer coverage gap. Update the two package README pairs with this oracle obligation.

Evidence: pnpm exec vitest run packages/test-support/session-snapshot/tests/normalize.spec.ts packages/test-support/llm-replay/tests/llm-replay.spec.ts --coverage --coverage.include=packages/test-support/session-snapshot/src/normalize.ts --coverage.include=packages/test-support/llm-replay/src/index.ts: 205 tests pass, both files 100% statements/branches/functions/lines. Direct normalizer negative control fails before the fix. Baseline diff3 comment remains untouched for the separate cleanup finding.
2026-09-06 20:42:43 +08:00
Tianyi Cui ee956c720d refactor(session): represent the system prompt as surface node zero
Consolidate the representation-change PR and its rebase reconciliations into one baseline. Preserve the exact tree and keep the in-history feature in the dependent PR. Follow-up fixes remain separate.
2026-09-06 20:42:43 +08:00
Tianyi Cui 40792330c0 fix(system-prompt): keep model persona prefix and place cwd in suffix 2026-09-06 20:35:42 +08:00
Tianyi Cui 1dc50c492e fix(ci): harden Python runtime builds against transient failures
Master's windows-python-console-spawn-wait fix removed the plugin-add flake
this branch previously retried, so that retry is dropped entirely; the
branch keeps the changes that remain useful.

- Retry the immutable install step up to three attempts total with a
  ten-second pause (bash on every platform): node-gyp's Node-header
  download from nodejs.org intermittently times out, as observed on the
  hosted node24-macos-x64 cell.
- Keep checkout credentials out of the build tree (persist-credentials:
  false) so dependency-install scripts cannot read the embedded token.
- Failover runbook: drop the stray leading '#' before the Dependabot
  paragraph on both sides.
- Hosted-runtime note: name the PR/commit ownership and UTC timestamps of
  the cited runs and record the constraints a future self-hosted attempt
  must satisfy; new note records the install retry decision.
2026-09-06 20:31:01 +08:00
Tianyi Cui 3cc05093d2 Merge commit 'b2b300f9d5a5df24966a313bd5f9139620c1ae7b' into session-v3/ptc-durable-vocabulary 2026-09-06 20:25:31 +08:00
Tianyi Cui 573485e8b5 fix(snapshots): align V3 subagent message spacing 2026-09-06 20:23:43 +08:00
Tianyi Cui 320354a8e0 Merge commit 'adb605ba17936187320cac20bb145d4ee1edb387' into session-v3/ptc-durable-vocabulary 2026-09-06 20:22:48 +08:00
Tianyi Cui 6d11955852 Merge remote-tracking branch 'origin/master' into release/session-log-v3 2026-09-06 20:20:16 +08:00
Tianyi Cui 6ac3258390 Merge pull request #3640 from deepseek-harness/ci/benchmark-standard-runner
test(ci): move required benchmarks to standard GitHub runners
2026-09-06 20:13:05 +08:00
Tianyi Cui e28862db57 fix(system-prompt): place environment facts after reusable instructions 2026-09-06 20:08:19 +08:00
Tianyi Cui 88e4c3c235 Merge master and preserve hosted benchmark documentation 2026-09-06 19:58:19 +08:00
Tianyi Cui 6f21b112da fix: wait for the Python console runtime on Windows 2026-09-06 19:53:23 +08:00
Tianyi Cui 50b0511fe1 Merge pull request #3466 from deepseek-harness/feat/system-prompt-surface-node-notes
docs(agent-note): propose system prompt as surface node and in-history replacement
2026-09-06 11:39:05 +00:00
Tianyi Cui 86528bb8a4 Merge pull request #3642 from deepseek-harness/fix/python-runtime-hosted-windows
revert(ci): run Windows Python runtime CI on GitHub-hosted Windows
2026-09-06 19:34:47 +08:00
Tianyi Cui 083cef0aea docs(notes): record hosted Windows runtime decision, retire the proposal
The failover runbook's Windows switch scope returns to the native Windows jobs:
remove the Python runtime eligibility sentences, the pool Python prerequisite,
and the proposal links. The #3629 self-hosted Python runtime proposal is
retired (deleted as obsolete after its unmeasured-throughput run), and a new
implemented note records that the Windows x64 runtime lane stays on
GitHub-hosted Windows with the evidence and alternatives. Bilingual sidecars
re-recorded.
2026-09-06 19:18:38 +08:00
Tianyi Cui 6933eccdb0 docs(notes): record hosted Windows runtime decision, reject proposal
The failover runbook's Windows switch scope returns to the native Windows jobs:
remove the Python runtime eligibility sentences, the pool Python prerequisite,
and the links to the proposal. The self-hosted Python runtime proposal is
moved to rejected with its unmeasured-throughput verdict, and a new
implemented note records that the Windows x64 runtime lane stays on
GitHub-hosted Windows with the reasons. Bilingual sidecars re-recorded.
2026-09-06 19:17:28 +08:00
Tianyi Cui faa33c0ffa revert(ci): run Windows Python runtime CI on GitHub-hosted Windows
Windows x64 runtime builds resolve their hosted matrix.runner unconditionally
again (windows-2025 for pull-request CI). Remove the DSH_CI_FAILOVER_WINDOWS
selector, job-private Python toolchain, self-hosted dependency install and
post-step cleanup, the private setup script, and the routing spec introduced
in #3629. The Windows failover switch again covers only the native Windows
jobs in ci.yml.
2026-09-06 19:17:27 +08:00
Tianyi Cui cd5e872bed Merge branch 'master' into ci/benchmark-standard-runner 2026-09-06 18:46:12 +08:00
Tianyi Cui 3bb63f9e4e Merge pull request #3632 from deepseek-harness/perf/speed-up-skill
docs(skills): add evidence-driven performance optimization workflow
2026-09-06 18:38:27 +08:00
Tianyi Cui e29b6528c3 docs(ci): list benchmarks among fixed hosted dependencies 2026-09-06 18:35:15 +08:00
Tianyi Cui 368ec64489 Merge corrected Session V3 base into PTC vocabulary 2026-09-06 18:29:14 +08:00
Tianyi Cui b74411d9b8 test(bench): calibrate reopen budget for standard two-CPU CI 2026-09-06 18:24:42 +08:00
Tianyi Cui e53df8b64a fix(session): guard V3 delivery activation and smoke writer generation 2026-09-06 17:39:15 +08:00
Tianyi Cui 5895f46b34 fix(session): preserve unsupported V3 events during tail recovery 2026-09-06 17:29:21 +08:00
Tianyi Cui f75aabcb16 test(ci): run required benchmarks on standard hosted Linux 2026-09-06 17:10:30 +08:00
Tianyi Cui ce2197aa1d docs(agent-note): propose system prompt surface and in-history updates
Consolidate the existing notes-only PR into one review baseline. Preserve the exact reviewed tree; subsequent corrections remain separate commits with their own rationale and regression evidence.
2026-09-06 16:52:38 +08:00
Tianyi Cui eaae3502ae test(session): synchronize shared migration cancellation waiters 2026-09-06 16:17:42 +08:00
Tianyi Cui eece831b18 Merge pull request #3629 from deepseek-harness/optimize/python-runtime-selfhosted
ci: move Windows Python runtime CI to isolated self-hosted jobs
2026-09-06 15:56:01 +08:00
Tianyi Cui d8d86b7eb8 Cover PTC dispatches through explicit TypeScript SDK profile patch 2026-09-06 15:37:15 +08:00
Tianyi Cui 000cd7e762 Merge master and reconcile platform failover documentation 2026-09-06 15:35:49 +08:00
Tianyi Cui eb4259e405 test(session): distinguish frozen PTC tags from current inventory 2026-09-06 15:31:46 +08:00
Tianyi Cui d15aaee271 Merge pull request #3627 from deepseek-harness/optimize/release-rehearsal-selfhosted
ci: route trusted release rehearsals to self-hosted Linux
2026-09-06 15:22:44 +08:00
Tianyi Cui 37d3ec1681 ci: address Windows runtime routing and isolation review 2026-09-06 15:07:17 +08:00
Tianyi Cui ed183b1bd1 Merge pull request #3630 from deepseek-harness/fix/agent-message-spacing
fix(subagent): add space after agent message prefix
2026-09-06 15:03:27 +08:00
Tianyi Cui a1188bbf3f ci: contain release temporary installs and document shared routing 2026-09-06 14:57:11 +08:00
Tianyi Cui ceb3136bef ci: size PR previews on measured standard hosted runners (#3628)
* ci: measure hosted preview runner sizes [preview-sizing-benchmark]

* ci: type benchmark job keys explicitly [preview-sizing-benchmark]

* ci: size PR previews on measured standard hosted runners
2026-09-06 14:56:30 +08:00
Tianyi Cui bad4254d71 Rename durable PTC vocabulary with identity-preserving v2 migration 2026-09-06 14:53:16 +08:00
Tianyi Cui 6cc750b006 docs(skills): route performance evidence through decision note 2026-09-06 14:50:53 +08:00
Tianyi Cui 7c3d47d4d6 test(subagent): refresh message spacing snapshots 2026-09-06 14:48:27 +08:00
Tianyi Cui 82ed067354 fix(session): synchronize V3 graph and preview fixtures 2026-09-06 14:34:42 +08:00
Tianyi Cui 7a1cf325b8 docs(skills): add evidence-driven performance optimization workflow 2026-09-06 14:14:30 +08:00
Tianyi Cui d56f2d2cb4 test(session): use explicit void callbacks in migration assertions 2026-09-06 14:11:49 +08:00
Tianyi Cui 4cacd5829d docs(session): register V3 migration in generated config catalog 2026-09-06 14:06:56 +08:00
Tianyi Cui 705f84f952 docs(session): document format upgrades and advance current V3 fixtures 2026-09-06 14:01:01 +08:00
Tianyi Cui f7a6221158 feat(session): add identity V2-to-V3 migration and writer skeleton 2026-09-06 13:52:21 +08:00
Tianyi Cui 3a79abedec ci: use UTF-8 Python text on self-hosted Windows 2026-09-06 13:49:19 +08:00
Tianyi Cui 754a65ab2d fix(subagent): separate message prefix from body 2026-09-06 13:47:37 +08:00
Tianyi Cui 69b1e315b4 ci: use isolated self-hosted Windows Python runtime builds 2026-09-06 13:21:26 +08:00
Tianyi Cui 81dcacbb44 Merge pull request #3537 from deepseek-harness/perf/03-client-stream-fold
perf: read embedded Assistant streams per compact record
2026-09-06 13:17:51 +08:00
Tianyi Cui f66dd78ff7 ci: route trusted release rehearsals to self-hosted Linux 2026-09-06 13:01:55 +08:00
Tianyi Cui 07245b9e88 docs(llm): scope the record readers' early-exit claims; state that readers trust the static record type
Reflect the review feedback on the reader list: assistantStreamFirstTokenTime and the has-visible readers stop at the first qualifying member, while lastAssistantStreamChunk, assistantStreamChunks, and joinAssistantStreamText scan the whole stream; assembleAssistantStream feeds a BlockAssembler one joined delta per run. Record-level readers trust the static record type; expandAssistantStream is the validating path.
2026-09-06 12:46:19 +08:00
Tianyi Cui 53c2ed9916 Merge pull request #3618 from deepseek-harness/fix/session-reference-spill
fix(session-reference): spill complete truncated snapshots for retrieval
2026-09-06 12:44:37 +08:00
Tianyi Cui 165cc31eb8 perf(llm,host): read embedded Assistant streams per compact record
Session format v2 embeds each attempt's compact stream in
assistant/message and assistant/attempt, but Host and client consumers
still expanded it into per-member TimedStreamChunk arrays and did
per-member work; expandAssistantStream materializes the full array before
find/toReversed/break can answer. Session Stats (the projection phase of
every Session open), the token meter's usage and provider-assembly folds,
the subagent output fold, and the Session Controller image lookup still
paid O(members) allocation and time per settlement.

The Chat and Trajectory definitions were already settled from
message.content on master; the remaining per-member folds stay.

dsh-llm now exports record-level readers (first token, visible content,
visible text, last raw chunk of a type, raw chunks of a type, joined
text, run-aware assembly, per-run first-token/first-visible times) that
scan the compact records once with early exit. Session Stats reads
assistantStreamFirstTokenTime, the token meter reads
lastAssistantStreamChunk(stream, 'usage') and assembles through
assembleAssistantStream, the subagent output fold appends
joinAssistantStreamText, and the Session Controller scans
assistantStreamChunks(stream, 'block-end').

expandAssistantStream is deliberately not memoized: retaining expansions
costs roughly ten times the compact stream for the Session's lifetime.
It remains the validating path at durable boundaries.

Synthetic 200-turn v0 migration benchmark, median of five: first-open
projection 28.0 ms -> 5.4 ms, first-open total 76.9 -> 50.0 ms, peak RSS
137.2 -> 94.9 MB; reopen projection 17.8 -> 5.6 ms; all phase budgets and
the 128 MB heap constraint keep passing.
2026-09-06 12:41:25 +08:00
Tianyi Cui e12ca5fdf0 test(session-reference): preserve complete regression suite after rebase 2026-09-06 12:17:12 +08:00
Tianyi Cui 539b5cd93d fix: normalize JSON-escaped Windows spill locators 2026-09-06 12:17:12 +08:00
Tianyi Cui 52475cbf50 fix: spill truncated session-reference captures for retrieval 2026-09-06 12:17:12 +08:00
Tianyi Cui 72ce6964ac fix(session-reference): retain fallback for adapterless routes 2026-09-06 12:17:11 +08:00
Tianyi Cui 36a3a1188d fix(session-reference): size default budget from selected model 2026-09-06 12:17:11 +08:00
imccyu 450d98b398 Merge pull request #3586 from deepseek-harness/session-migration-preparation
perf(session): prepare historical reads before publication
2026-09-06 02:35:49 +08:00
imccyu 80306f51a6 Merge pull request #3585 from deepseek-harness/session-migration-streaming
perf(session): stream released format migrations
2026-09-06 02:34:12 +08:00
Tianyi Cui 53066fd640 Merge pull request #3535 from deepseek-harness/perf/01-session-open-benchmarks
test(perf): gate opening large Sessions with synthetic CI benchmarks
2026-09-06 02:32:09 +08:00
imccyu 591d12ce86 docs(session): document preparation-first restoration 2026-09-06 02:10:28 +08:00
imccyu 9b78f99dec perf(session): transfer frozen persistence reads into restore 2026-09-06 02:10:23 +08:00
imccyu a3e5edbdbf perf(session-persistence): prepare historical reads before publication 2026-09-06 02:08:48 +08:00
imccyu 98d2baf2e5 docs(session): document streaming format migration 2026-09-06 02:06:22 +08:00
imccyu 84c11c7243 perf(client): avoid replaying settled assistant streams 2026-09-06 02:05:52 +08:00
imccyu ec2f63dbdb perf(session-persistence): stream migration publication and verification 2026-09-06 02:05:40 +08:00
imccyu 46196d6f95 perf(session-format): stream released v0-to-v2 migrations 2026-09-06 02:05:27 +08:00
imccyu a84a8da9e1 refactor(session-format): introduce streaming migration stages 2026-09-06 02:05:09 +08:00
imccyu a548150f86 test(perf): isolate benchmark dependencies 2026-09-06 01:01:04 +08:00
imccyu 422f5a19af test(perf): calibrate CI benchmark budgets 2026-09-06 01:01:04 +08:00
imccyu 356a332195 test(perf): run benchmarks against built artifacts 2026-09-06 01:01:04 +08:00
imccyu ec954d495e test(perf): freeze released benchmark rows 2026-09-06 01:01:04 +08:00
imccyu 47a6fa0f28 test(perf): centralize lifecycle benchmarks 2026-09-06 01:01:03 +08:00
Tianyi Cui c53b0bb5ed test(perf): double the CI cost in the migration budget
The migrating first open measured 1,963 ms on the CI runner under the
128 MB heap limit; 4,000 ms keeps a 2x margin while the repeated-snapshot
implementation still fails by heap exhaustion and would need ~10 s.
2026-09-06 01:01:03 +08:00
Tianyi Cui 3285850ee5 test(perf): allow the joined-text share in the fold scaling bound
A records-proportional fold still joins 20x more text in the large window,
which measured about 2.5x the small fold; the per-delta replay measured
about 11x. A 5x bound separates the two on a noisy runner.
2026-09-06 01:01:03 +08:00
Tianyi Cui 9048e8ee11 test(perf): size the migration budget for the CI runner
The migrating first open of the synthetic log costs about 1 s on the
reference machine under the 128 MB heap limit and about twice that on the
CI runner, so 3,000 ms keeps headroom while staying far below the ~5 s
(~10 s on CI) of the repeated-snapshot implementation.
2026-09-06 01:01:03 +08:00
Tianyi Cui 74e27c97d0 test(perf): list the bench config among proxy-setup Vitest inventories
scripts/test-proxy-environment.spec.ts pins the Vitest configs that declare
setupFiles so the proxy isolation setup is never dropped; the benchmark
lane declares it too.
2026-09-06 01:01:03 +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
fz 40539e9002 Merge origin/master into feat/remove-str-replace-editor-from-minimal 2026-09-06 00:58:49 +08:00
Tianyi Cui cd4a23c5df Merge pull request #3529 from deepseek-harness/turtle/redesign-issue-pr-templates-policy
Redesign issue and pull request templates and simplify policy
2026-09-06 00:44:02 +08:00
fz 4acdf8e5bb Merge pull request #3611 from deepseek-harness/feat/sdk-disable-str-replace-editor
feat(base): remove str_replace_editor from default tools
2026-09-06 00:21:42 +08:00
Tianyi Cui a6e157c0a3 Merge pull request #3605 from deepseek-harness/fix/ptc-bash-cards
fix(web): show Bash terminal cards in PTC mode
2026-09-06 00:09:29 +08:00
fz 17d8507b87 Merge origin/master into feat/sdk-disable-str-replace-editor 2026-09-05 23:57:47 +08:00
Tianyi Cui cef72f2f27 fix(spill): publish notice through standard pure source entry 2026-09-05 23:52:59 +08:00
Tianyi Cui b25d4faaaa fix(spill): share persisted notice formatting with client recognition 2026-09-05 23:52:59 +08:00
Tianyi Cui 314cd13971 fix(web): keep spilled shell previews generic without guessing status 2026-09-05 23:52:59 +08:00
Tianyi Cui 739b38c973 docs(web): describe nested terminal details eligibility 2026-09-05 23:52:59 +08:00
Tianyi Cui 46a08db381 fix(web): render terminal cards for PTC bash subcalls 2026-09-05 23:52:59 +08:00
Tianyi Cui ce0a1e4253 Merge pull request #3368 from deepseek-harness/fix/directory-picker-win32-overread
fix(directory-picker-native): decode the Win32 picker path without a fixed 32KiB view
2026-09-05 23:51:08 +08:00
Tianyi Cui eae5c6b896 Merge pull request #3598 from deepseek-harness/feat/feedback-otel-fallback
feat(telemetry): submit explicit feedback through OTel for all users
2026-09-05 23:48:54 +08:00
fz 36a4665144 feat(base): remove str_replace_editor from default tools 2026-09-05 23:37:13 +08:00
Tianyi Cuiandzhanglunet 141d72d7cf fix(directory-picker-native): decode the Win32 picker path without a fixed 32KiB view
Replace the external ArrayBuffer view and manual UTF-16 scan with native Koffi decoding through a pointer-width buffer. Preserve the original address for CoTaskMemFree.

Exercise production resultPath with real Koffi decoding of live UTF-16 buffers. Cover zero-low-byte BMP characters, surrogate pairs, NUL termination, and strings exceeding 32 KiB; test four- and eight-byte BigInt pointer preservation and the original release address. A negative-control mutation confirms truncating a 64-bit address fails.

Keep the bilingual Agent Note focused on implementation rationale and required memory ownership. Preserve master archive seals during rebase.

Co-authored-by: zhanglunet <[email protected]>
2026-09-05 23:24:46 +08:00
Tianyi Cui 9ffe85a512 OTel uploads explicit feedback for all users by default 2026-09-05 23:21:23 +08:00
ChinesezjcandTianyi Cui 02a029e679 Feedback is recorded in the session log and delivered through DeepSeek
Co-authored-by: Tianyi Cui <[email protected]>
2026-09-05 23:21:22 +08:00
Tianyi Cui cd872be967 Merge pull request #3613 from deepseek-harness/chore/pi-ai-0.85.1
chore(llm): upgrade pi-ai to 0.85.1
2026-09-05 23:16:54 +08:00
Tianyi Cui 1a93474759 docs(llm): clarify pi-ai replay compatibility evidence 2026-09-05 22:57:00 +08:00
Tianyi Cui 7bab91d247 fix(llm): retain Anthropic resolved model during replay 2026-09-05 22:40:40 +08:00
Tianyi Cui 69a0441c34 chore(llm): upgrade pi-ai to 0.85.1 2026-09-05 22:36:58 +08:00
fz 20ed4aced0 docs(sdk): clarify the default editor selection 2026-09-05 22:28:40 +08:00
fz 965adbb5cf feat(sdk): disable str_replace_editor by default 2026-09-05 22:11:20 +08:00
Yichen Jiang 62120daf94 Merge pull request #3602 from deepseek-harness/worktree/dsh-package-manifest
refactor(manifest): centralize package manifest types
2026-09-05 21:08:27 +08:00
Yichen Jiang eea8a83a23 Merge origin/master into worktree/dsh-package-manifest 2026-09-05 20:52:58 +08:00
Yichen Jiang 37aac1a555 docs(manifest): align invariant omission wording with validation 2026-09-05 20:50:37 +08:00
Tianyi Cui 93d89dd0d5 Merge pull request #3603 from deepseek-harness/fix/ci-runtime-wheel-windows
fix(boot): normalize absolute plugin paths in patches
2026-09-05 20:50:02 +08:00
Yichen Jiang 4d56cbc3d3 refactor(manifest): centralize package manifest types 2026-09-05 20:44:31 +08:00
Tianyi Cui 4826e0c2a3 docs(boot): clarify patch path conversion ownership 2026-09-05 20:32:47 +08:00
Tianyi Cui c70b30a6fb test(cli): exercise patch removal without rapid rewrite 2026-09-05 20:25:20 +08:00
Tianyi Cui 15e444e0d7 fix(boot): normalize absolute plugin paths in patches 2026-09-05 20:14:43 +08:00
mektpoy 06cee18430 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation
# Conflicts:
#	.agents/notes/implemented/bug-fix/2026-09-01-host-goal-pause-aborts-turn.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-19-human-goal-command.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-19-same-session-goal-round-driver.i18n.yaml
2026-09-05 15:34:05 +08:00
Yichen Jiang 4aa3cb7818 Merge pull request #3590 from deepseek-harness/worktree/ui-primitives-consolidation-429264
refactor(client): consolidate shared controls into ui-primitives
2026-09-05 15:33:18 +08:00
Yichen Jiang d46f840e99 Merge origin/master into worktree/ui-primitives-consolidation-429264
Archiving low-future-value Agent Notes (#3548) stripped the inbound
citations to three now-archived notes from the ui-primitives README, and
this branch rewrote the same "Controls and icons" opener so the new
component catalog owns the export enumeration. The resolution keeps this
branch's opener and drops the archived-note citation master removed, in
both languages; the pairing record is re-recorded from the merged pair.
2026-09-05 15:17:44 +08:00
Yichen Jiang c279350e03 fix(client): keep the Switch track capsule under the global corner shape
The track's radius is half its height, so its corners consume the whole
side and the global `superellipse(1.5)` squares the ends off — beside a
thumb that already opts out at `border-radius: 50%`, leaving a round knob
in a squared-off slot. Pair `corner-shape: round` with the radius, the way
every full-round radius in the repository does.

The corner-shape stylesheet spec recognizes 50%, 100%, and radii at or
above 99px, so a radius that is full-round only relative to its own box
passes it; the comment records that gap at the rule it affects.
2026-09-05 15:11:25 +08:00
Tianyi Cui d86c08bc1c Merge pull request #3548 from deepseek-harness/worktree/archive-agent-notes-20260904
docs(notes): archive low-future-value Agent Notes
2026-09-05 15:07:49 +08:00
Yichen Jiang 853de8ad0b docs(client): finish the five-state and Pill/Tag corrections
The `idle` addition left two maintainer-facing statements behind: the
README's limitations entry still listed four supported StateDot states,
and TerminalBlock's run-state JSDoc still counted the union as four while
correctly saying three of them are reachable there.

Pill's header comment still sent every capsule without `onClick` to Tag,
which contradicts both the catalog this pull request corrected and
TerminalBlock's own static read-only Pill two files away. Size separates
the two controls as much as interactivity does, and the comment now says
so. The function JSDoc and the static-mode tests stay as they are: they
describe supported behavior.
2026-09-05 15:04:17 +08:00
Yichen Jiang a6ef8dc97a fix(client): animate the unloading phase dot and correct the catalog
`unloading` marks a teardown the Host is running, which an async disposer
can hold for a while, so the inventory's dot animates it like `loading`
instead of showing the static grey `idle` mark that means no activity.

Correct four documentation facts against the shipped code: StateDot's
render JSDoc still promised four states, the catalog claimed four Tooltip
sides where TooltipSide has three, the Agent Note's geometry audit counted
three matching rules where two match, and the migrated-site and shipped-
appearance counts had drifted.

Record two things the first pass left out: TerminalBlock renders its exit
status as a static Pill, which the Tag/Pill catalog entry now accounts for
by size rather than by interactivity alone, and the disabled inventory tag
changed fill token, which joins the visual-change list.

Pin Tag's eight tones with a stylesheet spec, for the same reason StateDot
has one: CSS Modules resolve to class-name maps in component suites, so a
missing or wrong tone rule passes every render assertion.
2026-09-05 14:54:42 +08:00
Tianyi Cui 051cd4b281 docs(notes): address ds-review-bot feedback on the archive audit
- Stop treating three archived records as current authority: bounded-llm
  citation now points at the llm-retry README, the semantic-composer
  proposal cites the runtime-owned child guard as history it builds on,
  and the code-runtime comment states the deferred rationale locally.
- Fix the stale "dsh family stays restricted" claims left without their
  rationale citation: the check-workspace-constraints comment, the
  release publish comment, and the kept npm-release-sequences note now
  record that the family published publicly on 2026-08-13 (87f8e6a728).
- The rejected client-settings-locale-theme body keeps its pristine
  proposal prose with only the Status line and the two link paths whose
  targets this PR archived; the link remaps are required for
  verify-md-links and pairing, and every prose byte is untouched.
2026-09-05 14:52:33 +08:00
Tianyi Cui a7a5be1703 docs(notes): archive low-future-value Agent Notes
Run the dsh-archive-agent-notes audit over every active Agent Note on
current master, judging each record by whether its rationale still guides
work rather than by size or age.

- Archive 453 implemented bilingual triplets (417,882 English words):
  completed UI chrome, narrow adapters, closed bug fixes, implementation
  walkthroughs whose package READMEs, docs pages, generators, or successor
  notes now carry the useful behavior, and 51 records fully superseded by
  a later active note. Keep 201 implemented notes whose ownership rules,
  negative guarantees, durable or wire semantics, security rules,
  reintroduction conditions, or still-tempting rejected alternatives
  remain useful.
- Reject 7 proposals whose premise is gone or whose work shipped in
  amended form under other records; delete 2 rejected notes that no
  longer prevent a plausible mistake.
- Retarget every remaining inbound link to the archived path, and repair
  active prose that named an archived record as the owner of a live fact:
  parenthetical citations drop, ownership sentences redirect to the
  README, docs page, or active note that states the fact, and history
  citations say so. Chinese files link the English archived path because
  the pairing gate treats the frozen tree as outside the bilingual corpus.
- Seal 1,359 new frozen artifacts; existing seals are unchanged and
  outbound links from archived notes are neither inspected nor repaired.
- Regenerate docs/config-catalog.md after the hook-bridge comment edits
  shifted two source line numbers.
2026-09-05 14:37:32 +08:00
Yichen Jiang 452b2a816a refactor(client): share the capsule tag, switch, and idle state dot
Client feature plugins never import one another's components, so
ui-primitives is their only channel for sharing one. Nothing told an
author to look there first, and the package offered nothing to look
at: its README named six source files against forty-plus exports.

Add Tag (read-only capsule badge, eight tones) and Switch (36x20
toggle with a required accessible name), extend StateDotState with
idle for a tracked subject with no activity, and move ui-agent-preset,
ui-settings-plugins, and ui-settings-plugin-inventory onto them.

The plugin inventory's conditional tag referenced
--dsw-alias-state-warning-primary, which does not exist, so both
themes had been painting its hardcoded #b45309 fallback.

State the reuse rule as the first step of the new-component checklist,
and give the README a component catalog so the rule has something to
check. The rule is guidance, not a gate: a package may still write its
own control, and the Agent Note records the five that stay local.
2026-09-05 14:32:59 +08:00
Tianyi Cui 9f68695f97 docs(notes): normalize Chinese Agent Note header tokens
The Agent Note rules keep the `# Agent Note: ` title prefix and the
`Status:` line in English verbatim on both language sides. 51 Chinese
counterparts carried a full-width colon (`# Agent Note:`), an annotated
prefix (`# Agent Note(agent 决策记录):`), or a translated status token
(`状态:已实现`, `状态:implemented`, `状态:已实施`, `状态:proposed`), which the
archive verifier rejects on entry to the frozen tree. Normalize the tokens
and re-record the bilingual sidecars; no body text changes.
2026-09-05 14:23:52 +08:00
mektpoy b9a4b682c4 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-05 14:16:58 +08:00
Yichen Jiang 4dd2c7b51b Merge pull request #3582 from deepseek-harness/worktree/queue-submission-sending
fix(web): show sending state for queued submissions
2026-09-05 12:39:43 +08:00
Yichen Jiang 0ea65903ce Merge pull request #3580 from deepseek-harness/worktree/fix-client-reconnection
fix(connection): recover stalled handshakes and keep retrying
2026-09-05 12:37:00 +08:00
Yichen Jiang 69161395ce fix(web): wait for queue admission before collapsed snapshots 2026-09-05 12:24:05 +08:00
Yichen Jiang 1e04fcff35 fix(connection): validate retry factors and clarify timeout recovery 2026-09-05 12:21:59 +08:00
Kaige-Gao 8b94ed9c21 test: align hygiene gate expectation 2026-09-05 11:59:46 +08:00
Yichen Jiang a3ccbd4d99 fix(web): show sending state for queued submissions 2026-09-05 11:51:52 +08:00
Yichen Jiang 1bd26370cc fix(connection): recover stalled handshakes and keep retrying 2026-09-05 11:50:27 +08:00
Yif fd1e51b097 test(web): refresh master-added goldens for the reworded placeholder
file-upload-round and the clickable-links gallery were recorded on master with
the pre-rewording composer placeholder.
2026-09-04 20:25:04 +08:00
Yif 78258bf6fd Merge remote-tracking branch 'origin/master' into fix/input-placeholder-stat-ui-polish 2026-09-04 20:24:04 +08:00
Yif eac164392d fix(client): name the context meter's tools row precisely and drop the header approximation
The heuristic tools segment counts tool schemas only, so the row reads 工具定义
/ Tool definitions; the header figures lose the ~ because they are anchored to
provider-reported usage, unlike the heuristic rows that keep it.
2026-09-04 20:22:11 +08:00
Yif a49376a2ca fix(client): reword composer placeholders around the / and @ triggers
The default and hero placeholders drop the ellipsis and name the / commands
and @ references as comma-separated actions; goldens and e2e assertions
refresh with the copy.
2026-09-04 20:21:46 +08:00
Yif a3208573a6 fix(client): polish composer and hero spacing
Tighten the composer card's top pad and draft-text pads, pull the attachment
rail closer to the draft, settle the toolbar gaps on 12, give the hero
workspace row its right clearance, and let the wrapped hero badge center under
the title with more air between the wrapped fish and the title line.
2026-09-04 20:21:16 +08:00
Yif 5813c14dee fix(client): portal composer menus over the sidebar and float toasts near the top
ModelSelect renders its dropdown through a body portal with viewport-clamped
fixed placement, so the panel keeps its full width instead of being cut by the
sidebar edge. The preset seat passes Menu an anchor class with an icon-only
min-width floor and moves its label ellipsis onto a dedicated span, keeping the
chip's overflow degradation breakpoint-free. Toasts move to the viewport top
and shrink to fit their text.
2026-09-04 20:19:42 +08:00
07akioni 9e5745de3b fix(desktop): align app versions with release 2026-09-04 20:01:24 +08:00
07akioni d43addeb5c Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-04 19:59:39 +08:00
Dudu-0223 5659d19c30 Merge pull request #3484 from deepseek-harness/fix/fork-resume-system-prompt
fix(web): avoid repeated system prompt on resume
2026-09-04 18:38:07 +08:00
Dudu-0223 d8f630f4b7 Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt 2026-09-04 18:13:46 +08:00
07akioni 42c7317bac chore(cli): remove obsolete desktop host exclusion 2026-09-04 18:03:19 +08:00
Kaige-Gao a19065017f chore(ci): deduplicate client static gates 2026-09-04 17:30:46 +08:00
Chinesezjc a33b9081b6 Merge remote-tracking branch 'origin/master' into fix/ci-node-compile-cache-data-disk 2026-09-04 17:13:09 +08:00
Kaige-Gao 5d9603b763 feat(web): localize slash command descriptions 2026-09-04 17:11:39 +08:00
07akioni 64ca04e8fb test(compaction): allow complete live summaries 2026-09-04 17:11:22 +08:00
Dudu-0223 d733bb24e5 Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt 2026-09-04 16:58:21 +08:00
07akioni 81c6f740e0 test(web): stabilize snapshot replay 2026-09-04 16:51:31 +08:00
Chinesezjc 4dfd3b5948 fix(note): restore blank line before Alternatives heading after merge conflict resolution 2026-09-04 16:50:44 +08:00
mektpoy 588be2d3c5 test(web): refresh clickable links after upload merge 2026-09-04 16:45:11 +08:00
Dudu-0223 eb60b74f47 test(web): wait for seeded agent attachment 2026-09-04 16:43:09 +08:00
07akioni 737a965e92 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-04 16:41:04 +08:00
Dudu-0223 493072641d Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt
# Conflicts:
#	packages/client/ui-chat/src/client/conversation-nodes/chat-snapshot-builder.ts
2026-09-04 16:39:08 +08:00
mektpoy b55a8e4777 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-04 16:34:50 +08:00
Dudu-0223 f0ab6a6054 fix(ui-chat): retain skill names on message upserts 2026-09-04 16:31:34 +08:00
07akioni e09407e655 fix(desktop): adapt host fetch handlers 2026-09-04 16:29:01 +08:00
07akioni 75c7bbb88d Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.md
#	packages/client/connection/README.zh.md
2026-09-04 16:23:37 +08:00
Chinesezjc cff9a004a6 Merge remote-tracking branch 'origin/master' into fix/ci-node-compile-cache-data-disk 2026-09-04 16:22:44 +08:00
07akioni fe0b7f2814 fix(desktop): move host out of CLI package 2026-09-04 16:21:45 +08:00
Chinesezjc f7f4bab746 Merge origin/master into fix/ci-node-compile-cache-data-disk 2026-09-04 16:17:32 +08:00
Dudu-0223 f9359b5863 Merge branch 'master' into fix/fork-resume-system-prompt 2026-09-04 16:14:09 +08:00
mektpoy 0928bb2c16 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-04 15:37:06 +08:00
mektpoy 56d6c25c9d fix(client): keep goal activation coverage in client face 2026-09-04 15:21:37 +08:00
07akioni ff146b84a3 Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	pnpm-lock.yaml
2026-09-04 15:11:38 +08:00
mektpoy 14baecfa86 Merge remote-tracking branch 'upstream/master' into issue-1424-goal-resume-activation 2026-09-04 14:49:37 +08:00
mektpoy 206e79ee3d fix(client): order goal activation through inject hooks 2026-09-04 14:49:32 +08:00
07akioni 1553862ac1 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-04 14:26:23 +08:00
Dudu-0223 3b95586626 Merge branch 'master' into fix/fork-resume-system-prompt 2026-09-04 14:21:42 +08:00
Turtle fa40d90023 refactor: simplify issue templates and policy 2026-09-04 14:20:20 +08:00
_Kerman 891f07a2d0 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
#	packages/bundle/headless/tests/headless.spec.ts
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/README.zh.md
#	packages/core/agent/src/runtime-types.ts
#	packages/fs/tool-str-replace-editor/tests/tools.spec.ts
#	packages/llm/llm-retry/tests/retry.spec.ts
#	packages/llm/llm-retry/tests/transport-recovery.spec.ts
#	packages/shell/tool-bash-persistent/tests/loader-composition.spec.ts
#	packages/shell/tool-bash-persistent/tests/tools.spec.ts
#	packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
#	packages/shell/tool-pwsh-persistent/tests/tools.spec.ts
#	packages/terminal/terminal-bash/tests/index.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-09-04 12:18:37 +08:00
Dudu-0223 01a4cba942 docs(web): describe client-only resume handling 2026-09-04 12:09:45 +08:00
Dudu-0223 8ea0cc0445 Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt
# Conflicts:
#	apps/web/tests/message-actions.e2e.ts
2026-09-04 12:08:54 +08:00
Dudu-0223 f1e7dbce55 fix(web): keep resume prompt dedupe client-side 2026-09-04 12:08:16 +08:00
pku-xht e82e5ffd7a fix(subprocess): normalize PTY scope launcher environment 2026-09-04 02:58:09 +08:00
pku-xht c7dc4d3833 test(subprocess): restore Cordis API projection 2026-09-04 01:30:10 +08:00
pku-xht cffb09b02c Merge commit '0d361e6eede9e8a739e776949aa7d5e3de4472da' into codex/subprocess-native-containment
# Conflicts:
#	snapshots/session/cordis-inspect-jsdoc/session.v2.jsonl
2026-09-04 00:56:00 +08:00
pku-xht d82fd86c5c fix(subprocess): isolate native runner bootstrap 2026-09-04 00:24:52 +08:00
pku-xht d79f5c04e8 Merge master into codex/subprocess-native-containment 2026-09-03 21:46:02 +08:00
pku-xht 423412b7bf fix(runtime): simplify executable entry dispatch 2026-09-03 21:18:27 +08:00
fz 8d06ebb5ac Revert "refactor: remove str_replace_editor"
This reverts commit d12b1146baa326e6facd3b10f81ae11db35ffd86.
2026-09-03 21:05:38 +08:00
pku-xht e5dbccce8c fix(subprocess): move SEA bootstrap to runtime packaging 2026-09-03 19:59:26 +08:00
Dudu-0223 2f396feca8 Merge branch 'master' into fix/fork-resume-system-prompt 2026-09-03 17:18:21 +08:00
fz 79b3d7a594 refactor: remove str_replace_editor 2026-09-03 17:02:37 +08:00
Dudu-0223 477ff9d5e3 fix(agent-loop): preserve resumed series boundaries 2026-09-03 16:13:45 +08:00
fz e9f8641e76 Merge remote-tracking branch 'origin/master' into feat/remove-str-replace-editor-from-minimal
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
#	.agents/notes/implemented/architecture/2026-08-23-python-sdk-dsh-profile-runtime.i18n.yaml
#	.agents/notes/implemented/architecture/2026-08-23-python-sdk-windows-x64-runtime.i18n.yaml
2026-09-03 16:05:56 +08:00
fz 63795eaa5c feat(minimal): remove str_replace_editor from minimal profiles 2026-09-03 16:03:59 +08:00
mektpoy 1d6633ae04 test(snapshot): sync web goal prompt fixtures 2026-09-03 15:54:30 +08:00
mektpoy 3f848e1aa0 docs(client): align goal bar activation comments 2026-09-03 15:45:09 +08:00
mektpoy c724617593 test(snapshot): migrate packed session fixtures 2026-09-03 15:42:14 +08:00
mektpoy 34f897d1ca refactor(goal): share goal bar resume branch 2026-09-03 15:14:49 +08:00
Dudu-0223 ed8cdafe3f test(web): update resumed conversation golden 2026-09-03 14:56:40 +08:00
mektpoy e26fc35d4b fix(goal): keep manual pause authoritative and show activation
Expose a live goals/get read plus goal/activation-changed for the Web strip, reject model resume of durable paused goals, refresh snapshot and generated documentation surfaces, and record the follow-up decision.
2026-09-03 14:53:20 +08:00
Dudu-0223 6ad01cbd8d fix(web): avoid repeated system prompt on resume 2026-09-03 14:45:01 +08:00
07akioni 0c84f773d9 fix(desktop): align package version with release 2026-09-03 14:05:15 +08:00
07akioni 3e526474a3 Merge remote-tracking branch 'origin/master' into feat/electron
# Conflicts:
#	pnpm-lock.yaml
#	scripts/gen-cordis-catalog.ts
2026-09-03 13:46:37 +08:00
pku-xht c8393a2798 test(pwsh): cover background outcome status mapping 2026-09-03 09:12:29 +08:00
pku-xht ed25d4e15b docs(subprocess): correct probe and terminal failure contracts 2026-09-03 08:58:31 +08:00
pku-xht 29c68b6da9 docs(subprocess): sync native containment evidence 2026-09-03 07:03:00 +08:00
pku-xht 0652b7b4d7 fix(subprocess): close containment review gaps 2026-09-03 06:18:21 +08:00
pku-xht 14c16012fb fix(subprocess): preserve post-commit runner errors 2026-09-03 04:07:57 +08:00
pku-xht ff6a49660f fix(subprocess): tighten native containment settlement 2026-09-03 03:26:42 +08:00
pku-xht bc681d7a54 fix(subprocess): harden cancellation settlement 2026-09-03 01:18:40 +08:00
pku-xht 05b6789425 fix(subprocess): preserve clean range after start errors 2026-09-03 00:59:07 +08:00
pku-xht 35b5d78749 Merge origin/master into subprocess containment 2026-09-02 23:41:30 +08:00
pku-xht fe873955b4 Merge master@313ac567 into subprocess native containment 2026-09-02 23:00:02 +08:00
pku-xht ac1a5891c2 fix(subprocess): close remaining native containment findings 2026-09-02 22:49:46 +08:00
07akioni f749b0dfb7 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	docs/architecture.i18n.yaml
#	docs/config-catalog.i18n.yaml
#	scripts/gen-cordis-catalog.ts
2026-09-02 20:54:40 +08:00
07akioni b272d985f5 test(shell): bound pwsh readiness fallback 2026-09-02 20:09:22 +08:00
07akioni 9f05e5a077 test(shell): assert persistent pwsh result text 2026-09-02 19:55:03 +08:00
07akioni 29e60f2c30 fix(shell): avoid duplicate pwsh bootstrap 2026-09-02 19:40:28 +08:00
07akioni 94651815f2 fix(shell): preserve pwsh prompt readiness 2026-09-02 19:15:38 +08:00
07akioni 633b3c0f69 fix(desktop): keep package helpers platform-neutral 2026-09-02 19:15:18 +08:00
07akioni 44d7ebf12f fix(release): keep desktop version aligned with dsh 2026-09-02 18:40:21 +08:00
07akioni e187001b04 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-02 18:32:40 +08:00
07akioni eeda3cb562 test: stabilize desktop and pwsh coverage checks 2026-09-02 18:32:27 +08:00
07akioni 22461aedb0 feat(desktop): update packaging and auto-update paths for target-specific builds 2026-09-02 18:13:40 +08:00
_Kerman 46d01068c6 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context 2026-09-02 17:58:45 +08:00
_Kerman 0b8956aab9 refactor(agent): move runtime parent into options 2026-09-02 17:56:01 +08:00
07akioni 6bc42c47c2 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-02 16:45:36 +08:00
07akioni d5363c8839 feat(desktop): enhance auto-update configuration and add upload scripts 2026-09-02 16:32:12 +08:00
_Kerman 600dff4ca4 test(tool-subagent): cover missing session registry 2026-09-02 14:34:10 +08:00
_Kerman 8292ea45ba fix(tool-subagent): simplify standing preset cleanup 2026-09-02 13:58:11 +08:00
_Kerman 02b889bff6 Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	docs/subsystems/core.i18n.yaml
#	docs/subsystems/core.md
#	docs/subsystems/core.zh.md
#	packages/api/remotes/package.json
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/README.zh.md
#	packages/core/agent-loop/src/index.ts
#	packages/core/agent-loop/tests/resume.spec.ts
#	packages/subagent/subagent/src/continuation.ts
#	packages/subagent/tool-subagent/src/index.ts
#	packages/subagent/tool-subagent/src/model-selection-settings.ts
#	packages/typert/protocol/README.i18n.yaml
#	packages/typert/protocol/README.md
#	packages/typert/protocol/README.zh.md
2026-09-02 13:39:30 +08:00
_Kerman c8f76ca399 chore: remove unrelated changes from Inbox PR 2026-09-02 11:36:46 +08:00
_Kerman 8fa72e3d60 fix(chat): settle scroll sample before resize follow 2026-09-02 11:26:45 +08:00
_Kerman 3c9410904e Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
#	packages/core/agent-loop/src/index.ts
#	packages/experimental/agent-team/tests/persistence.spec.ts
#	packages/experimental/agent-team/tests/team.spec.ts
#	packages/session-query/session-query/tests/observation.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-09-02 10:26:43 +08:00
07akioni a596a02bbd test(desktop): load pnpm fixture by file URL 2026-09-02 08:26:16 +08:00
_Kerman c3447a2c15 test(headless): cover pre-turn inbox events 2026-09-01 22:00:59 +08:00
_Kerman 6f4b38ea2e docs: refresh agent loop testkit graph 2026-09-01 21:50:28 +08:00
_Kerman ec51b7651f Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
#	packages/core/agent/src/inbox.ts
#	packages/goal/tool-goal/tests/tool-goal.spec.ts
#	packages/skill/tool-skill/tests/tool-skill.spec.ts
#	packages/terminal/terminal-bash/tests/index.spec.ts
2026-09-01 21:46:31 +08:00
_Kerman dc160810da test(agent-loop): use production inbox harness 2026-09-01 21:39:10 +08:00
07akioni 6f9ef57a44 Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-01 20:34:52 +08:00
07akioni f90d57f389 fix(desktop): address lifecycle review findings 2026-09-01 20:22:05 +08:00
_Kerman c91b68409c Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-09-01 20:19:26 +08:00
_Kerman a96ec3dbd6 test(agent-loop): keep inbox internals private 2026-09-01 20:18:04 +08:00
07akioni f026514610 fix(desktop): align merged release lifecycle 2026-09-01 17:27:36 +08:00
07akioni 13f079812e Merge remote-tracking branch 'origin/master' into feat/electron 2026-09-01 16:55:25 +08:00
07akioni 6aaba0c334 feat: windows build & sign 2026-09-01 16:19:43 +08:00
_Kerman 1eebb7c312 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/bundle/headless/package.json
#	packages/compaction/compaction-basic/tests/manual-compaction.spec.ts
#	packages/shell/tool-bash-persistent/package.json
#	packages/shell/tool-pwsh-persistent/package.json
#	packages/skill/tool-skill/package.json
#	packages/subagent/subagent/tests/continuation-inheritance.spec.ts
#	packages/subagent/tool-subagent-report/tests/tool-subagent-report.spec.ts
#	packages/terminal/terminal-bash/package.json
#	packages/terminal/tool-terminal/package.json
#	packages/test-support/agent-loop-testkit/README.i18n.yaml
#	packages/test-support/agent-loop-testkit/README.md
#	packages/test-support/agent-loop-testkit/README.zh.md
#	packages/test-support/agent-loop-testkit/package.json
#	packages/test-support/agent-loop-testkit/tsconfig.json
#	pnpm-lock.yaml
2026-09-01 14:25:18 +08:00
07akioni 194bad298a fix: mac build 2026-09-01 11:58:14 +08:00
_Kerman 3f0b7779e6 test(headless): derive captured session length 2026-09-01 11:23:15 +08:00
_Kerman 9699772fff Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
#	packages/core/agent-loop/tests/contract-regressions.spec.ts
#	packages/core/agent/src/inbox.ts
#	packages/core/agent/tests/agent.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-09-01 11:02:30 +08:00
07akioni cb6685d5b8 Merge remote-tracking branch 'origin/master' into feat/electron 2026-08-31 21:18:11 +08:00
07akioni 5f135ea977 feat: mac code sign & notarize 2026-08-31 21:16:17 +08:00
pku-xht 2660635e63 fix(shell): preserve stderr on provider failure 2026-08-31 20:05:37 +08:00
pku-xht fc19a0a3fa fix(subprocess): clarify provider failures and scope polling 2026-08-31 19:26:08 +08:00
_Kerman 03ec1ca57c fix(agent): preserve explicit identity lifecycle behavior 2026-08-31 17:40:47 +08:00
_Kerman 39517fb22b Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/README.zh.md
2026-08-31 16:53:12 +08:00
_Kerman 8e1c47f82f test(sdk): avoid duplicate projection registry 2026-08-31 16:36:23 +08:00
_Kerman a41c3a300e Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-31 16:29:37 +08:00
pku-xht 6d49ac2ef6 fix(subprocess): align runner bindings with current types 2026-08-31 15:37:14 +08:00
pku-xht fb00331cfa Merge master into subprocess native containment 2026-08-31 15:24:49 +08:00
pku-xht 5e3eaea742 refactor(subprocess): keep runner error bindings one-shot 2026-08-31 15:22:12 +08:00
pku-xht 8bb19f8f7f fix(subprocess): close containment review findings 2026-08-31 14:36:13 +08:00
_Kerman a2de3af0d2 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	apps/cli/package.json
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/examples/agent-spine-demo/package.json
#	packages/goal/goal/package.json
#	pnpm-lock.yaml
2026-08-31 13:43:45 +08:00
_Kerman 700d5407fb Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/api/session-controller/src/control.ts
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
2026-08-31 13:37:55 +08:00
_Kerman 2aeb9920ee test(agent-loop): remove duplicated Inbox fixture 2026-08-31 13:37:23 +08:00
_Kerman 17774f7fb1 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-31 13:37:22 +08:00
_Kerman d776df1106 test(agent-loop): exclude unreachable teardown paths 2026-08-31 13:37:19 +08:00
_Kerman fcad57b3af Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-31 13:37:19 +08:00
_Kerman c33fe6265e fix(agent-loop): restore inbox projection test wiring 2026-08-31 13:37:15 +08:00
_Kerman fc746f7851 refactor(agent-loop): own inbox projection in loop 2026-08-31 13:37:12 +08:00
_Kerman 35371d0f59 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	packages/api/session-controller/src/control.ts
2026-08-31 13:37:12 +08:00
_Kerman b9b2a37528 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	apps/cli/tests/fixtures/dsh-badge/snapshot.ts
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	docs/persistence-catalog.i18n.yaml
#	docs/persistence-catalog.md
#	docs/persistence-catalog.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
#	packages/context/agent-instructions/tests/agent-instructions.e2e.ts
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
#	packages/context/tmux-context/tests/tmux-context.spec.ts
#	packages/core/agent-loop/package.json
#	packages/core/agent-loop/src/agent.ts
#	packages/core/agent-loop/src/index.ts
#	packages/core/agent/src/index.ts
#	packages/core/agent/src/types.ts
#	packages/goal/goal/tests/goal.spec.ts
#	packages/goal/tool-goal/package.json
#	packages/llm/llm-retry/tests/retry.spec.ts
#	packages/session-query/session-query/tests/observation.spec.ts
#	packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
#	packages/test-support/agent-loop-testkit/package.json
#	packages/workflow/workflow-worker-thread/tests/workflow-worker-thread.e2e.ts
#	pnpm-lock.yaml
2026-08-31 13:37:06 +08:00
_Kerman 1101422362 refactor(agent): keep concrete inbox loop-internal 2026-08-31 13:36:49 +08:00
_Kerman ea222a1f72 fix(agent): report missing inbox projection 2026-08-31 13:36:45 +08:00
_Kerman f3858fc2a7 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
2026-08-31 13:36:45 +08:00
_Kerman 77d0ee38d2 docs: refresh Claude SDK notices 2026-08-31 13:36:39 +08:00
_Kerman c46c3df2f2 test: cover projection-aware session helpers 2026-08-31 13:36:34 +08:00
_Kerman 882a87c4bc Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-31 13:36:34 +08:00
_Kerman 37c5dc4b35 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/subsystems/session-projection.i18n.yaml
#	docs/subsystems/session-projection.md
#	docs/subsystems/session-projection.zh.md
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
#	packages/core/agent-loop/README.i18n.yaml
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/README.zh.md
#	packages/core/agent-loop/tests/cancel.spec.ts
#	packages/core/agent/README.i18n.yaml
#	packages/core/agent/README.md
#	packages/core/agent/README.zh.md
#	packages/llm/llm-retry/tests/retry.spec.ts
#	packages/session/session-projection/README.i18n.yaml
#	packages/session/session-projection/README.md
#	packages/session/session-projection/README.zh.md
2026-08-31 13:36:28 +08:00
_Kerman 8b0ea3e461 fix(session-controller): derive queues from projections 2026-08-31 13:35:52 +08:00
_Kerman e5f2fbd9a2 fix(agent): validate durable inbox reconstruction 2026-08-31 13:35:49 +08:00
_Kerman 4b1683c287 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/module-graph.i18n.yaml
2026-08-31 13:35:46 +08:00
_Kerman a20c5ad0a3 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
2026-08-31 13:35:39 +08:00
_Kerman 31ba0d6ae3 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/api/session-controller/tests/session-projections.host.spec.ts
2026-08-31 13:35:33 +08:00
_Kerman 87d041b2c1 Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery 2026-08-31 13:35:25 +08:00
_Kerman f9227e0be6 docs(session-projection): keep registry contract unchanged 2026-08-31 13:35:21 +08:00
_Kerman 6ea9dd565b Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672 2026-08-31 13:35:17 +08:00
_Kerman 8eb0c50e74 test(session-projection): scope projection assertions 2026-08-31 13:35:03 +08:00
_Kerman 43bc150338 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672 2026-08-31 13:35:03 +08:00
_Kerman 9ff0212fbd Merge origin/master into xtr/durable-inbox-recovery 2026-08-31 13:34:56 +08:00
_Kerman 90b7ac94e2 test: trim unrelated inbox changes 2026-08-31 13:34:25 +08:00
_Kerman bd3b651ea8 refactor(agent): remove inbox service 2026-08-31 13:34:22 +08:00
_Kerman df2bae9639 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672 2026-08-31 13:34:09 +08:00
_Kerman 633daf6624 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2672
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/core/agent-loop/tests/cancel.spec.ts
2026-08-31 13:33:36 +08:00
_Kerman aaf50dc39a refactor(agent): back Inbox with a durable projection 2026-08-31 13:32:59 +08:00
07akioni 903a926897 feat: optimize ipc perf 2026-08-31 11:54:28 +08:00
07akioni 52b84e8564 chore: missing content 2026-08-31 11:54:28 +08:00
07akioni 2ef85b1e17 fix: windows build 2026-08-31 11:54:28 +08:00
07akioni 19444907f0 feat: electron 打包 2026-08-31 11:54:28 +08:00
Chinesezjc 3137b33ba9 ci: redirect Node compile cache to data-volume runner temp 2026-08-29 18:51:06 +08:00
pku-xht 976456db8e Merge master to adopt Flash E2E coverage 2026-08-29 17:39:31 +08:00
pku-xht 93c11689e7 fix(subprocess): address containment review findings 2026-08-29 15:44:13 +08:00
pku-xht aaa5117ebd fix(subprocess): preserve literal spawn error stacks 2026-08-29 13:08:43 +08:00
pku-xht c0e7b98169 test(subprocess): preserve optional spawn error keys 2026-08-29 13:02:36 +08:00
pku-xht 13f3b2c172 fix(subprocess): match native spawn error semantics 2026-08-29 12:13:30 +08:00
pku-xht 60dd357a02 fix(subprocess): preserve native spawn error shape 2026-08-29 11:36:27 +08:00
pku-xht 1760649ba7 refactor(subprocess): derive native owner state 2026-08-29 11:28:33 +08:00
pku-xht a416b13eb5 fix(subprocess): preserve Windows search miss errors 2026-08-29 10:28:44 +08:00
pku-xht 5aab793045 fix(subprocess): preserve clean Windows range settlement 2026-08-29 09:08:34 +08:00
pku-xht 6e7b152de7 fix(subprocess): preserve native runner contracts 2026-08-29 07:57:59 +08:00
pku-xht 23af4410f6 fix(subprocess): resolve source runner loader absolutely 2026-08-29 06:14:15 +08:00
pku-xht a825b8d042 fix(subprocess): close native containment contract gaps 2026-08-29 05:56:29 +08:00
pku-xht 40279aea17 fix(subprocess): preserve native runner stdio 2026-08-29 00:03:12 +08:00
pku-xht 635c35991c test(subprocess): type Linux exec mock 2026-08-28 22:38:18 +08:00
pku-xht a0bc2ea803 fix(subprocess): preserve native runner launch semantics 2026-08-28 22:34:09 +08:00
pku-xht aca5c0cb2b fix(subprocess): release Windows runner stdio owners 2026-08-28 21:29:09 +08:00
pku-xht 32b2b24099 fix(subprocess): close runner stdio handles 2026-08-28 20:30:11 +08:00
pku-xht 8096aba953 Merge remote-tracking branch 'origin/master' into codex/subprocess-native-containment 2026-08-28 19:55:24 +08:00
pku-xht 8ef28f76c0 fix(subprocess): preserve Windows runner spawn semantics 2026-08-28 19:55:16 +08:00
pku-xht 9aecbad9dd fix(subprocess): keep runner worker-loadable 2026-08-28 19:16:34 +08:00
pku-xht b65575442d Merge origin/master into codex/subprocess-native-containment 2026-08-28 18:34:22 +08:00
_Kerman 71c34ff13a docs: refresh module graph 2026-08-28 18:18:07 +08:00
pku-xht a95f0b368f fix(subprocess): contain escaped descendants with native owners 2026-08-28 18:15:49 +08:00
_Kerman ebce3a5f04 refactor(agent): make runtime identity explicit 2026-08-28 17:44:56 +08:00
pku-xht c302bedc3a test(subprocess): defer fake runner disconnect 2026-08-27 02:37:00 +08:00
pku-xht ef0815db7f chore(subprocess): document disconnect recheck 2026-08-27 01:33:06 +08:00
pku-xht 1250b41054 docs(subprocess): clarify Windows runner disconnect 2026-08-27 00:57:21 +08:00
pku-xht 81257defd2 fix(subprocess): preserve clean Windows runner close 2026-08-27 00:41:59 +08:00
pku-xht 07408ff0f1 fix(subprocess): preserve failed teardown state 2026-08-26 23:43:15 +08:00
pku-xht 3caa9e4f5a fix(subprocess): retain failed cleanup ownership 2026-08-26 22:16:20 +08:00
pku-xht aa4d80c0a9 Merge origin/master into codex/subprocess-native-containment 2026-08-26 20:05:15 +08:00
pku-xht 166004a6a8 fix(subprocess): preserve Windows startup errors 2026-08-26 20:01:10 +08:00
pku-xht 6a34a0dd4b fix(subprocess): isolate Linux native target group 2026-08-26 19:00:40 +08:00
pku-xht 215c8c8132 fix(subagent): wait for real startup evidence 2026-08-26 18:51:14 +08:00
pku-xht 20f04373c8 Merge commit 'bd88d2ee9f08b3c3aba8c06df527a91d8b76b51d' into codex/subprocess-native-containment
# Conflicts:
#	packages/e2b/subprocess-e2b/README.i18n.yaml
#	packages/e2b/subprocess-e2b/README.md
#	packages/e2b/subprocess-e2b/README.zh.md
#	packages/subprocess/README.i18n.yaml
#	packages/subprocess/README.md
#	packages/subprocess/README.zh.md
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	packages/subprocess/subprocess/README.i18n.yaml
#	packages/subprocess/subprocess/README.md
#	packages/subprocess/subprocess/README.zh.md
#	packages/subprocess/win32-process/README.i18n.yaml
#	packages/subprocess/win32-process/README.md
#	packages/subprocess/win32-process/README.zh.md
2026-08-26 15:25:12 +08:00
pku-xht cf6f25d283 fix(subprocess): keep native runner private 2026-08-26 14:10:08 +08:00
pku-xht 678cfdfdb4 Merge commit '0c177e17a23692d018a79bae59ac9a2db6eba59c' into codex/subprocess-native-containment
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.md
#	.agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/input.json
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/bundle/acp-app/package.json
#	packages/examples/jsonrpc-demo/src/packaged-bin.ts
#	packages/subagent/subagent-acp/src/run.ts
#	packages/subagent/subagent-acp/tests/subagent-acp.spec.ts
#	packages/subprocess/subprocess-local/README.i18n.yaml
#	packages/subprocess/subprocess-local/README.md
#	packages/subprocess/subprocess-local/README.zh.md
#	pnpm-lock.yaml
#	scripts/smoke-python-runtime.py
2026-08-25 23:22:25 +08:00
pku-xht ff413cfe5e fix(subprocess): align async pid evidence 2026-08-25 22:24:20 +08:00
pku-xht 26969588b7 fix(subprocess): address native containment review findings 2026-08-25 21:51:22 +08:00
pku-xht 8e9bac4a27 fix(subprocess): align native containment contract 2026-08-25 20:06:00 +08:00
pku-xht ae77bc0b2f fix(subprocess): defer native wait allocation 2026-08-22 09:18:31 +08:00
pku-xht df00bb9c44 test(subprocess): make stream EOF checks causal 2026-08-22 08:58:18 +08:00
pku-xht da042b8e10 test(subprocess): cover native settlement edges 2026-08-22 08:46:33 +08:00
pku-xht eb17028720 fix(subprocess): preserve post-start runner failures 2026-08-22 08:23:34 +08:00
pku-xht b3fcca9598 refactor(subprocess): remove synthetic abort race 2026-08-22 08:00:30 +08:00
pku-xht 63df2b31a7 docs(subprocess): document runner lifecycle helpers 2026-08-22 07:58:00 +08:00
pku-xht 71e27e4667 fix(subprocess): close native lifecycle gaps 2026-08-22 07:35:51 +08:00
pku-xht bde6a9a041 test(subprocess): keep validation assertions explicit 2026-08-22 06:51:45 +08:00
pku-xht 7228c821b7 refactor(subprocess): centralize stream settlement 2026-08-22 06:40:12 +08:00
pku-xht 923f919b49 test(subprocess): remove Windows cwd recursively 2026-08-22 06:22:13 +08:00
pku-xht 610ed618e9 fix(subprocess): release Windows target cwd 2026-08-22 06:04:54 +08:00
pku-xht 6e1b8eda77 fix(subprocess): preserve runner result boundary 2026-08-22 05:30:09 +08:00
pku-xht 0c80f9e7a1 test(subprocess): align native evidence with plan 2026-08-22 05:05:31 +08:00
pku-xht b6dc88be51 fix(subprocess): preserve forced Linux outcomes 2026-08-22 04:59:36 +08:00
pku-xht df8e3d7c37 fix(subprocess): settle pre-start Windows runner failures 2026-08-22 04:58:31 +08:00
pku-xht 3acb847442 fix(subprocess): preserve clean spawn failure settlement 2026-08-21 23:32:27 +08:00
pku-xht fa8b83816e fix(subprocess): defer native handshake allocation 2026-08-21 23:03:59 +08:00
pku-xht 4997fb7706 Merge master into native containment 2026-08-21 23:00:57 +08:00
pku-xht e2de9667d3 Merge master into native containment 2026-08-21 22:50:27 +08:00
pku-xht f72ce2299a fix(subprocess): keep native Job ownership in runner 2026-08-21 22:49:56 +08:00
pku-xht a17c5822b5 Merge master into native containment
# Conflicts:
#	packages/subprocess/win32-process/package.json
#	scripts/check-workspace-constraints.ts
2026-08-21 22:10:22 +08:00
pku-xht 153f1579e1 refactor(subprocess): restore native containment baseline 2026-08-21 22:08:49 +08:00
pku-xht ee1a933e82 Merge remote-tracking branch 'origin/codex/subprocess-native-containment' into codex/subprocess-native-containment 2026-08-21 13:06:42 +08:00
pku-xht ac69b1e0c4 fix(subprocess): decouple Windows target stdio 2026-08-21 12:56:34 +08:00
Chinesezjc 32f369c3a0 test(subprocess): widen Windows stdout-end race budget to 5s
The native Windows containment tests expect the stdout stream to end
shortly after the direct target exits, but 1s was too tight under the
Windows CI runner's cold-start and process-teardown jitter. Use a 5s
bounded race so the assertion still proves EOF eventually arrives
without flaking on slow runner startup.
2026-08-21 11:57:52 +08:00
pku-xht 60999be602 test(shell): remove stale lint suppression 2026-08-21 11:19:37 +08:00
pku-xht 5b215932f8 fix(subprocess): hand off Windows process observation 2026-08-21 11:18:43 +08:00
pku-xht b03e52fab0 refactor(subprocess): simplify Windows runner settlement 2026-08-21 10:20:24 +08:00
pku-xht ea7de60840 fix(subprocess): keep Windows Job ownership in parent 2026-08-21 09:51:21 +08:00
pku-xht e70405847c fix(subprocess): complete runner resource release 2026-08-21 08:37:50 +08:00
pku-xht f913c813d2 fix(subprocess): harden managed-range cleanup 2026-08-21 08:21:33 +08:00
pku-xht 43b093a502 fix(subprocess): close runner pipe handles 2026-08-21 08:08:10 +08:00
pku-xht 889cbd45f1 fix(subprocess): order runner stdio shutdown 2026-08-21 07:49:15 +08:00
pku-xht 975afc9e47 fix(subprocess): release Windows runner stdio 2026-08-21 07:36:08 +08:00
pku-xht 36db13dfb3 fix(subprocess): require verified range settlement 2026-08-21 07:20:43 +08:00
pku-xht 3f2f381209 docs(subprocess): align provider-owned termination semantics 2026-08-21 06:20:25 +08:00
pku-xht c7d228c737 test(subprocess): make Windows EOF proof deterministic 2026-08-21 05:58:53 +08:00
pku-xht bf5a8e42a3 fix(subprocess): keep shared handle semantics provider-neutral 2026-08-21 05:42:12 +08:00
pku-xht e6bc1f2e1d fix(subprocess): close managed launch gaps 2026-08-21 05:08:36 +08:00
pku-xht 7fec86d6a1 refactor(subprocess): derive runner execution plane 2026-08-21 03:25:17 +08:00
pku-xht 2c0ebebdf8 test(subprocess): type close interleaving fixture 2026-08-21 03:00:48 +08:00
pku-xht 63b038e469 fix(subprocess): preserve close snapshot state 2026-08-21 02:59:09 +08:00
pku-xht 81374783d3 fix(subprocess): close native runner lifecycle gaps 2026-08-21 02:57:53 +08:00
pku-xht 97e0c9607d test(subprocess): cover native probe fallback 2026-08-21 01:55:20 +08:00
pku-xht 273c2847e5 fix(subprocess): support packaged native runner 2026-08-21 01:17:12 +08:00
pku-xht 1fc04feb77 fix(subprocess): close native platform CI gaps 2026-08-20 23:59:55 +08:00
pku-xht 21820b6816 test(subprocess): cover async scope failures 2026-08-20 23:47:19 +08:00
pku-xht 60c729250e test(subprocess): preserve Windows job descendant 2026-08-20 23:34:13 +08:00
pku-xht 436f9e9686 fix(subprocess): preserve native failure semantics 2026-08-20 23:24:22 +08:00
pku-xht 6df3ef4f97 refactor(subprocess): pass runner pid to liveness probe 2026-08-20 22:46:49 +08:00
pku-xht f6a56d4882 test(subprocess): align native platform fixtures 2026-08-20 22:41:03 +08:00
pku-xht b25e790e36 test(subprocess): cover runner liveness polling 2026-08-20 22:37:52 +08:00
pku-xht 0f3db79902 docs(subprocess): record native systemd evidence 2026-08-20 22:32:06 +08:00
pku-xht b9c0028f95 fix(subprocess): launch systemd scopes without pipe mode 2026-08-20 22:28:30 +08:00
pku-xht eb60d74155 fix(subprocess): harden native range settlement 2026-08-20 22:16:24 +08:00
pku-xht 8b81d77d54 refactor(subprocess): use mode as fallback warning latch 2026-08-20 20:58:33 +08:00
pku-xht a160bd55fc Merge PR1 into native containment 2026-08-20 20:38:46 +08:00
pku-xht ad44ba547a test(subagent-acp): explain fallback warning coexistence 2026-08-20 20:35:08 +08:00
pku-xht 2ee78dd576 Merge commit '10ba2cf9aed8aaf7198bf4a12e1773e1c5dfa627' into codex/subprocess-native-containment 2026-08-20 20:14:03 +08:00
pku-xht 6532fff458 test(subagent-acp): allow provider fallback warning 2026-08-20 20:02:57 +08:00
pku-xht a7b64e24ee Merge PR1 into native containment 2026-08-20 20:01:20 +08:00
pku-xht cd1a8552f7 Merge codex/subprocess-win32-process-primitives into codex/subprocess-native-containment 2026-08-20 19:29:33 +08:00
pku-xht e9c095ab4b Merge codex/subprocess-win32-process-primitives into codex/subprocess-native-containment 2026-08-20 19:18:42 +08:00
pku-xht 1ada79af81 test(subprocess): cover settled scope waits 2026-08-20 18:58:36 +08:00
pku-xht 700812811e Merge codex/subprocess-win32-process-primitives into codex/subprocess-native-containment 2026-08-20 18:45:37 +08:00
pku-xht 7185a62d58 fix(subprocess): harden native runner lifecycle 2026-08-20 18:41:30 +08:00
pku-xht d778e83b2b fix(subprocess): route fallback warning through logger 2026-08-20 17:38:01 +08:00
pku-xht 4c164cd163 fix(subprocess): close native containment CI gaps 2026-08-20 17:29:22 +08:00
pku-xht 884cd6be70 Merge codex/subprocess-win32-process-primitives into codex/subprocess-native-containment
# Conflicts:
#	packages/subprocess/win32-process/package.json
2026-08-20 16:27:21 +08:00
pku-xht 894f6aeb8a fix(subprocess): contain escaped descendants with native owners 2026-08-20 16:26:19 +08:00
5916 changed files with 148958 additions and 32100 deletions

No files matched your search

+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/README.md
README.md: ae8e4724d610c97d74910d7dec5c95af69e93281
README.zh.md: 8cecc7068d9efc5e2ebb78d2301d03633f70f137
README.md: 8bf1adf875b54eb4580b4d189dfeed07c9f671c0
README.zh.md: ff9bdb358d584d4f4ad0aea295c31d8d8fff9376
+1 -1
View File
@@ -20,7 +20,7 @@ The active lifecycle tree is the working inventory: browse its lifecycle/class f
## Classification
Each Agent Note belongs to one path-encoded class from the closed set in `scripts/agent-note-tree.ts`; the classification gate rejects other folders. Adding a class requires updating the canonical set and this section. See the [classification Agent Note](implemented/process/2026-06-20-agent-note-classification.md).
Each Agent Note belongs to one path-encoded class from the closed set in `scripts/agent-note-tree.ts`; the classification gate rejects other folders. Adding a class requires updating the canonical set and this section.
| Class | What it covers |
|---|---|
+1 -1
View File
@@ -22,7 +22,7 @@
## 分类
每份 Agent Note 属于 `scripts/agent-note-tree.ts` 中封闭集合里的一个路径编码类别;分类门禁拒绝其他文件夹。新增类别需要同时更新规范集合与本节。见[分类 Agent Note](implemented/process/2026-06-20-agent-note-classification.zh.md)。
每份 Agent Note 属于 `scripts/agent-note-tree.ts` 中封闭集合里的一个路径编码类别;分类门禁拒绝其他文件夹。新增类别需要同时更新规范集合与本节。
| 类别 | 覆盖范围 |
|---|---|
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-11-runtime-arg-validation.md
2026-06-11-runtime-arg-validation.md: 22283c76719a26f733a8125bf263810d53a92c3c
2026-06-11-runtime-arg-validation.zh.md: f748b7e01b233edb8b3303898cc339dfacd16967
@@ -1,6 +1,7 @@
# Agent Note: Runtime arg validation at the model boundary
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-11-runtime-arg-validation.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 模型边界处的运行时参数校验
Status: implemented
Archived: 2026-09-04
[English](2026-06-11-runtime-arg-validation.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-11-structured-error-taxonomy.md
2026-06-11-structured-error-taxonomy.md: a5c1c6e6120eefd3bc96090cfa4536fb83afa796
2026-06-11-structured-error-taxonomy.zh.md: 54a937c5595aa5645e4cc0f66a6d1a2efc232588
@@ -1,6 +1,7 @@
# Agent Note: Structured error taxonomy
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-11-structured-error-taxonomy.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 结构化错误分类体系
Status: implemented
Archived: 2026-09-04
[English](2026-06-11-structured-error-taxonomy.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-17-filesystem-capability-seam.md
2026-06-17-filesystem-capability-seam.md: a0c898c1d127a7828037b3a59d04ff73c82e31ba
2026-06-17-filesystem-capability-seam.zh.md: 0442333a0a7cbc4fcae0f4b02db1700ce6aafc9e
@@ -1,6 +1,7 @@
# Agent Note: Filesystem capability seam — ctx.fs, local backend, and model-facing filesystem tools
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-17-filesystem-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 文件系统能力 seam——ctx.fs、本地后端与面向模型的文件系统工具
Status: implemented
Archived: 2026-09-04
[English](2026-06-17-filesystem-capability-seam.md) | 中文
@@ -1,6 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/bug-fix/2026-07-30-approval-panel-command-cap.md
2026-07-30-approval-panel-command-cap.md: 0bfdc2d00fa4a0f9fa9ee71400d6f3cc2350e617
2026-07-30-approval-panel-command-cap.zh.md: a086888b12c0164b931019f4d73102bd11bccf4b
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-18-agent-lifecycle-and-ownership-contracts.md
2026-06-18-agent-lifecycle-and-ownership-contracts.md: 012346d9e5b8bf4fd661423b3c398e93e513659d
2026-06-18-agent-lifecycle-and-ownership-contracts.zh.md: 4f8aaac32dfa3d84a449f12441c23371f1a3a27d
@@ -1,6 +1,7 @@
# Agent Note: Agent lifecycle and ownership contracts
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-18-agent-lifecycle-and-ownership-contracts.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Agent 生命周期与所有权约定
Status: implemented
Archived: 2026-09-04
[English](2026-06-18-agent-lifecycle-and-ownership-contracts.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-20-branded-ids.md
2026-06-20-branded-ids.md: 3078ebc7035c8c5a86c7a743a0452b0ebddf6c7d
2026-06-20-branded-ids.zh.md: 3a7d7c319c9fc14724af306b8c601afa759a18e7
@@ -1,6 +1,7 @@
# Agent Note: Branded IDs everywhere they belong
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-20-branded-ids.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 在所有应有之处使用 branded ID
Status: implemented
Archived: 2026-09-04
[English](2026-06-20-branded-ids.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-06-30-bash-stdin-env-trusted-plugin-api.md
2026-06-30-bash-stdin-env-trusted-plugin-api.md: b9883c88d091e6e932da7c65b8b7fe4d107c0fa4
2026-06-30-bash-stdin-env-trusted-plugin-api.zh.md: 884b83de21243e27fa39f7840adfffebc398a9b0
@@ -1,6 +1,7 @@
# Agent Note: stdin + extra env on the bash seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-06-30-bash-stdin-env-trusted-plugin-api.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 在 bash seam 上支持 stdin 与额外 env
Status: implemented
Archived: 2026-09-04
[English](2026-06-30-bash-stdin-env-trusted-plugin-api.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-02-fs-per-session-cwd.md
2026-07-02-fs-per-session-cwd.md: 81dafda9ba71bd2746926e8baa0f4eaf76748429
2026-07-02-fs-per-session-cwd.zh.md: aa05ed41615f29d580595a66d4743d4baf02b1a9
@@ -1,6 +1,7 @@
# Agent Note: Resolve filesystem paths against the caller's session cwd
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-02-fs-per-session-cwd.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 相对文件系统路径按调用方的会话 cwd 解析
Status: implemented
Archived: 2026-09-04
[English](2026-07-02-fs-per-session-cwd.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-05-subagent-provider-lifecycle-events.md
2026-07-05-subagent-provider-lifecycle-events.md: a15c3e6faee993902547174fe9ea235d07d9ec2f
2026-07-05-subagent-provider-lifecycle-events.zh.md: 49e55a3b148775ed7e676b5f55058ef1427a86c6
@@ -1,6 +1,7 @@
# Agent Note: Subagent provider-lifecycle events — `subagent/provider-added` / `subagent/provider-removed`
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-05-subagent-provider-lifecycle-events.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Subagent 提供方生命周期事件——`subagent/provider-added` / `subagent/provider-removed`
Status: implemented
Archived: 2026-09-04
[English](2026-07-05-subagent-provider-lifecycle-events.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-06-tool-result-retention-library.md
2026-07-06-tool-result-retention-library.md: 5ac8547036ed0b45ec6e55e6fb213a98b7c3df8f
2026-07-06-tool-result-retention-library.zh.md: b18fdd60f529f9e6df6b8fc7e3c90f9a39e65fc8
@@ -1,6 +1,7 @@
# Agent Note: Tool result retention library
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-06-tool-result-retention-library.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 工具结果保留库
Status: implemented
Archived: 2026-09-04
[English](2026-07-06-tool-result-retention-library.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-12-scoped-layers-store.md
2026-07-12-scoped-layers-store.md: d3060696ef54c8d06cd0724179dec49682c721e1
2026-07-12-scoped-layers-store.zh.md: f5482a5a76724128fb445fbd7c21a2f61b8634c1
@@ -1,6 +1,7 @@
# Agent Note: Shared scoped-layer storage
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-12-scoped-layers-store.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 共享作用域分层存储
Status: implemented
Archived: 2026-09-04
[English](2026-07-12-scoped-layers-store.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-15-llm-model-catalog-and-acp-selection.md
2026-07-15-llm-model-catalog-and-acp-selection.md: c5f6644d4746a8a962e7ab843493fda3862a8c0a
2026-07-15-llm-model-catalog-and-acp-selection.zh.md: 539f2f9a2f9d3d7b48b3ecabca4b401e32c5702c
@@ -1,6 +1,7 @@
# Agent Note: Advisory LLM catalogs and per-session ACP model selection
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-llm-model-catalog-and-acp-selection.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 建议性 LLM 目录与 ACP 会话级模型选择
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-llm-model-catalog-and-acp-selection.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-15-lsp-capability-seam.md
2026-07-15-lsp-capability-seam.md: 3cce6eb3c7d8afef53aa675440c7eea1e990721d
2026-07-15-lsp-capability-seam.zh.md: c424a794a6662a655565dde6337c49543c5a8085
@@ -1,6 +1,7 @@
# Agent Note: LSP capability seam and model-facing query tool
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-lsp-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: LSP 能力 seam 与面向模型的查询工具
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-lsp-capability-seam.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-15-replay-token-meter-service.md
2026-07-15-replay-token-meter-service.md: 1e6832f1bd049a9568b3af3b925211f0665de288
2026-07-15-replay-token-meter-service.zh.md: 6d00d5e1511aa66818689ccec7d4b023c291f9aa
@@ -1,6 +1,7 @@
# Agent Note: Replay token meter service
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-15-replay-token-meter-service.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 回放式 token 计量服务
Status: implemented
Archived: 2026-09-04
[English](2026-07-15-replay-token-meter-service.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-17-local-spill-startup-cleanup.md
2026-07-17-local-spill-startup-cleanup.md: c9567cab8b1193b9ea6dbc0ad3fae2bc18af9656
2026-07-17-local-spill-startup-cleanup.zh.md: 97f6d641ab7e09da401c5632804f6e27ad78d850
@@ -1,6 +1,7 @@
# Agent Note: One-shot startup cleanup for local spill files
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-17-local-spill-startup-cleanup.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 本地 spill 文件的一次性启动清理
Status: implemented
Archived: 2026-09-04
[English](2026-07-17-local-spill-startup-cleanup.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-19-package-owned-invariant-service.md
2026-07-19-package-owned-invariant-service.md: 6ebdd0edbe04766280fb9aae7067ba861b2ce010
2026-07-19-package-owned-invariant-service.zh.md: dde72faed7249d64b939aaca1bc5d452eeed7bde
@@ -1,6 +1,7 @@
# Agent Note: Package-owned invariant service contract
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-19-package-owned-invariant-service.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 包拥有的不变式服务约定
Status: implemented
Archived: 2026-09-04
[English](2026-07-19-package-owned-invariant-service.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-20-todo-event-ownership.md
2026-07-20-todo-event-ownership.md: 3dfcd604393d05265eb895fa50647338830bd38f
2026-07-20-todo-event-ownership.zh.md: 8dabf8f0cde4ad8af325b00eb1be9d7b7011233f
@@ -1,6 +1,7 @@
# Agent Note: todo event types belong to their producer
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-20-todo-event-ownership.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: todo 事件类型归其生产方所有
Status: implemented
Archived: 2026-09-04
[English](2026-07-20-todo-event-ownership.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-22-unified-send-and-coalesced-user-messages.md
2026-07-22-unified-send-and-coalesced-user-messages.md: d2e39f4efd122d9e0dbb45a082779afa2ff42941
2026-07-22-unified-send-and-coalesced-user-messages.zh.md: 37c43fcb7bfa81b177e8ed00876e913e3ddf6ad6
@@ -1,6 +1,7 @@
# Agent Note: Unify agent delivery on send(target × wakeup) and coalesce injected context into user/message
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-22-unified-send-and-coalesced-user-messages.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 将 agent 投递统一到 send(target × wakeup) 并把注入的上下文合并进 user/message
Status: implemented
Archived: 2026-09-04
[English](2026-07-22-unified-send-and-coalesced-user-messages.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-23-toolview-dissolution.md
2026-07-23-toolview-dissolution.md: d84255f697886556a46c0511aa89f2c4bfd886d8
2026-07-23-toolview-dissolution.zh.md: 9ae339361193a9b97f7bba44904af0c01e7f3fa0
@@ -1,6 +1,7 @@
# Agent Note: Toolview dissolution — tool rows are per-view keyed slots
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-23-toolview-dissolution.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: toolview 溶解——工具行即 per-view keyed slot
Status: implemented
Archived: 2026-09-04
[English](2026-07-23-toolview-dissolution.md) | 中文
@@ -1,6 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-08-04-credentials-yaml-and-user-environment-layer.md
2026-08-04-credentials-yaml-and-user-environment-layer.md: 44bdea243671093b34a6338ed1c95bf25bcc78f4
2026-08-04-credentials-yaml-and-user-environment-layer.zh.md: 4d2893c57bfdf8bbd1529cc0ba8336dbc3ecd233
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-24-adapter-owned-reasoning-effort-capabilities.md
2026-07-24-adapter-owned-reasoning-effort-capabilities.md: f5c240145dc7f405f8bc1f66b6b5f7f68991eb80
2026-07-24-adapter-owned-reasoning-effort-capabilities.zh.md: 81994d4908bd9531cc7db35634bf768372ace1d7
@@ -1,6 +1,7 @@
# Agent Note: Adapter-owned reasoning effort capabilities
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-24-adapter-owned-reasoning-effort-capabilities.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 适配器持有的推理强度能力
Status: implemented
Archived: 2026-09-04
[English](2026-07-24-adapter-owned-reasoning-effort-capabilities.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-25-web-command-surfaces-and-assembly.md
2026-07-25-web-command-surfaces-and-assembly.md: bfb7d2697a979efc8101581d42f4ab223d1b1e97
2026-07-25-web-command-surfaces-and-assembly.zh.md: d81f70403d22efb2203bbe221a45035fc3d6503f
@@ -1,6 +1,7 @@
# Agent Note: Web command business surfaces and assembly (ui-commands / ui-skill / ui-subagent)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-25-web-command-surfaces-and-assembly.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Web 命令业务面与装配(ui-commands / ui-skill / ui-subagent)
Status: implemented
Archived: 2026-09-04
[English](2026-07-25-web-command-surfaces-and-assembly.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-25-web-input-machine-and-slash-pipeline.md
2026-07-25-web-input-machine-and-slash-pipeline.md: b6d485d495717770ebb5148880b3c8c1cb23b948
2026-07-25-web-input-machine-and-slash-pipeline.zh.md: 69ed9a40f4dd9a316f147e3077c9167e1ee46eeb
@@ -1,6 +1,7 @@
# Agent Note: Web input state machine, composer slots, and the slash pipeline (ui-conversation input / ui-input-trigger)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-25-web-input-machine-and-slash-pipeline.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: Web 输入状态机、composer slot 与 slash 流水线(ui-conversation input / ui-input-trigger)
Status: implemented
Archived: 2026-09-04
[English](2026-07-25-web-input-machine-and-slash-pipeline.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-26-job-registry-seam.md
2026-07-26-job-registry-seam.md: d1a8cfb7bc4f1a8e313dfa8d59a5d0e5f8106190
2026-07-26-job-registry-seam.zh.md: 1624a410407d8e6ac8cc85a6fe1480e0867eef6d
@@ -1,6 +1,7 @@
# Agent Note: The job registry is a capability seam (`dsh-jobs` / `dsh-jobs-local`)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-26-job-registry-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 任务注册表是一个能力 seam(`dsh-jobs` / `dsh-jobs-local`)
Status: implemented
Archived: 2026-09-04
[English](2026-07-26-job-registry-seam.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-26-subprocess-seam.md
2026-07-26-subprocess-seam.md: bd8cba2197a56acef2ab12e9b43e254fbc744ee5
2026-07-26-subprocess-seam.zh.md: ba23649e9e68f578bdc9ba26a026981d0afe981f
@@ -1,6 +1,7 @@
# Agent Note: The subprocess service is its own seam under the bash executors (`dsh-subprocess` / `dsh-subprocess-local`)
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-26-subprocess-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 进程服务是 bash 执行器之下的独立 seam(`dsh-subprocess` / `dsh-subprocess-local`)
Status: implemented
Archived: 2026-09-04
[English](2026-07-26-subprocess-seam.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-27-dispose-ladder-to-consumer.md
2026-07-27-dispose-ladder-to-consumer.md: 7e1b189c1d3a32c6f812bba5d5f06f7a6a89c29b
2026-07-27-dispose-ladder-to-consumer.zh.md: 6c61cad5d4a62c5c976894f72d0ff5e9c69184bc
@@ -1,6 +1,7 @@
# Agent Note: The dispose ladder belongs to its consumer, not the subprocess seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-27-dispose-ladder-to-consumer.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: dispose 阶梯归其消费方所有,而非 subprocess seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-27-dispose-ladder-to-consumer.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-28-directory-picker-capability-seam.md
2026-07-28-directory-picker-capability-seam.md: e2f3312b7429078eb81cba62ab1727e71fe67b74
2026-07-28-directory-picker-capability-seam.zh.md: 41a05febe58c353242cc389e20bbf84b3620b7c9
@@ -1,6 +1,7 @@
# Agent Note: A capability-discriminated directory-picker seam for the web-GUI host
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-28-directory-picker-capability-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: web GUI 宿主的能力可辨识目录选择 seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-28-directory-picker-capability-seam.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-28-user-settings-seam.md
2026-07-28-user-settings-seam.md: 75fef5ed976d80acb4e26133c2b98d8504042121
2026-07-28-user-settings-seam.zh.md: 9797e5a3288a7709f3541784778c514890015410
@@ -1,6 +1,7 @@
# Agent Note: user-settings seam (`ctx.settings`) and the file provider
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-28-user-settings-seam.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 用户设置 seam(`ctx.settings`)与文件提供方
Status: implemented
Archived: 2026-09-04
[English](2026-07-28-user-settings-seam.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-29-package-regrouping.md
2026-07-29-package-regrouping.md: 7073d868fe73f75477cf9a6fa2c5f7c425d014a8
2026-07-29-package-regrouping.zh.md: b33ecf1600ce9c9796e932c14c5df9782bb3a94b
@@ -1,6 +1,7 @@
# Agent Note: Regroup packages/ by measured clustering
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-29-package-regrouping.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 按实测聚类重新划分 packages/ 分组
Status: implemented
Archived: 2026-09-04
[English](2026-07-29-package-regrouping.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-29-request-level-llm-config-credentials.md
2026-07-29-request-level-llm-config-credentials.md: dda5cd6710ad432a25bce1214078098f4e797559
2026-07-29-request-level-llm-config-credentials.zh.md: e521920586c8fe9d3a498e0369d1693096562973
@@ -1,6 +1,7 @@
# Agent Note: request-level LLM configuration and the credential seam
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-29-request-level-llm-config-credentials.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 请求级 LLM 配置与凭据 seam
Status: implemented
Archived: 2026-09-04
[English](2026-07-29-request-level-llm-config-credentials.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-adapter-owned-max-token-defaults.md
2026-07-30-adapter-owned-max-token-defaults.md: 30b1840a9ff80092609698e63d061a7d82503e5d
2026-07-30-adapter-owned-max-token-defaults.zh.md: 770c61ce1514fa8e16d4cbabed4dd97b5b7b40fb
@@ -1,6 +1,7 @@
# Agent Note: Adapter-owned max-token defaults
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-adapter-owned-max-token-defaults.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 适配器持有的最大 token 默认值
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-adapter-owned-max-token-defaults.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-client-locale-full-rollout.md
2026-07-30-client-locale-full-rollout.md: 381a0ed642d7452cb4be2c9a755bf33c120cba76
2026-07-30-client-locale-full-rollout.zh.md: 81ae013e86c6ecb608a15c3664c5203233e27e40
@@ -1,6 +1,7 @@
# Agent Note: Full client copy rollout onto the typed locale seat
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-client-locale-full-rollout.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: client 文案全量接入 typed locale 席位
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-client-locale-full-rollout.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-command-row-copy-contract.md
2026-07-30-command-row-copy-contract.md: e5f1828e433015a1381ae4f7951c518bb6040107
2026-07-30-command-row-copy-contract.zh.md: 7efe1aa65ddd992e64807e229b1da682f5bc320b
@@ -1,6 +1,7 @@
# Agent Note: Command row copy is split between the row and the handler
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-command-row-copy-contract.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 命令条目文案分别由条目与 handler 负责
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-command-row-copy-contract.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-config-plane-boundaries.md
2026-07-30-config-plane-boundaries.md: 6c1f0c8643e9f1b1879b213e01bb8555b6980afe
2026-07-30-config-plane-boundaries.zh.md: 16b05a45afbb944e3ed9f1121e067d8d2bbf1f48
@@ -1,6 +1,7 @@
# Agent Note: what the configuration plane exposes, and who may overwrite what
Status: implemented
Archived: 2026-09-04
English | [中文](2026-07-30-config-plane-boundaries.zh.md)
@@ -1,6 +1,7 @@
# Agent Note: 配置面暴露什么,以及谁有权覆盖什么
Status: implemented
Archived: 2026-09-04
[English](2026-07-30-config-plane-boundaries.md) | 中文
@@ -0,0 +1,6 @@
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write .agents/notes/archived/architecture/2026-07-30-settings-write-path-integrity.md
2026-07-30-settings-write-path-integrity.md: 00e9639bc3f2bec8d4f10d3ba30611c822d3d966
2026-07-30-settings-write-path-integrity.zh.md: 887941a8bcfadc7f8745b77f2c650452df5df0b9
Loaded 100 of 5916 files, more files were not shown because too many files have changed in this diff. Show more