Commit Graph
100 Commits
Author SHA1 Message Date
ZiyaZhang 3a05ddec79 docs: compile the self-contained Task Surface model sketches
The doc-typecheck opt-out ratio gate now fails at 74/146 after merging
master. The model and branded-ID blocks are self-contained, so check
them as ordinary ts fences (72/146 remain opted out); re-record the
pairing sidecar.
2026-08-08 05:28:14 -07:00
ZiyaZhang 4db962ecbb Merge remote-tracking branch 'origin/master' into feat/web-inline-file-mentions 2026-08-08 04:46:48 -07:00
ZiyaZhang 525651d883 Merge remote-tracking branch 'upstream/master' into feat/web-inline-file-mentions
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-primitives/README.i18n.yaml
2026-08-07 09:50:43 -07:00
ZiyaZhang 4c45355012 style(web): mention chips take the markdown anchor language
Link-blue at rest with hover underline, matching URL-promoted inline
code; an at-rest underline collides with monospace descenders inside
the code chip.
2026-08-07 05:06:21 -07:00
ZiyaZhang 7ef39dc4b0 refactor(deliverables): reuse the chain claim test for the mention vocabulary 2026-08-07 05:00:47 -07:00
ZiyaZhang fe505e1e91 feat(web): a prose mention of a produced file opens it
The chatFileMentions service (provided by ui-deliverables beside its
turn-tail entry, reached via ctx.get) resolves inline-code tokens in the
closing message against the turn's produced locations: exact path or
unique basename links, ambiguity and unknowns stay inert. MarkdownText
gains the optional fileMentions seam — settled renders only, never
inside anchors.
2026-08-07 03:02:10 -07:00
ZiyaZhang 7aedc02ae3 docs: regenerate module graph for ui-deliverables 2026-08-06 06:39:08 -07:00
ZiyaZhang 4767285694 Merge remote-tracking branch 'upstream/master' into feat/web-workspace-file-links
# Conflicts:
#	apps/cli/package.json
#	pnpm-lock.yaml
2026-08-06 06:24:53 -07:00
ZiyaZhang f00a44fd44 refactor(web): move the produced-files row into its own plugin package
ui-conversation now owns only the conversation.chat.turnTail hole; the row,
its derivation, and its copy live in @deepseek-ai/dsh-client-ui-deliverables,
composed in or out by one cordis.yml line.
2026-08-06 06:21:19 -07:00
ZiyaZhang 3742214226 Merge remote-tracking branch 'upstream/master' into feat/web-workspace-file-links
# Conflicts:
#	apps/web/tsconfig.json
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.zh.md
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/ToolRow.module.css
#	packages/client/ui-conversation/src/client/chat/chat-flow.ts
#	packages/client/ui-conversation/tests/chat-view.spec.tsx
#	packages/host/apiproxy/src/native-path-opener.ts
#	tsconfig.host.json
2026-08-06 04:44:13 -07:00
ZiyaZhang 87d0fc6fc4 cleanup: drop leftovers from the retired HTTP-serving revision 2026-08-06 04:31:34 -07:00
ZiyaZhang 7c1ae32e55 fix(web): address preview badge review 2026-08-05 23:26:39 -07:00
ZiyaZhang 652f3b61bf docs: tighten Task Surface lifecycle contract 2026-08-05 00:56:18 -07:00
ZiyaZhang 6cd0eea52d docs: propose Task Surface protocol 2026-08-05 00:27:49 -07:00
ZiyaZhang 047ea50987 feat(web): add preview badge to empty hero 2026-08-04 01:46:52 -07:00
ZiyaZhang 5884a44e6b docs(ui): clarify approval wait ownership 2026-08-03 02:43:27 -07:00
ZiyaZhang 59d923395a fix(web): document remote welcome constraints 2026-08-03 00:14:35 -07:00
ZiyaZhang e63df333a1 test(web): normalize abort snapshot date 2026-08-02 23:45:47 -07:00
ZiyaZhang 0a4ad25ce7 fix(web): expand aborted Bash rows 2026-08-02 23:06:00 -07:00
ZiyaZhang 57343cfeb8 fix(web): expose loopback policy safely 2026-08-02 13:30:53 -07:00
ZiyaZhang 7a71ab9a92 fix(web): share loopback hostname policy 2026-08-02 13:24:49 -07:00
ZiyaZhang 5ee544081a fix(web): unblock remote welcome onboarding 2026-08-02 12:56:31 -07:00
ZiyaZhang e72978ba98 fix(tool-goal): scope the wrap-up no-more-tools clause to the current run
The injected instruction persists as a durable user message, so an
unscoped 'Do not call any more tools.' stays in every later request's
history. Scope it: '...in this run; further work waits for the user's
next instruction.' A/B probes on deepseek-v4-pro show the scoped wording
is non-inferior in-turn (4/4 zero tool calls, closing quality unchanged)
and next-turn tool use is unaffected under both wordings; the scoped
form states the instruction's actual lifetime.
2026-08-02 07:29:18 -07:00
ZiyaZhang 820a5a97f1 review(tool-goal,llm-replay): address ds-review-bot round one
- fromRequest placeholder: the last two braces of a consecutive } run now
  terminate the placeholder, so patterns may end with a brace quantifier
  (bot warning; the truncated pattern could even silently mis-match since
  an unclosed { is literal in JS regexes)
- document that derived JSONL entries pass through the same resolution
- widen ToolRunContext/deferContext seam docs beyond composite-only usage
  (source JSDoc, README pair, core-data-structures type-equiv blocks)
- pin direct-human blocked as uninstructed, completing the
  goal-round/direct-human x complete/blocked test quadrant
2026-08-02 07:19:26 -07:00
ZiyaZhang 8f77ab467f test(web): harden live thinking tail observation 2026-08-02 06:12:13 -07:00
ZiyaZhang 666ef95f81 fix(tool-goal): let the model deliver a wrap-up message after a goal-round complete/blocked
A goal round reporting complete or blocked used to conclude the turn at
the tool result, so the model never spoke after the call and sessions
ended on a bare update_goal card. The terminal update now defers one
plugin-sourced <goal_complete>/<goal_blocked> instruction onto its
result asking for a grounded closing message without further tool
calls; the turn then ends through the ordinary no-tool-calls stop.
Direct-human mutations stay uninstructed. Wording chosen by A/B
sampling on deepseek-v4-pro; one extra request per goal lifecycle.

New keyless ACP snapshot goal-wrapup drives the shipped app through
create -> round one -> autonomous complete and pins the injection, the
same-turn closing message, and the completed turn end.
2026-08-02 05:58:45 -07:00
ZiyaZhang 04d43e3b19 feat(llm-replay): resolve {{fromRequest:...}} placeholders against the live request
A scripted sidecar cannot know values minted at run time, so terminal
goal updates (which must echo the random goal id) were previously
un-scriptable. Placeholders in scripted entries now resolve against the
request corpus at stream time: last match wins, capture group 1 or the
whole match substitutes, and unmatched/invalid/unterminated patterns
fail loud.
2026-08-02 05:58:31 -07:00
ZiyaZhang 975b57b54a feat(web): follow live reasoning tail while collapsed 2026-08-02 05:29:25 -07:00
ZiyaZhang 7aa9e51084 fix(cli): give shipped web search a 60s budget 2026-08-01 06:15:16 -07:00
ZiyaZhang 46681457c2 Merge remote-tracking branch 'upstream/master' into agent/fix-frontend-plugin-loader-dependency 2026-08-01 02:12:33 -07:00
ZiyaZhang 90c5635355 fix(cli): point missing frontend dist at full build 2026-08-01 02:12:22 -07:00
ZiyaZhang 8ce4f07f92 fix(web): defer math rendering while streaming 2026-08-01 00:58:50 -07:00
ZiyaZhang 1e334fa955 feat(web): render TeX math in Markdown 2026-08-01 00:05:23 -07:00
ZiyaZhang 5e68d812d1 fix(web): let context injection cards fit content 2026-07-31 05:20:54 -07:00
ZiyaZhang 215bf15f78 fix(web): surface terminal turn failures 2026-07-31 03:10:48 -07:00
ZiyaZhang 9aeae0e422 docs(mcp): correct crash recovery wording 2026-07-31 03:09:29 -07:00
ZiyaZhang dc7f3253f6 fix(examples): keep memory configs provider-owned 2026-07-31 02:34:52 -07:00
ZiyaZhang 07f51593a0 docs(examples): simplify memory onboarding 2026-07-31 02:28:09 -07:00
ZiyaZhang e2fb026dee docs(examples): clarify reference memory limits 2026-07-31 02:08:35 -07:00
ZiyaZhang 7e929d3d50 feat(examples): add generic memory MCP overlays 2026-07-31 02:00:14 -07:00
ZiyaZhang 82c1788c25 docs: re-record the README pair and translation snapshot after the master merge 2026-07-30 23:07:02 -07:00
ZiyaZhang 235390031a docs: refine internal testing notice 2026-07-30 22:39:08 -07:00
ZiyaZhang 01ccfc0ad3 fix(ci): align Knip config with CI 2026-07-30 20:58:28 -07:00
ZiyaZhang 45e5317ecd fix(ci): stabilize merged coverage gates 2026-07-30 20:52:35 -07:00
ZiyaZhang 9095d3874a test: file the committed-manifest case under the parser it exercises 2026-07-30 20:45:12 -07:00
ZiyaZhang 45627bd93b fix(ci): tolerate initializing Lefthook lock 2026-07-30 20:17:04 -07:00
ZiyaZhang f13cef0148 test: re-record the translation prompt snapshot for the development.md edit 2026-07-30 19:59:02 -07:00
ZiyaZhang 421594472a docs: evaluate SPDX conjunctions and read every Python manifest
Reject a copyleft conjunct in an expression like '(MIT OR Apache-2.0)
AND GPL-3.0-only', which a permissive-alternative search accepted.
Discover python/*/pyproject.toml by glob, accept single-quoted TOML
literals, and fail on a requirement whose name cannot be read. Say that
the development tier records who declares a package rather than what a
build bundles, since a runtime dependency can pull one in transitively,
and sync the contributor guide's pre-commit list.
2026-07-30 19:54:27 -07:00
ZiyaZhang 9f9d6fc0e2 docs: regenerate notices after merging master 2026-07-30 19:46:26 -07:00
ZiyaZhang 7b8fa8c510 Merge branch 'master' into docs/third-party-notices 2026-07-30 19:46:01 -07:00
ZiyaZhang 83d6be50aa Merge remote-tracking branch 'upstream/master' into feat/gui-full-access-confirmation 2026-07-30 19:32:51 -07:00
ZiyaZhang 85b3fcbd19 Merge remote-tracking branch 'origin/feat/gui-full-access-confirmation' into feat/gui-full-access-confirmation 2026-07-30 19:32:27 -07:00
ZiyaZhang a189597830 Merge remote-tracking branch 'upstream/master' into feat/gui-full-access-confirmation
# Conflicts:
#	packages/client/ui-primitives/src/Modal.tsx
#	packages/client/ui-primitives/tests/atoms.spec.tsx
2026-07-30 19:30:41 -07:00
ZiyaZhang 44bd19056c docs: close the remaining silent-omission paths in the notices generator
Derive the manifest set from each pnpm-workspace.yaml members list, so a
new member area is read when declared. Locate Python requirement arrays
by TOML table and scan them quote-aware, so author-named dependency
groups and extras-bearing requirements are no longer dropped. Search the
nested Landlock store for metadata, reject a non-permissive runtime
license outright, and omit the dev-tooling sentence when it has no
subject.
2026-07-30 10:28:16 -07:00
ZiyaZhang 4c5922edad Merge remote-tracking branch 'upstream/master' into feat/gui-full-access-confirmation 2026-07-30 09:28:09 -07:00
ZiyaZhang 2c8da83fc8 test(web): refresh plan review access golden 2026-07-30 09:27:49 -07:00
ZiyaZhang 6427660dca docs: fix notices template claim and close generator omission paths
The template still described the removed doc-sync gate; it now states the
pre-commit + test-lane mechanism that actually runs. Read the nested
native/landlock-run/packages manifests, accept PEP 508 requirements with
no version or with a marker, and reject a vendor/README.md table that
stops covering a vendored directory instead of dropping it silently.
Extend the pre-commit glob to the generator and the build-time pin
source; record the deletion trigger gap the test lane backstops.
2026-07-30 09:23:00 -07:00
ZiyaZhang bf4ff3a696 Merge remote-tracking branch 'upstream/master' into feat/gui-full-access-confirmation
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 09:20:43 -07:00
ZiyaZhang d2521a7e61 test(web): refresh queue collapse access golden 2026-07-30 08:09:59 -07:00
ZiyaZhang 04c73df2f6 docs: keep notices fresh at commit time instead of a new CI gate
Regenerate THIRD_PARTY_NOTICES.md from a pre-commit job whenever a
manifest, lock file, vendor manifest, or pyproject is staged, and assert
the committed bytes inside the generator spec the test lane already runs.
Drops the separate doc-sync gate: no extra CI process, and a dependency
edit no longer bounces back from CI to rerun a generator.
2026-07-30 07:56:13 -07:00
ZiyaZhang b6dd855a7c Merge remote-tracking branch 'origin/master' into feat/gui-full-access-confirmation 2026-07-30 07:49:38 -07:00
ZiyaZhang fa67427c39 Merge remote-tracking branch 'origin/master' into feat/gui-full-access-confirmation
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 07:48:33 -07:00
ZiyaZhang 19606bc331 docs: generate THIRD_PARTY_NOTICES.md and gate it in doc-sync
Replace the hand-written inventory with scripts/gen-third-party-notices.ts,
verified fresh by a doc-sync leaf gate. Tier by declaring workspace area
rather than manifest section, so test-support runtime declarations stay
dev-only and every mountable plugin's dependencies are disclosed as
runtime; list the pnpm-patched packages; point the Python closure at
uv.lock. Re-record the translation-prompt snapshot the README link
invalidated.
2026-07-30 07:27:13 -07:00
ZiyaZhang c2bce3cac6 fix(client): unblock full access CI gates 2026-07-30 06:45:36 -07:00
ZiyaZhang e517e75344 Merge remote-tracking branch 'origin/master' into feat/gui-full-access-confirmation 2026-07-30 06:01:56 -07:00
ZiyaZhang 8d4bf5ae41 chore(docs): refresh generated graph records 2026-07-30 06:01:47 -07:00
ZiyaZhang 6d416b06c5 fix(client): gate every full access picker 2026-07-30 05:48:33 -07:00
ZiyaZhang 9eb0ef4c3e feat(client): confirm before enabling full access 2026-07-30 04:50:27 -07:00
ZiyaZhang 9a26aea16d Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 04:06:06 -07:00
ZiyaZhang eb10123015 test(web): simplify approval snapshot assertions 2026-07-30 03:57:57 -07:00
ZiyaZhang 981d87d4b8 Merge branch 'master' into docs/third-party-notices 2026-07-30 03:50:54 -07:00
ZiyaZhang 391dac8d5f Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 03:50:35 -07:00
ZiyaZhang 98c6380f07 Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 03:25:49 -07:00
ZiyaZhang 51711a3772 docs(ui-sidebar): defer session status ownership 2026-07-30 02:41:32 -07:00
ZiyaZhang 285cd60744 docs(ui-workspace): align approval status contracts 2026-07-30 02:40:31 -07:00
ZiyaZhang 9eee7cb462 Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 02:36:30 -07:00
ZiyaZhang 472ba33cd9 refactor(ui-workspace): reuse status dot vocabulary 2026-07-30 02:17:14 -07:00
ZiyaZhang c153b51281 Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 02:13:11 -07:00
ZiyaZhang 8014abffa0 test(web): cover waiting approval in built graph 2026-07-30 02:13:02 -07:00
ZiyaZhang 61803f1a46 fix(ui-workspace): expose session status accessibly 2026-07-30 02:07:36 -07:00
ZiyaZhang 01ff68636a Merge remote-tracking branch 'upstream/master' into fix/session-waiting-approval 2026-07-30 01:57:54 -07:00
ZiyaZhang 7401587ac2 fix(ui-workspace): show approval-waiting sessions 2026-07-30 01:12:48 -07:00
ZiyaZhang 8a915893e7 docs: add THIRD_PARTY_NOTICES.md disclosing third-party dependencies
List direct dependencies by tier (vendored Cordis sources, runtime npm,
dev-only npm, Python SDK, build-time tools) with upstream links and
licenses, and link it from the License section of both READMEs.
2026-07-29 21:29:49 -07:00
ZiyaZhang 3dd0ce33f4 Merge remote-tracking branch 'upstream/master' into fix/gui-todo-default-collapsed
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-29 08:10:13 -07:00
ZiyaZhang 64d5ce600b Merge remote-tracking branch 'upstream/master' into fix/gui-todo-default-collapsed
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/README.zh.md
2026-07-28 23:54:01 -07:00
ZiyaZhang 9e45736298 fix(gui): default todo panel to collapsed 2026-07-28 23:52:08 -07:00
ZiyaZhang c7076e15b8 fix(hooks): bound regex reuse across reloads 2026-07-28 20:33:08 -07:00
ZiyaZhang ec72d0b57e fix(hooks): share matcher validation instances 2026-07-28 20:10:21 -07:00
ZiyaZhang 774755ef2d Merge remote-tracking branch 'upstream/master' into fix/hook-matcher-validation 2026-07-28 19:57:23 -07:00
ZiyaZhang 7121d25c8a test(hooks): keep regex lifecycle ownership explicit 2026-07-28 19:56:03 -07:00
ZiyaZhang ea4103c14a Merge remote-tracking branch 'upstream/master' into fix/hook-matcher-validation 2026-07-28 19:49:35 -07:00
ZiyaZhang d3d370e4d2 fix(hooks): reuse compiled Codex matchers 2026-07-28 19:48:59 -07:00
ZiyaZhang 2630de8bd6 Merge remote-tracking branch 'upstream/master' into fix/subprocess-password-scrub
# Conflicts:
#	docs/module-graph.md
2026-07-28 19:14:40 -07:00
ZiyaZhang dfba46c6d4 Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata 2026-07-28 16:53:21 -07:00
ZiyaZhang f8082eef63 Merge remote-tracking branch 'upstream/master' into fix/translation-brief-uncommitted-pair 2026-07-28 16:53:21 -07:00
ZiyaZhang fad111c7e6 Merge remote-tracking branch 'upstream/master' into fix/hook-matcher-validation 2026-07-28 16:14:51 -07:00
ZiyaZhang 2fbcfa16ea docs(hooks): align Codex matcher authority 2026-07-28 11:09:02 -07:00
ZiyaZhang b75e7cf6a1 Merge remote-tracking branch 'upstream/master' into fix/translation-brief-uncommitted-pair 2026-07-28 10:41:53 -07:00
ZiyaZhang 9189857860 test(i18n): refresh gc-pinned prompt snapshot 2026-07-28 10:41:48 -07:00
ZiyaZhang d7d32f47f1 Merge remote-tracking branch 'upstream/master' into fix/workspace-instruction-frame-metadata 2026-07-28 10:38:11 -07:00