Commit Graph
11281 Commits
Author SHA1 Message Date
creatixchu f0f897ef02 fix(host): address ds-review-bot v7 on the adaptive picker chooser
- resolve.ts: gate the display branch on linux (the native backend drives
  exactly darwin/win32/linux) and require a zenity/kdialog binary on PATH,
  probed once at boot (new probe.ts, injected predicate for tests); type
  bindHost as the webserver schema's closed union.
- index.ts: the disposer now joins the removed entry's fiber teardown so
  unloading the chooser settles only after the backend quiesced; export
  BACKEND_PACKAGES as the runtime-string source of truth.
- verify-cordis-config: a composition mounting -auto must declare both
  backends as dependencies (negative-tested), since keyless Linux CI only
  ever resolves browse and would hide a dropped -native dep.
- apps/web scaffold: pin -browse via disable+insert (goldens are
  interaction-specific); fix the stale workspace-flow comment.
- docs/module-graph.md regenerated; README + Agent Note document the
  ssh -L shape, the PATH-only probe, and the new gate (zh pairs re-paired).
- composition spec: assert teardown quiescence without a loader await,
  cover external entry removal, and await the loader's self-dispose
  disabled-persist so it cannot race temp-dir teardown.
2026-07-29 21:09:02 +08:00
07akioni 935871e38b Merge branch 'master' into fix/page-scroll 2026-07-29 21:07:59 +08:00
imccyu 45b21bcc3c fix(client): mark independent replay projections 2026-07-29 21:07:53 +08:00
Tianyi Cui 39c539caf7 Merge remote-tracking branch 'origin/master' into feat/todo-multi-in-progress 2026-07-29 21:06:24 +08:00
Tianyi Cui de4f2a12f0 Merge remote-tracking branch 'origin/master' into worktree/pr823-retarget-latest-20260729 2026-07-29 21:06:24 +08:00
Tianyi Cui d1d29ffba8 Merge remote-tracking branch 'origin/master' into feat/todo-multi-in-progress 2026-07-29 21:05:12 +08:00
Tianyi Cui 5c0c59847b Merge remote-tracking branch 'origin/master' into worktree/pr823-retarget-latest-20260729
# Conflicts:
#	packages/client/ui-skill/README.i18n.yaml
#	packages/client/ui-skill/README.zh.md
#	packages/host/apiproxy/src/api-proxy.ts
#	packages/skill/skill-local/README.i18n.yaml
#	packages/skill/skill-local/README.zh.md
#	packages/skill/skill/README.i18n.yaml
#	packages/skill/skill/README.zh.md
#	packages/skill/tool-skill/README.i18n.yaml
2026-07-29 21:05:09 +08:00
imccyu e10bf246fb Merge pull request #909 from deepseek-harness/fix/tsconfig-paths
fix: add missing client tsconfig path mappings
2026-07-29 21:05:02 +08:00
07akioni 08d097077e fix: cr 2026-07-29 21:03:40 +08:00
Tianyi Cui 4926fa18ec Merge commit 'refs/codex/pr758/live-master' into HEAD 2026-07-29 21:01:55 +08:00
imccyu a93c46c43a Merge branch 'master' into fix/tsconfig-paths 2026-07-29 20:58:57 +08:00
Ziya 6e1c4e4583 Merge pull request #834 from deepseek-harness/fix/translation-brief-uncommitted-pair
fix(i18n): persist uncommitted translation snapshots
2026-07-29 08:58:41 -04:00
Tianyi Cui 4997846e45 refactor(hooks): simplify regex pool entry 2026-07-29 20:58:28 +08:00
imccyu 6e8ad4b382 Merge remote-tracking branch 'origin/master' into worktree-renameweb
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/README.zh.md
#	packages/session-title/session-title/README.i18n.yaml
#	packages/session-title/session-title/README.zh.md
2026-07-29 20:58:22 +08:00
imccyu b23c3d596a Merge remote-tracking branch 'origin/master' into trajectory-history-source 2026-07-29 20:58:04 +08:00
07akioni 2a12057345 fix: ci 2026-07-29 20:56:56 +08:00
Tianyi Cui 0c98a75716 Merge remote-tracking branch 'origin/master' into feat/todo-multi-in-progress 2026-07-29 20:56:11 +08:00
Tianyi Cui b060b6f5f6 Merge commit 'refs/codex/pr758/master' into HEAD
# Conflicts:
#	packages/context/README.i18n.yaml
#	packages/context/README.zh.md
2026-07-29 20:55:09 +08:00
Tianyi Cui 4368c2d40c Merge branch 'master' into fix/translation-brief-uncommitted-pair 2026-07-29 20:54:30 +08:00
imccyu fe42df2426 Merge branch 'master' into fix/tsconfig-paths 2026-07-29 20:50:08 +08:00
Yif e8c265a337 docs: regenerate cordis catalog and doc graphs for shifted source lines 2026-07-29 20:46:30 +08:00
Yif be9042e5a1 docs(client): sync package READMEs and agent notes with the input interaction rework
Update the six touched client package README pairs (slash menu ordering,
localized group titles and dismiss, permission label twin, goal pause,
plan hint localization, useAnchoredMaxHeight) and keep the owning agent
notes current: SlashSource.order and the MenuView dismiss/localize/clamp
face in the slash-pipeline note, the pause verb in the goal bar note.
2026-07-29 20:46:29 +08:00
imccyu 64acc5874b test(client): cover independent trajectory history 2026-07-29 20:46:02 +08:00
Tianyi Cui cf7f14948c test(tui): match durable skill catalog source 2026-07-29 20:45:00 +08:00
Tianyi Cui cf390cc6fd fix(skill): recognize empty catalog tombstones 2026-07-29 20:44:06 +08:00
Tianyi Cui 70730b8669 test(todo): pin configurable policy boundaries 2026-07-29 20:43:31 +08:00
imccyu 14b4689e02 fix: tsconfig.base 2026-07-29 20:42:40 +08:00
07akioni 382884e237 fix: scroll to bottom 2026-07-29 20:39:45 +08:00
07akioni 63e1054916 Merge branch 'master' into fix/page-scroll 2026-07-29 20:36:11 +08:00
Tianyi Cui 77a536855b Merge pull request #894 from deepseek-harness/xjt/readme-proofreading-batch-1
docs(i18n): proofread README translations
2026-07-29 20:30:00 +08:00
07akioni a4602b959e feat: optimize chat page scroll area 2026-07-29 20:26:48 +08:00
xjt 795bdda223 Merge remote-tracking branch 'origin/master' into xjt/readme-proofreading-batch-1
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.zh.md
2026-07-29 20:21:48 +08:00
imccyu e0022ff19e refactor(client): isolate trajectory history 2026-07-29 20:21:37 +08:00
imccyu 37a75aa85e docs: regenerate catalogs for the rename JSDoc and invariant companion
gen-cordis-catalog/gen-cordis-api pick up the SessionTitleService rename
JSDoc and line shifts; gen-doc-graphs picks up the session-title invariant
companion's session/event edge.
2026-07-29 20:20:27 +08:00
xjt de0348bd9e docs(i18n): standardize reviewed README headings 2026-07-29 20:16:45 +08:00
imccyu ee9ea7e3aa docs(client): document independent trajectory history 2026-07-29 20:16:13 +08:00
Tianyi Cui 20a388fc81 Merge remote-tracking branch 'origin/master' into feat/todo-multi-in-progress
# Conflicts:
#	packages/client/connection/src/client/fixture.ts
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-29 20:13:14 +08:00
imccyu acd9716634 fix(client): fixture rename via requireSession, unchanged-title pin gesture
The fixture route shares the requireSession guard, reads the accepted seq off
the appended event, and gains the error-arm spec the workspace.rename case
set as precedent; WorkspaceBrowser drops the unchanged-title block — confirming
the current automatic title IS the pin gesture — and both touched client
READMEs document the new dialog and the unary-settle rule bilingually.
2026-07-29 20:11:43 +08:00
imccyu 1c3fa6edcd fix(apiproxy): title-invalid only for the input's fault, presentable messages
The rename impl narrows on SessionTitleInvalidError: only an
empty-normalizing title maps to title-invalid (its message renders verbatim
in the rename dialog alert), while liveness/disposal races fall to internal;
the absent-service message trims to one presentable sentence. rpc-schemas
gains the title-invalid accept/missing-details lines; cosmetic ordering
(type-only import comment, tsconfig reference, schema import order) restored.
2026-07-29 20:11:19 +08:00
imccyu c8374e916f fix(session-title): typed rename rejection, provenance invariant, contract docs
SessionTitleInvalidError narrows the one rename failure that blames the
input; the fallback-unpin append extracts to appendFallback beside
ensureFallback's guarded twin; a deferred-provider test proves rename
supersedes ACTIVE generation; the invariant companion enforces
messageSeqs-empty iff user-source on every appended session/title event
(tsconfig gains the session-title invariant path); SessionTitleEventData
field docs state the third source kind and the empty-seqs rule, mirrored
into the bilingual core-data-structures page; the note qualifies the
refresh unpin as conditional on a derivable replacement.
2026-07-29 20:10:42 +08:00
Tianyi Cui 11f38aa1c7 Merge remote-tracking branch 'origin/master' into feat/todo-multi-in-progress
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/README.zh.md
2026-07-29 20:06:45 +08:00
Yif 82a43a7240 test(client): cover menu dismiss, goal pause, and permission label paths
Close the per-file coverage gaps the new UI behavior introduced: MenuView
pointer-outside dismiss (all guard branches), the GoalBar pause action,
the ui-slash injected onDismiss face, and the non-kebab permission name
passthrough.
2026-07-29 19:59:42 +08:00
Chinesezjc a0534b7b8a Merge pull request #813 from deepseek-harness/feat/web-terminal-card
feat(web): render bash tool output as a terminal card
2026-07-29 19:53:42 +08:00
Yif 45c9205caf feat(client): localize composer hints and rework input command interaction
Unify the /plan claimed hint with the plan placeholder through a locale
namespace, localize slash menu group titles, replace the PermissionSelect
native select with the Menu primitive, add a goal pause verb chain, clamp
anchored popups to the viewport with scroll-into-view and outside-dismiss,
and fix onPasteUpgrade insertedRange to account for the chip trailing gap.
2026-07-29 19:46:48 +08:00
creatixchu f73bf425ec fix: address ds-review-bot v8 findings
- llm-deepseek: the uncatalogued resolveModel fallback declares text-only
  modalities — the wire route is text-only regardless of catalog
  membership, so "unknown" must not let the host persist-then-fail images.
- session.selectModel also consults the pending-inbox mirror: a queued
  image prompt enters the log only when claimed, after a switch would land.
- attachment store: ensureDurableDirectory syncs every ancestor entry up to
  a caller-vouched boundary regardless of what mkdir reports — a raced
  "already existed" is not "already durable".
- One image walker (imageBlockIn/imageInEvent) now serves both attachment
  authorization and the selection gate; referencedImage therefore also
  authorizes references inside wrapped message content.
- InputHub: the scope disposer resolves the conversation service optionally
  (teardown/HMR must reach quiescence), and a send failing after its scope
  died releases the in-flight drafts instead of restoring them onto a
  disposed shell.
- http-bridge destroys declared-oversize requests with connection: close
  instead of draining a body the client can trickle indefinitely.
- LlmService validates AND detaches modality arrays identically on the
  advisory and exact routes; READMEs record the fourth INVALID_MODEL_INFO
  rejection reason.
- CLI provider docs (JSDoc, README pair, Agent Note pair) describe the
  reuse behavior; llm-route.spec now parses the SHIPPED cordis.yml through
  the production extraction, pinning the row coupling.
- image-display lane pins gallery/rail shape in inline snapshots and the
  object-URL scheme this environment must take; stale host.schema comment
  dropped.
2026-07-29 19:40:17 +08:00
imccyu c54bbc0f7e test(web): cover the spacer-write and dead-lead spacer branches 2026-07-29 19:38:43 +08:00
imccyu a6eba044b2 docs: regenerate cordis catalog for the shifted session-title source line
gen-cordis-catalog embeds source line anchors; the switch extraction and the
ignore annotation moved SessionTitleService, so the services page was stale
against the committed code.
2026-07-29 19:09:31 +08:00
imccyu 833d999abf test(session-title): mark the assertNever guard arm v8-ignored
The default arm of copySessionTitleSource is a closed-union exhaustiveness
guard (compile-time protection for the next kind); it is unreachable at
runtime, so the per-file coverage gate ignores it like every other
assertNever arm.
2026-07-29 19:09:22 +08:00
imccyu d257c3878e feat(web): session-row Rename menu action with a browser-owned dialog
The row menu's Rename item opens the same dialog pattern as workspace rename
(no client-side conflict rule; the host normalizes) and resolves through the
session face via ctx.sessions.binding. Assembled-app snapshot covers the
row-menu -> dialog -> unary-settle flow.
2026-07-29 18:59:46 +08:00
imccyu ff049f1e82 feat(client): ISession.rename settles the title projection cell from the response
rename is a per-session verb on the outward session face (prompt/cancel
precedent), not a list-service verb: the Session calls session.rename and
applies the response {title, seq} to its projection store under
higher-seq-wins, so the list row updates before the push frame. The fixture
api and the test-runtime double follow the same face.
2026-07-29 18:59:34 +08:00