Skip to content

Releases: YunongDai2005/dsh-theone

v0.3.40 — Mistakes are cheap to notice and undo; old topics come back

Choose a tag to compare

@github-actions github-actions released this 19 Oct 09:32

What's changed

  • A topic checks before acting on the wrong thing. Before a topic first changes a file, runs a command or sends something for a message, it asks once in main chat when the message might have belonged to another topic, or when the change points into a different project folder than the topic works in. A confident route in the right folder goes ahead without asking.
  • Corrections are one click and can be undone. Under Recent topic routing, a message that might have belonged elsewhere offers Move to … for the likely topics; a moved message offers Undo, which also takes back the terms that move taught. When main chat notices are hidden, a hesitant route still says in one line which other topic it might be.
  • Topic memory is updated, not overwritten. New names for a topic are added without pushing out the old ones (an old name still finds the topic); a settled value keeps when it was recorded and what it replaced; compaction no longer freezes settled and open items.
  • Old topics are not ruled out for their age. Time only orders topics the message fits equally: "that thing just now" favours the recent one, and a concrete cue ("the deposit from last year") wins over time. A topic taken up after three days or more opens with "last time we noted…" and treats dates, amounts and progress as the last record, not as today's.
  • Archived topics are put away, not lost. A topic whose conversations you archived in DSH stays in routing, offered last and marked archived, so mentioning it brings it back, and it can be continued from the topic workspace. Only a topic whose conversations are gone from disk is left out. Other topics still do not receive an archived topic's memory automatically.
  • New topics file themselves. A topic opened by routing joins the workspace of a topic it draws on, or else the one most topics in its project folder are in; with nothing to go by it stays unfiled. You can move it; nothing is ever merged automatically.
  • A merge can be undone. The target topic lists what was merged into it with Undo merge: the merged topic comes back with its names, settled values, constraints, history, facts, links and workspace, what it brought leaves the target, and what either did since stays where it happened.

Validation: type checks and the full automated suite (321 tests, including the target check, undoing corrections and merges, archived topics and returning to an old topic) pass on DSH 0.2.1-rc.2, and the plugin archive builds. These changes, like 0.3.39's, have not yet been measured with a real model; the routing prompt's wording about time changed. Not yet used by hand in a running DSH.

中文

  • 动手前核对对象:话题为一条消息第一次改文件、跑命令或发东西之前,如果这条消息也可能属于别的话题,或者要改的东西在另一个项目文件夹里,会先在主聊天问你一次;路由有把握、文件夹也对得上就直接做。
  • 纠错一键完成,也能撤销:在「最近的话题分配」里,可能放错的消息旁边有「换到 …」按钮;换过的有「撤销」,撤销时那次纠错学到的词也一起退掉。主聊天提示隐藏时,拿不准的路由仍会用一句话说明也可能是哪个话题。
  • 话题记忆是补充,不是覆盖:新的叫法补充进去,旧名字不会被挤掉(用旧名字仍能找到);定下来的数值记着什么时候定的、之前是多少;压缩后「已定」「待定」还会继续更新。
  • 老话题不会因为久远被排除:时间只在几个同样可能的话题之间排先后:「刚才那个」偏向最近的,「去年那个押金」这类明确线索优先于时间。隔三天以上回到一个话题时,它会先说「上次记录是……」,日期、金额、进度都当作上次的记录,而不是今天的状态。
  • 归档的话题只是收起来了:原会话在 DSH 里归档的话题仍参与路由,排在最后并标「已归档」,提到它时照常接上,也能从话题工作区继续。只有原会话已从磁盘上消失的话题才不参与路由。归档话题的记忆仍不会自动带给其他话题。
  • 新话题自动归类:路由新开的话题会放进它用到的话题所在的工作区,否则放进同一项目文件夹里多数话题所在的工作区;都没有就不归类。可以再移走;不会自动合并任何话题。
  • 合并可以撤销:目标话题上列出合并进来的话题,点「撤销合并」,原话题带着名字、已定值、约束、历史、要点、关联和工作区回来,它带进去的内容从目标话题拿掉,两边合并后新做的事留在原处。

验证:在 DSH 0.2.1-rc.2 上类型检查和全部自动化测试(321 项,含动手前核对、撤销纠错和合并、归档话题、回到老话题)通过,插件包构建正常。和 0.3.39 一样,这些改动还没有用真实模型测过;路由提示词里关于时间的说法改了。还没有在运行中的 DSH 里手动使用过。

v0.3.39 — Main chat reads as one conversation; misrouted messages fix themselves

Choose a tag to compare

@github-actions github-actions released this 19 Oct 07:36

What's changed

  • Main chat hides topic switches by default. Where each message went stays visible in the topic workspace; the one-line notice can be turned back on in Settings.
  • TheOne no longer asks where a message belongs. When the classifier cannot tell which of a few topics you mean, the closest one does the work and the others come along as reference; with nothing to go on it stays in the current topic or starts a new one. The questions while history is being catalogued, after a large-catalog review, when history search fails (the classifier now sees the whole catalog) and from rule-based routing are gone. Only a missing model and an unclear "wrong topic" still ask.
  • A topic hands back a message that is not its own. Before doing anything, the topic that received a message can give it back; TheOne routes it again without that topic and main chat shows the right topic's answer. The first topic's turn is kept out of its history and memory. Once per message.
  • Answers draw on memory from any topic the message refers to. When a message mentions a number, code or name that only another topic has mentioned, the topic doing the work is given what that topic said about it and where it stands, linked or not (private and unlinked topics stay out). When the second look moves a message to another topic, the first comes along as reference. Topics can also search every topic that shares with them.
  • Switching between topics no longer links them. Only a message that draws on several topics, or a topic looking another one up, teaches that two topics are related.
  • Large routing requests are cut down instead of failing. With many topics whose summaries were filled by compaction, a request could pass the size limit and fall back to rules (staying in the current topic) without anyone noticing.
  • Smaller fixes: opening another topic just after a message went elsewhere now teaches that topic the message's terms (it never took effect before); the router pauses only briefly after a rate limit, and failures made together count once; terms work in every script (accented Latin, Cyrillic, Korean, Japanese); "New topic: …" works in English; the classifier writes titles and reasons in the message's language.

Validation: type checks and the full automated suite (312 tests, including the hand-back and memory recall) pass on DSH 0.2.1-rc.2, and the plugin archive builds. These changes have not yet been measured with a real model on InterleaveBench; that run (routing regression, how often topics hand back wrongly, and whether recalled memory improves answers) comes next. Not yet used by hand in a running DSH.

中文

  • 主聊天默认不显示话题切换:每条消息去了哪个话题,在话题工作区里看;想要那行提示可以在设置里打开。
  • 不再问你消息该放哪里:分不清是哪几件里的哪一件时,交给最接近的那件,其余作为参考带上;什么线索都没有时,留在当前话题或新建一个。历史还在整理、话题太多搜不到、历史检索失败(现在改为直接看全部话题)、规则判断拿不准时的追问都去掉了。只有没配置模型、或者你说「分错了」却没说去哪时还会问。
  • 话题发现不是自己的事会交回:收到消息的话题在动手之前可以把消息交回,TheOne 去掉这个话题重新分配,主聊天显示的是正确话题的回答;原话题的那一轮不会进它的历史和记忆。每条消息最多交回一次。
  • 回答能用上任意话题的记忆:消息里的数字、编号、名字如果只在别的话题出现过,干活的话题会拿到那个话题说过的原话和它的现状,不管两者有没有关联(不共享、已断开关联的话题除外)。「再判断一次」改了结论时,第一次选的话题也作为参考带上。话题检索历史时也能搜所有允许共享的话题。
  • 来回切换不再算相关:只有一句话同时用到两件事、或者一个话题去查了另一个,才学成相关。
  • 路由请求太大时会压缩而不是失败:话题多、摘要被压缩填满时,请求可能超长,悄悄改用规则(留在当前话题)。
  • 小修:分错后紧接着点开另一个话题,现在真的会学到这条消息的词(以前从不生效);限流后只短暂暂停,同时失败的请求只算一次;分词支持所有文字(带重音的拉丁字母、俄文、韩文、日文);英文「New topic: …」可用;模型写的标题和理由跟随用户的语言。

验证:在 DSH 0.2.1-rc.2 上类型检查和全部自动化测试(312 项,含交回和按线索取记忆)通过,插件包构建正常。这些改动还没有用真实模型在 InterleaveBench 上测过,接下来会跑:路由有没有变差、话题会不会误交回、带上的记忆能不能让回答更准。还没有在运行中的 DSH 里手动使用过。

v0.3.38 — More accurate routing; clean recovery after a restart or "wrong topic"

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:10

What's changed

  • A second look for doubtful routing. Each message is still routed by one quick decision with thinking off. When that decision would open a new topic, ask you, or goes against a number, code or name that only one topic has mentioned, the same model looks again with thinking on (about one message in six). On InterleaveBench (DeepSeek V4.1 Flash), accuracy when starting from nothing goes from 90.1% to 96.3%, and from 92.9% to 98.7% with a topic list given; on ten conversations kept aside while tuning, from 90.7% to 97.1%. One thing is split over 1.47 topics on average instead of 1.80, and needless questions back to you drop from 49 to 9. Routing costs about $0.5 per thousand messages instead of $0.41; messages that need no second look are as fast as before.
  • Routing cards remember what was settled. A topic's card now keeps the values and decisions it has settled on (a budget, a date, an order number; the latest value only) and is rewritten every eighth reply after the fourth, so a message that names one detail ("that 1500 target") finds its topic.
  • Picks up after a restart. When DSH stopped while a topic was working, the topic's own session decides what happened: finished work is shown as it was given instead of being marked interrupted; work cut off midway lists what it had already changed, and "continue" tells the topic, once, to check the current state before carrying on.
  • Goal / done / next. Each topic keeps where it stands in three parts; omitted parts keep their previous value, and the parts appear in its briefing.
  • "Wrong topic" cleans up. The wrong topic's turn no longer counts as its own: it stays out of that topic's history search, card and facts; the topic is told once the next time it works; and main chat lists anything that turn already changed (nothing is undone automatically).
  • Benchmark tooling: eval/run-router.mjs --recheck --cards, EVAL_RPM for providers with a per-minute limit, and token use per message. The write-up, with confidence intervals and what did not help, is in docs/routing-eval.md (Chinese).

Validation: type checks and the full automated suite (305 tests) pass on DSH 0.2.1-rc.2; the plugin archive builds. Routing numbers are from the synthetic InterleaveBench dev split (40 conversations, 1,971 messages) and test split (10 conversations), one run each with thinking off as TheOne routes; see the write-up for intervals. Not yet used by hand in a running DSH: the second look adds a few seconds to the messages that get it.

中文

  • 拿不准的分配会再看一次:每条消息仍然先做一次关思考的快速判断;当它要开新话题、要问你,或者和某个只在一个话题里出现过的数字、编号、名字对不上时,同一个模型会开着思考再看一次(大约六条消息一次)。在 InterleaveBench(DeepSeek V4.1 Flash)上,从零开始的准确率从 90.1% 提到 96.3%,事先给好话题列表时从 92.9% 提到 98.7%;在调参时没动过的 10 段对话上,从 90.7% 提到 97.1%。同一件事平均被拆成的话题从 1.80 降到 1.47,无谓地反问你从 49 次降到 9 次。路由每一千条消息约 0.5 美元(原来 0.41 美元);不需要再看的消息和以前一样快。
  • 路由卡片记住定下来的事:卡片新增已经定下来的数值和决定(预算、日期、单号,只留最新值),第 4 次回复后每 8 次回复重写一次,只提一个细节(「那个 1500 的目标」)也能找到话题。
  • 重启后能接上:DSH 在话题干活时停了,以话题自己的会话为准:做完的直接展示,不再标成被打断;做到一半的列出已经改了什么,你说「继续」时话题会被提醒一次,先检查现状再接着做。
  • 目标 / 进度 / 下一步:每个话题按这三部分记着做到哪了;没提到的部分保持原样,并出现在它的简报里。
  • 「分错了」会收拾干净:分错那一轮不再算作那个话题的:不进它的历史检索、卡片和要点;它下次干活时被提醒一次;主聊天会列出那一轮已经做过的改动(不会自动撤销)。
  • 评测工具:eval/run-router.mjs --recheck --cards、给有每分钟限额的服务用的 EVAL_RPM,以及每条消息的 token 记录。完整评测记录(置信区间、哪些尝试没用)见 docs/routing-eval.md。

验证:在 DSH 0.2.1-rc.2 上类型检查和全部自动化测试(305 项)通过,插件包构建正常。路由数字来自合成的 InterleaveBench 开发集(40 段对话、1971 条消息)和测试集(10 段),每组跑一次,和 TheOne 路由时一样关闭思考,置信区间见评测记录。还没有在运行中的 DSH 里手动使用过:被再看一次的消息会多等几秒。

v0.3.37 — Works with DSH 0.2.1-rc.2

Choose a tag to compare

@github-actions github-actions released this 18 Oct 06:45
  • DSH 0.2.1-rc.2 support. DSH 0.2.1-rc.2 marked TheOne 0.3.36 as incompatible because the plugin required exactly 0.2.0-rc.2. TheOne now declares both 0.2.0-rc.2 and 0.2.1-rc.2; DSH's own compatibility check passes on each and still rejects versions that have not been tested.
  • No change to TheOne's behaviour: the plugin code is the same as 0.3.36. Only the declared DSH versions and the test setup changed (DSH 0.2.1 requires the caller's identity on API requests, and its Auto review reads each session's working directory).

If you allowed 0.3.36 on DSH 0.2.1-rc.2 with an exact-version exemption, you can update and drop it.

Validation: type checks and the full automated suite (292 tests) pass against DSH 0.2.1-rc.2, and the plugin archive builds. DSH's compatibility check was run against the new manifest for 0.2.0-rc.2 and 0.2.1-rc.2 (accepted) and for 0.2.1 and 0.2.2-rc.1 (rejected), and DSH 0.2.1-rc.2's own dsh plugin add installed the archive into a disposable profile (the same command refuses 0.3.36). Not yet used by hand in a running DSH 0.2.1-rc.2.

中文

  • 支持 DSH 0.2.1-rc.2。 之前插件把 DSH 版本写死为 0.2.0-rc.2,所以升级到 0.2.1-rc.2 后 TheOne 0.3.36 会被标为「不兼容」。现在同时声明支持 0.2.0-rc.2 和 0.2.1-rc.2;DSH 自带的兼容检查对这两个版本都会通过,对没测过的版本仍然会拒绝。
  • TheOne 的功能没有变化,插件代码与 0.3.36 相同,只改了声明的 DSH 版本和测试环境(DSH 0.2.1 的 API 请求要带调用方身份,自动审查会读取会话的工作目录)。

如果你之前给 0.3.36 开了「允许此版本」的豁免,更新后可以取消。

验证:针对 DSH 0.2.1-rc.2 的类型检查和全部自动化测试(292 项)通过,插件包构建正常;用新的声明跑过 DSH 自己的兼容检查:0.2.0-rc.2、0.2.1-rc.2 通过,0.2.1、0.2.2-rc.1 拒绝;用 DSH 0.2.1-rc.2 自己的 dsh plugin add 把安装包装进了一个临时配置(同一命令会拒绝 0.3.36)。还没有在运行中的 DSH 0.2.1-rc.2 里手动使用过。

v0.3.36 — Ongoing tasks and recoverable memory

Choose a tag to compare

@github-actions github-actions released this 15 Oct 10:14
1d74799
  • Follow public GitHub PRs and CI summaries from main chat or the new Ongoing tasks panel. Pause, resume, cancel, check now, and set time/check limits. Changed failures, passes and closure notify main chat; failure analysis has no tools and does not modify code.
  • Persist task state, retry delays, leases and notification delivery. Resume eligible work after DSH restarts without replaying missed checks or previous write commands.
  • Persist memory proposals before merging; recheck source visibility, settings, evidence and fact versions. Shared facts and automatic extraction retain their existing opt-in settings.
  • Queue TheOne-dispatched turns for the same identified project. Other projects can still run concurrently; this is not a cross-process file lock.
  • Include the ongoing-task guide in the release archive and fix the Windows packaging command.

Runs on this computer while DSH is open. This first version supports public PRs through the anonymous GitHub API, which may rate limit requests. It reads CI summaries, not full logs. Default limits are 15 minutes, 96 attempts and 24 hours. No cloud runtime, private-repository access or automatic code changes are included.

Validation includes 24 new automated checks, real DSH session/API integration with fixture GitHub/model responses, browser creation/pause/resume/cancel checks, and a live read of the repository's merged PR #11. Model diagnostic accuracy is not established by fixture tests. The publishing workflow runs the complete suite on Linux before publishing.

中文

  • 新增「持续任务」:可以在主聊天要求跟进公开 GitHub PR,也可在面板创建、暂停、恢复、取消、立即检查,设置次数和时间上限。
  • PR / CI 出现新的失败、通过、合并或关闭时通知主聊天。失败分析只读、无工具权限,提供下一步建议,不自行修改代码。
  • 任务、重试和通知持久化,重启 DSH 后继续;记忆候选先保存,再核对来源、设置、证据和版本后合并。
  • 同一已识别项目的 TheOne 派发回合排队,降低多个话题同时写文件的冲突;其他项目仍可并行。
  • 补齐安装包里的功能说明,并修复 Windows 本机打包命令。

当前在本机运行,DSH 关闭期间不会执行;仅支持公开 PR,匿名 GitHub API 可能限流。读取的是 CI 摘要,并非完整日志。默认每 15 分钟检查,最多 96 次、24 小时。共享要点与自动提取仍沿用原开关,默认关闭。

v0.3.35 — Avoid duplicate page reloads during updates

Choose a tag to compare

@github-actions github-actions released this 15 Oct 08:04
cd06ffe
  • Let DSH's client hot reload replace TheOne's interface. A backend version change no longer forces a second full-page boot while client modules may still be changing.
  • Cancel update polling when the old client is disposed, ignore late responses, and keep only one poll running. The two-minute limit also aborts stalled requests.

Validation: five client lifecycle regression tests, existing updater tests, type checks and builds. A controlled comparison in a real DSH web runtime confirmed that the old client reloaded the page, while the fixed client retained the document and successfully replaced its interface. The native desktop error dialog has not been reliably reproduced; a complete desktop upgrade still needs verification.

When upgrading from an older version, its already-loaded client may still perform one final page reload. The new behavior applies after this version's client has loaded.

中文

  • 移除更新成功后的重复整页刷新,由 DSH 热更新替换 TheOne 界面,避免在客户端模块切换期间再次进入启动检查。
  • 插件卸载时取消旧轮询,忽略迟到的响应,防止重复轮询;两分钟超时也会取消未完成的请求。

已通过五项客户端生命周期回归测试及既有更新测试、类型检查和构建。真实 DSH 网页运行时对比确认:旧版会额外刷新,修复版在原页面完成界面替换。原生桌面错误弹窗尚未稳定复现,完整桌面升级仍需验证。

首次从旧版升级时,已经加载的旧客户端仍可能额外刷新一次;新版客户端加载后,后续更新使用修复后的逻辑。

v0.3.34 — Fix tool permissions and Auto review routing

Choose a tag to compare

@github-actions github-actions released this 15 Oct 02:46
5c42e8a

What's changed

  • Custom permissions now reach new and reused topic sessions. Changing permissions in main chat also updates its active background work before subsequent tool calls. Switching away from Auto no longer leaves an old topic in Auto.
  • Auto review requests from TheOne topics and their runtime-owned child tasks carry the executing session's identity, fixing missing-session routing failures with providers such as OpenCode Go.
  • Main chat displays the background tool's actual reviewed result instead of reviewing the same call twice. This also works when Auto is enabled or reloaded during a response.
  • Topic classification, history indexing, summaries and fact extraction include source-session routing metadata. The metadata stays outside the model-visible prompt.

Approval rejection, failed reviews and cancellation continue to prevent execution. Permission changes affect subsequent calls; they do not retroactively terminate commands already running. The Auto compatibility fix is scoped to TheOne and its child tasks; unrelated native DSH sessions remain under the host's behavior.

Validation covers real DSH services with deterministic models, nested tasks, concurrent-session isolation, permission reductions and plugin reloads. The installed OpenCode transport was also checked against a local HTTP endpoint; no live OpenCode account was used.

中文

  • 修复自定义权限未传到话题的问题。主聊天中途修改权限,会同步到正在运行的后台话题;退出 Auto 后,旧话题不再残留 Auto 状态。
  • 修复 TheOne 话题及其子任务的自动审查请求缺少会话 ID,导致 OpenCode Go 等服务报 MissingSessionID 的问题。
  • 修复后台工具已执行、主聊天却重复审查并报 schema 错误的问题;回复过程中启用或重载 Auto 也能正确处理。
  • 为话题分类、历史索引、摘要和事实提取补齐来源会话标识,仅作为请求元数据传递,不混进正文。

审批拒绝、审查失败和取消仍会阻止执行。权限变更约束后续调用,不会追溯终止已启动的命令。Auto 兼容修复覆盖 TheOne 及其子任务,普通 DSH 会话仍遵循宿主行为。

验证使用真实 DSH 服务和可控模型,覆盖多层子任务、并发会话隔离、权限收紧和插件重载;另用已安装的 OpenCode 请求组件对本地 HTTP 服务验证了请求头,未调用真实 OpenCode 账号。

TheOne Connected Memory — Graph Hacks prototype

Choose a tag to compare

FalkorDB prototype for Graph Hacks, track Agent Memory and Coordination. This is a disclosed AI-assisted development prototype, not a final competition entry or a claim of participant technical review.

Source and complete local setup · Real graph CI · Participant walkthrough

The attached 98-second video narrates actual recorded browser states with synthetic inputs. It is a sequence of real captured UI states, not a continuous screen recording. Narration is generated speech. It shows graph-backed context, confirmed corrections with retained evidence, unrelated-topic isolation, revocation and a real database outage. No private conversations, API keys or personal information are included.

Thirteen focused tests passed against real FalkorDB. Three CLI scenarios and four browser requests used genuine Nemotron. These development checks are not held-out accuracy or a competition score. Actual database/server restarts retained facts and sharing relationships. The graph work began after the event opened, while the original TheOne idea and parent plugin predate the event. Codex generated code, tests, docs and demonstration material; participant understanding and meaningful verification are still required before final submission.

This prerelease is separate from the DSH npm package releases and is not marked latest.

v0.3.33 — Talk to main chat from WeChat, Telegram or iMessage (experimental)

Choose a tag to compare

@github-actions github-actions released this 13 Oct 08:47
699face

What's changed

  • Main chat from your phone (experimental). Bind a messaging app under TheOne Settings, and what you send from your phone works like typing in main chat: it goes to its topic, runs in the background, and the reply comes back to your phone as plain text. Main chat on your computer shows the same conversation. Only you are listened to; nobody else's messages reach main chat. Each app is off until you bind it.
    • WeChat: press Scan to bind and scan with WeChat. Uses Tencent's iLink interface (the same as the OpenClaw WeChat plugin), a private Tencent protocol; follow WeChat's terms. Voice messages arrive as WeChat's transcript.
    • Telegram: make a bot with @Botfather, paste its token, then scan the code shown (or send the bot /start <code>) to pair. The token stays on your computer.
    • iMessage (Mac only): enter the phone number or Apple ID you text from. DSH needs Full Disk Access to read Messages, and permission to control Messages for replies. Texting yourself works too.
  • Approvals and questions on the phone. When something TheOne is doing for a message from your phone needs your approval, or the AI asks you to choose, it is asked there; reply with a number (or type an answer). No reply within 10 minutes declines.
  • Stays connected. Receiving starts with DSH, picks up after a network drop or a restart without losing or repeating messages, backs off when the service fails, and a stuck connection restarts itself. If a login stops working, main chat says so and Settings asks you to sign in again.

TheOne only organises: it adds its own entries and views, and never changes your settings or your own chats. Messages arrive only while DSH is running.

Validation: automated tests (247) and type checks passed. In a fresh DSH with a test model that really runs commands, against a stand-in WeChat server: receiving resumed on its own after a restart with no browser open; a message woke main chat, went to its topic, and the reply came back; an approval was answered with "1" from WeChat and the command ran; the QR code in Settings decodes to the login link. Telegram's token check was tried against the real Telegram service. Not yet tried with real accounts: an actual WeChat scan, a real Telegram bot's messages, and iMessage on a Mac. Please report anything that does not work.

中文

  • 在手机上和主聊天说话(实验功能)。 在 TheOne 设置 里绑定一个聊天软件,之后在手机上发的消息就和在主聊天里打字一样:分到对应的话题、在后台干活,回复以纯文本发回手机。电脑上打开主聊天,看到的是同一段对话。只认你本人,别人发的消息不会进主聊天。每个聊天软件在绑定前都是关着的。
    • 微信:点「扫码绑定」,用微信扫码。用的是腾讯 iLink 接口(和 OpenClaw 微信插件同一套),这是腾讯的私有协议,请遵守微信的使用规范。语音消息用微信自带的转写文字。
    • Telegram:在 @Botfather 建一个机器人,把 token 填进去,再扫页面上的码(或给机器人发 /start 配对码)完成配对。token 只存在你的电脑上。
    • iMessage(只限 Mac):填你发消息用的手机号或 Apple ID。需要给 DSH「完全磁盘访问」权限来读「信息」,回复时允许它控制「信息」。给自己发消息也可以。
  • 在手机上确认和回答。 处理手机发来的消息时,需要你确认的操作、AI 让你选的选项都会发到手机上,回一个数字(或直接打字)就行。10 分钟不回按拒绝处理。
  • 一直在线。 随 DSH 启动就开始收;断网或重启后接着收,不丢也不重复;服务出错时逐步放慢重试;连接卡住会自己重启。登录失效时主聊天会提示,设置里可以重新登录。

TheOne 只做整理:它只添加自己的入口和视图,不改你的设置,也不改你自己的会话。DSH 开着才能收到消息。

已通过自动化测试(247 项)和类型检查。在全新的 DSH 里用一个会真正执行命令的测试模型、对着模拟的微信服务端确认:重启后没开浏览器也自动接着收;消息能唤醒主聊天、分到话题、回复发回;在微信里回「1」确认后命令执行;设置页的二维码解出来就是登录链接。Telegram 的 token 校验对着真实的 Telegram 服务试过。还没用真实账号试过的:真的扫码登录微信、真实 Telegram 机器人的收发、在 Mac 上用 iMessage。遇到问题请反馈。

TheOne Topic Taste — Qloo prototype walkthrough

Choose a tag to compare

A quiet evening and a family weekend should use different favorites. TheOne Topic Taste keeps them separate while you talk in one place.

Source and setup · Verified integration summary · Source CI

The attached 85-second video uses two actual browser captures from the October 13 development run. It shows exact-favorite confirmation and the family topic's genuine Qloo recommendations, with excerpts of the book suggestions above them. This is a narrated sequence of recorded interface states, not a continuous screen recording or a new live run. Narration is generated speech. No Qloo or model requests were made to produce this video.

The development run used synthetic planning examples: Arrival for Quiet science fiction evenings and Spirited Away for Family animation weekend. The model routes the message and operation; Qloo supplies search matches and recommendations; the user confirms a favorite before it is saved. Relative affinity is a taste signal, not a probability of enjoyment.

Thirteen offline tests use synthetic upstream responses. A separate genuine cloud gate passed with four Qloo requests and two Nemotron requests. A real local browser completed both topic flows, and another HTTP client was denied access to that browser's topics. These are development checks, not held-out accuracy, a leaderboard score or evidence about real users.

This standalone adaptation builds on the pre-existing TheOne idea. Codex assisted implementation, tests, documentation and this demonstration. The MIT source license remains unchanged. No provider keys, private database, raw API response dataset or private user conversations are included.

Public application hosting, provider-level quota checks, event-specific final approval and final submission are still pending. This prerelease does not establish judge access or contest acceptance and is not the latest npm package release.