deepseek-harness/packages/client/ui-reference
Yichen Jiang 67a7c79004 Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
2026-08-19 11:01:27 +08:00
..
src Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references 2026-08-19 11:01:27 +08:00
tests Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references 2026-08-19 11:01:27 +08:00
package.json Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references 2026-08-18 15:22:32 +08:00
README.i18n.yaml fix(web): 按评审意见调整引用职责 2026-08-17 21:13:33 +08:00
README.md fix(web): 按评审意见调整引用职责 2026-08-17 21:13:33 +08:00
README.zh.md fix(web): 按评审意见调整引用职责 2026-08-17 21:13:33 +08:00
tsconfig.json refactor(reference): serve discovery through typert Remote faces 2026-08-17 18:35:30 +08:00
tsdown.config.ts feat(web): add file and session references 2026-07-27 15:25:33 +08:00

@deepseek-ai/dsh-client-ui-reference

English | 中文

Unified Web @file and @session source. The browser starts the fileReferences/list and sessionReferenceResolver/candidates Remote calls together for an unquoted token, deterministically orders files before sessions with locale-registered folder/file/session labels, renders the rows under non-selectable file and session section headings, and degrades either failed candidate domain independently. An open @"… token searches files only.

File picks insert the natural text defined by the shared @path grammar. A file closes completion and adds a trailing space; a directory keeps the menu active at its trailing slash so the user can descend another level. Paths containing whitespace use @"path with spaces", and a quote the user opened explicitly remains quoted.

Session picks insert an atomic composer chip whose hidden ref and clipboard representation are the canonical @[label](dsh-session:…) mention returned by the Host. The visible chip uses @label; serialization never reconstructs identity from that label. Ordinary send carries the canonical mention through session.prompt; the session-reference service validates it and captures model context at agent/pre-step.

The /client export is the plugin body (apply/inject) only; candidate encoding stays internal to the registration effect.

Model Experience

Indirectly, through @deepseek-ai/dsh-file-reference-local for path guidance and @deepseek-ai/dsh-session-reference for prepared session snapshots.

KV Cache effect

Candidate browsing has no model effect. A selected file or session changes only the new user-message suffix and any Host-prepared session-reference prefix attached to that message; earlier target history remains unchanged.

Known Limitations and Deferred Work

  • Candidate failure is intentionally quiet — one unavailable or failed Remote discovery call yields no rows for that domain. A session-reference preparation failure occurs after prompt acceptance and terminates that agent turn.
  • No browser-side file scan — Web completion requires a mounted Host ctx.fileReferences provider; the browser cannot fall back to its own filesystem.
  • Session search remains metadata-only — discovery filters session id, cwd, and the latest log-backed title through ctx.sessionReferenceResolver; message bodies and full transcripts are not searched.