Repository navigation
Replies: 13 comments
Integration update — 2026-10-08The annotations are now integrated onto upstream Current integrated source: 9d9544d6fc. The Windows package is an unsigned local custom build, not an official release. The original focused patch link remains useful for reviewing the feature in isolation. |
|
Follow-up: I audited a reported case where the visible reasoning did not appear to refer clearly to an annotation. The persisted user message contained the complete selected passage, source locator, and current request. That is different from a dropped annotation; visible reasoning alone is not a transport receipt. New submissions now include explicit model-visible guidance in the existing version-1 text envelope: selected passages are the targets of the following request; quoted text is context rather than fresh instructions; per-selection comments are user feedback; delegated work should carry the relevant quotation/comment/request rather than only its source link. Old envelopes remain readable. This is recorded ordinary user-message content, not an unlogged system injection, and does not guarantee model compliance or automatic propagation through arbitrary external agents. Actual Windows Electron testing verified quotation, comment and guidance in the next model request after editing/regenerating, together with live skill invocation and restart. The fixture uses a local scripted provider. No private transcript or research document is included in this report. Related community approach: #8206; transcript extension-point discussion: #4201. A separate MCP hop is not needed for supplying the quotation with the user's message. Source: https://github.com/Myoontyee/deepseek-harness/commit/0d6e8af4925d42704be2377013a5082ae4658f72 |
|
Follow-up: annotation preview and comment management are now implemented in my desktop prototype. The old collapsed list made these actions hard to discover. The composer now has:
The quoted source remains unchanged. This affects unsent composer annotations; the existing serialized annotation format is preserved. Validation: 8 focused annotation tests passed. A real Windows Desktop test covered hover preview, editing, per-item deletion, clear-all, retained request text, light/dark themes and a narrow viewport. Using a local model adapter to inspect the actual outgoing request, it confirmed that only the retained quotation and its final comment reached the model, together with the request and source-message identity. Implementation: https://github.com/Myoontyee/deepseek-harness/commit/cbe4a174dc |
|
Follow-up implementation: selection now offers both Add to conversation and Add annotation. The second action opens a remark editor: the selected passage is the quotation, and the typed remark is stored separately in that same annotation. Cancelling leaves the composer unchanged. A quotation previously used Selection.toString(), which could duplicate and vertically split rendered KaTeX glyphs. It now preserves selected Markdown structure and original TeX, treating partial formula selections atomically. Draft previews and sent annotations render Markdown; ordinary content-only clipboard behavior remains unchanged. Existing malformed quotations cannot be reconstructed without their original source and should be selected again. Implemented in https://github.com/Myoontyee/deepseek-harness/commit/42e33ab906 . Focused tests and a real isolated Desktop run verified the direct remark action, preview/edit/delete, TeX preservation and the exact annotation/remark payload received by the scripted model. Light/dark and constrained viewport checks also passed. No claim of an entirely green repository-wide suite: unrelated existing account-notice/style checks remain failing. |
|
Fixed a long-annotation preview regression: the HoverCard correctly constrained its viewport height but clipped the non-scrolling child list. The annotation list now shrinks inside that bound and scrolls independently, with scrollbar theme tokens, contained vertical overscroll, and a focusable region for keyboard scrolling. Implementation: https://github.com/Myoontyee/deepseek-harness/commit/5f21f49a71 . A real Desktop test with four long remarks at 850×650 verifies scrolling down with the mouse wheel, reaching the last annotation with End, editing that last remark, and scrolling back to the top. The 45 annotation/HoverCard tests and the normal pre-push typecheck passed. |
|
Follow-up UX change: annotation remarks are now editable directly in the hover preview. Clicking a remark edits in place; the pencil focuses its textarea instead of opening a separate manager. Each change updates the same annotation immediately. The count chip remains the full-manager entry. Interactive previews stay open while a contained control has focus, even after the pointer leaves; outside clicks or Escape dismiss them, except Escape during IME composition. Existing long-list scrolling and read-only quotations remain intact. Implementation: https://github.com/Myoontyee/deepseek-harness/compare/5f21f49a71...057d39aa6b . All 47 focused annotation/HoverCard tests and the normal pre-push typecheck passed. A real Desktop run verified inline Chinese text insertion, Enter as a newline without sending the request, pointer-exit focus retention, dismiss/reopen retention, scrolling, and annotation payload delivery. Unsent remarks remain window-memory drafts; this does not add restart persistence. |
|
The customization has now been rebased onto official The annotation implementation retains Markdown/LaTeX in the quoted passage, supports inline remark editing directly in the preview, scrolls long annotation lists, and supports individual deletion and clearing. Existing message-copy/selection-copy customizations preserve the new upstream secret masking by default, rather than recovering hidden credentials from the source text. Verification used the actual Windows installer downloaded from the successful CI run, extracted and launched with an isolated profile and a local test model. It covered preview/edit/delete/clear, viewport fitting, multi-window unread synchronization, and checked the exact quote, remark, source message and LaTeX delivered to the model. This is a targeted regression check, not a claim of exhaustive platform testing. Source/build: https://github.com/Myoontyee/deepseek-harness/actions/runs/38685929080 Windows and both macOS architectures are built in CI (unsigned desktop builds). Android is built unsigned in CI and signed locally with the existing key before publication; no private signing key or password is stored in the repository or Actions Secrets. |
|
The annotation flow now also works on selected text in the right-hand file preview, not only conversation messages. Both Add to conversation and Add annotation use the existing session composer admission path. The quote preserves Markdown/LaTeX and the source file address, while the user remark stays separate and remains editable in the existing annotation preview. The downloaded Windows installer was tested with an isolated profile and a local deterministic model: selecting a Markdown file, adding a remark, submitting, and checking the exact file path, quoted formula and remark received by the model all passed. Editing the source file is not implicit in this action. Isolated HTML iframe selections and images without a text layer remain unsupported. Implementation: https://github.com/Myoontyee/deepseek-harness/commit/46a7396c53 The separate paired-device conversation work is described in #9773 . |
|
更新:定制版新增注释快捷键,且对话正文和右侧文件预览两种入口一致:
同时改进复制:划词和整条消息都保留 Markdown 链接、LaTeX 和表格,其他普通文字不带加粗等样式;Ctrl+Shift+V 仍可在 DSH 内粘贴为纯文本。 源码:https://github.com/Myoontyee/deepseek-harness/commit/b189ac75d9 本地注释/弹窗测试 30 项通过,并验证了桌面实际快捷键与复制/粘贴交互。 修复误点遮罩导致长备注丢失:注释弹窗忽略外侧点击;Esc/取消后提供“继续编辑暂存注释”与显式删除。暂存仅限当前页面,不跨页面离开或应用重启。已验证长备注关闭后恢复和成功添加后清除暂存。 |
|
更新:个人定制分支已经适配官方 v0.2.1-alpha.4,补上更轻量的划词注释输入体验。 选中文字后可就地补充评论;点击外部不再丢弃长评论;Esc 暂存并收起,Ctrl+Enter 添加。聊天与文件引用共用输入组件,已有语音输入能力时可用于注释补充。注释引用仍保留公式/表格/链接并遵守官方脱敏,普通消息复制继续去掉加粗等装饰。 说明:这里的未提交注释草稿用于当前界面的收起/恢复,不承诺跨应用重启保存;已发送注释随会话记录持久化。测试覆盖了外部点击、快捷键、恢复长评论和最终客户端启动。 源码与安装包:https://github.com/Myoontyee/deepseek-harness/releases/tag/custom-v0.2.1-alpha.4.20261016.1 |
后续实现补报与设计:每条批注保持自己的引用对象本帖已有就地批注、文件预览、草稿恢复与快捷键的历史更新。补充尚未同步到本帖的两项定制分支变更:
源码: 这些解决了编号和传输/展示问题,但不能宣称模型从此绝不误解批注。实际需求是“每条评价能识别自己评价的对象”,而不是把一条用户请求拆成互不相干的多个模型调用。 建议进一步形成的契约(待实现/评审)
验收与标准优先扩展现有 composer、序列化、原生会话记录及呈现接口;保持历史记录兼容。新增持久字段先声明类型与兼容读取规则,若触及版本化 Session 事件则走仓库的相邻迁移流程,禁止改写旧日志。输入法组合输入、密钥脱敏和 Markdown/TeX 复制语义继续回归。 确定性用例:重复引文但评论不同、跨会话同文引文、删除/重排后发送、空评论+整体指令、排队期间继续编辑、发送失败恢复、历史消息重写。另用固定任务集评价模型是否将评论归到正确引文、是否遗漏;与序列化正确性分别报告。 本次仅复核源码和已有测试落点,没有新增模型理解效果实测,不能把这些验收目标写成已通过结果。 |
|
补充一次已实现的修复与验证。 用户实际遇到:选中文本添加批注,再输入 现在技能引用正常进入消息发送流程,原文、分点批注和技能文字一起保留;真正的命令仍按自身支持范围处理,文件附件策略不变。新增测试覆盖技能加多条批注、发送失败恢复草稿,以及 Host 技能预处理实际识别引用。相关五个文件共 119 项测试通过,另有 Host 技能测试通过。 这延续了本提案的主要体验:对话正文及右侧文件预览中的选文可以附带独立批注,按编号整理后发送。批注框内 Ctrl+Enter 是添加到草稿,最终发送沿用输入框快捷键;不是对任意侧栏控件都支持批注,也不代表模型一定能完美理解每一条意见。 实现提交:Myoontyee/deepseek-harness@890f80a。已生成本地 Android .20261020.7 包,Windows 包正在完成校验;未发布上游版本。 |
|
补充注释编辑的键盘体验:点击注释数量标签进入编辑器后,Ctrl+Enter(macOS 也接受 Cmd+Enter)执行“完成”,保留已修改评论并关闭编辑器,不发送对话消息。完成按钮旁显示快捷键。普通 Enter 仍用于换行,输入法组字、重复按键及带 Alt/Shift 的组合不会触发完成。 定向测试覆盖评论保留、正文不变、Ctrl/Cmd 快捷键,以及 IME 组字和 keyCode 229 不触发。此项与新增注释时 Ctrl+Enter“加入草稿”分属各自编辑界面,均不代替最终发送操作。 实现:https://github.com/Myoontyee/deepseek-harness/commit/9e4adab1af |
Uh oh!
There was an error while loading. Please reload this page.
When referring to part of an earlier answer, I want to select that passage and attach an annotation without pasting the quotation into my editable request.
The prototype adds Add to conversation / 添加到对话 after selecting text within one Chat message. It creates a separate 1 annotation / 1 条注释 badge above the composer. Clicking the badge expands the quoted passage, its source label, an optional comment field, and a remove action. Further selections accumulate as independent annotations; the request text remains unchanged. Nothing is submitted until the user sends.
On submission, the annotations and ordinary request travel together. The transcript presents a collapsible annotation count, quotations, and comments rather than exposing the serialization envelope. Failed submissions restore annotations while preserving newly typed request text. Annotation-only messages work. Slash commands retain annotations and ask users to remove them before command execution. Draft annotations are scoped to the current Session in browser memory; restarting the application does not retain unsent annotations.
This implementation lives in the existing Conversation/Chat client packages. A versioned text envelope records quotation text, optional comment, source Session deep link, and message key in the ordinary persisted user-message text, so model-visible input is reconstructable without adding a new Session event generation. The shared parser leaves malformed envelopes visible as ordinary text. A future dedicated attachment representation could replace this encoding if maintainers prefer it.
Validation: focused composer/IME/reference tests passed, along with a transcript presentation snapshot. I also exercised the actual Electron Desktop application on Windows with isolated Sessions and a local fixed-response model fixture: selection, count badge, unchanged request, comment editing, multiple annotations, removal, sent presentation, and delivery of the quotation/comment/source to the model input all passed. The annotation envelope and comment were also verified in the compressed Session log. This is not an online-model test.
Implementation: annotation-only source change.
Would this fit the built-in Conversation UX? Is an annotation-specific persisted representation preferable to an ordinary text envelope? I am opening a Discussion first in accordance with the contribution guidance.
Related: Session context menu and deep links.
All reactions