Repository navigation
[Tracking] Personal assistant Bot issues encountered on TypeScript main #6482
Description
What happened
This issue records problems I have personally encountered while using the personal assistant Bot on TypeScript main. I will keep it updated with reproduction conditions, investigation results, and resolution status.
As feature development moves to rust-preview, these observations can serve both as maintenance records for the current version and as regression references when the corresponding capabilities are implemented in Rust.
Related implementation and capability inventory: #6244, #6413.
| Problem | Current confirmation status |
|---|---|
| Feedback written in a quote comment is extracted as empty text, causing proactive-discovery judgement to fail repeatedly | Confirmed code defect; a local patch has been validated but is not included upstream |
Response processing fails after HTTP 200, is recorded as unknown, and the available diagnostics do not establish the original cause |
Observed twice; root cause still under investigation |
The reproductions and validation below concern the TypeScript implementation. The corresponding Rust behavior has not been verified.
How to reproduce
1. Quote-comment feedback blocks subsequent judgement
Steps
- Enable proactive discovery for the personal assistant and wait for it to actually deliver a discovery message.
- Quote that message and write feedback such as “Please stop tracking this task” in the quote comment, leaving the additional message body empty.
- The Bot calls
DiscoveryFeedbackto associate that reply with the delivered message. - Wait for the next proactive-discovery cycle to process the feedback.
This is a valid message structure, for example:
{
"text": "",
"quotes": [
{
"text": "Task progress",
"comment": "Please stop tracking this task"
}
]
}Actual result
The judgement workflow throws:
Error: Feedback text and time required
In the actual record, the timestamp is valid; it is the extracted feedback text that is empty.
BotStore.discoveryFeedback() only reads displayText ?? text, omitting quotes[].comment. The notebook's nonempty-text validation then rejects the feedback.
The impact extends beyond this one reply:
- Subsequent heartbeat attempts encounter the same feedback and fail before invoking the judgement model.
- A later clarification sent as an ordinary text message is also blocked by the earlier failure.
- Restarting encounters the same persisted record.
- I observed five consecutive failed cycles while the scheduler remained
enabled: true.
An enabled schedule therefore did not mean that discovery was successfully completing work. Sending another clarification did not unblock the earlier record.
Expected result
Feedback written by the user in a quote comment should enter the feedback workflow. Existing affected records should be recoverable, later clarifications should continue to be processed, and already-processed feedback history should be preserved without duplicate imports.
Current validation status
A local patch has been validated:
- The new regression test reproduced the original error before the fix and passed after it.
- Coverage includes recovery after restart, later clarifications, messages containing both body text and quote comments, and repeated imports.
- The assistant-related suites passed 407 tests, with 0 failures.
- After restarting with the original workspace, both previously blocked feedback records were actually processed. The subsequent scheduled cycle completed successfully,
lastErrorcleared, and the failure count returned to zero.
The local patch has not been submitted upstream.
2. Insufficient diagnostics for response-processing failures after HTTP 200
Conditions and frequency
While running proactive discovery and related investigation tasks through the configured model connection, the same failure shape occurred twice within approximately 34 minutes:
- 2026-10-29 23:32:22, UTC+8
- 2026-10-30 00:06:49, UTC+8
The persisted error information was:
{
"code": "200",
"message": "Failed to process successful response (status=200)",
"reason": "unknown",
"retry": {
"because": "policy",
"decision": "declined"
}
}Actual result
The affected execution ended. The available records did not retain enough information about the original cause to establish where these two response-processing failures occurred.
Not automatically retrying unknown follows the current policy. The outstanding questions in this entry are the original failure cause and whether the diagnostics are sufficient to locate it.
Current validation status
- Sanitized diagnostics have been added locally, with the retry policy unchanged.
- A controlled connection interruption after HTTP 200 was classified as a retryable network error.
- One explicitly authorized replay of the original discovery workflow completed all 14 model requests across exploration and judgement without reproducing the original failure.
At present, the two real failures are confirmed observations; their specific cause still needs additional diagnostic evidence.
Expected result
These failures should retain sufficient sanitized information about the error class, failure phase, and cause chain to distinguish response parsing, transport, and other failures and assess the appropriate recovery behavior.
Environment
- Maka: source build based on TypeScript
main@8dd205bab4792ce03193a1ddce5dea094cc3dd87 - Upstream source checked:
main@85a1031c10d104456127f35aac1523b9ffb1a384 - OS: macOS 26.7.2
- Node.js: v24.19.0
- Surface: Desktop personal assistant Bot, proactive discovery, and background investigation tasks
- Configured model:
deepseek/deepseek-v4.1-flash - The quote-feedback fix and diagnostic additions are local modifications
Logs, screenshots, or additional context
I will add further problems I actually encounter here, with:
- reproduction steps or observed conditions;
- confirmed facts and remaining investigation questions;
- local validation, upstream resolution, and Rust verification status.
AI assistance: OpenAI Codex assisted with source inspection, reproduction, testing, and drafting this report. I reviewed this report before submitting it.
简体中文
What happened
这里集中记录我在使用 TypeScript main 的个人助手 Bot 时实际遇到的问题,并持续补充复现条件、调查结果和处理状态。
随着功能开发转向 rust-preview,希望这些记录既能用于当前版本的维护,也能作为 Rust 版重建相应能力时的回归参考。
| 问题 | 当前确认情况 |
|---|---|
| 引用评论中的反馈被读取为空,导致主动发现判断阶段反复失败 | 已确认代码缺陷;本地补丁已验证,上游尚未包含 |
HTTP 200 后出现响应处理失败,最终记录为 unknown,现有诊断不足以确定原始原因 |
实际发生过两次;根因待定位 |
以下复现和验证均来自 TypeScript 版,尚未验证 Rust 版对应行为。
How to reproduce
1. 引用评论反馈阻塞后续判断
操作步骤
- 启用个人助手的主动发现,等待它实际发送一条发现消息。
- 引用该消息,把反馈写在引用评论中,例如「这个任务不要再追踪了」,不填写额外正文。
- Bot 调用
DiscoveryFeedback关联这条回复。 - 等待下一轮主动发现处理反馈。
这是一种合法的消息结构,例如:
{
"text": "",
"quotes": [
{
"text": "任务进展",
"comment": "这个任务不要再追踪了"
}
]
}实际结果
判断流程抛出:
Error: Feedback text and time required
实际记录中,时间字段有效,缺失的是提取后的反馈文字。
BotStore.discoveryFeedback() 只读取 displayText ?? text,没有包含 quotes[].comment。随后记事本的非空校验拒绝了这条反馈。
影响不止是这条反馈没有生效:
- 后续每轮都会再次处理同一条反馈,并在调用判断模型前退出。
- 后来补发的普通文字澄清,也会被前面的失败挡住。
- 重启后仍会遇到同一条持久化记录。
- 我实际观察到连续五轮失败,但调度状态仍为
enabled: true。
因此,仅看到主动发现仍处于启用状态,无法判断它是否还在正常完成工作;重新发送一条澄清也不能解除此前记录造成的阻塞。
预期结果
用户写在引用评论中的反馈应正常进入反馈处理流程。已有的这类记录应能恢复处理,后续澄清也应继续生效,同时保留已处理反馈的历史,避免重复写入。
当前验证状态
本地补丁已完成验证:
- 新增回归测试在修复前复现原错误,修复后通过。
- 覆盖重启后恢复引用反馈、后续澄清、正文与引用评论并存,以及重复导入。
- 助手相关测试共 407 项通过、0 失败。
- 在原工作区重启后,两条此前卡住的反馈均已实际处理完成,随后定时轮次成功完成,
lastError清空,失败计数归零。
本地补丁尚未提交上游。
2. HTTP 200 后的响应处理失败缺少足够诊断信息
发生条件与频率
使用当前模型连接运行主动发现及相关调查任务时,约 34 分钟内出现两次相同形式的失败:
- 2026-10-29 23:32:22,UTC+8
- 2026-10-30 00:06:49,UTC+8
保存的错误信息为:
{
"code": "200",
"message": "Failed to process successful response (status=200)",
"reason": "unknown",
"retry": {
"because": "policy",
"decision": "declined"
}
}实际结果
对应执行结束,已有记录没有保留足够的原始错误原因,无法确定这两次成功响应处理失败具体发生在哪一层。
unknown 不自动重试符合当前策略。这条记录需要继续调查的是原始失败原因,以及现有诊断能否支持定位。
当前验证状态
- 本地已补充脱敏诊断,保持重试策略不变。
- 受控的 HTTP 200 后连接中断实验,可以被识别为可重试的网络错误。
- 经授权对原主动发现流程复跑一次,探索和判断共 14 次模型请求均完成,没有复现原故障。
目前只能确认这两次真实失败发生过;具体根因仍待后续日志补充。
预期结果
发生这类错误时,应保留足够且脱敏的错误类别、发生阶段及原因链信息,以便区分响应解析、传输和其他失败,并据此判断恢复行为。
Environment
- Maka:从 TypeScript
main@8dd205bab4792ce03193a1ddce5dea094cc3dd87构建 - 上游源码核对:
main@85a1031c10d104456127f35aac1523b9ffb1a384 - 系统:macOS 26.7.2
- Node.js:v24.19.0
- 使用入口:Desktop 个人助手 Bot、主动发现及后台调查任务
- 配置模型:
deepseek/deepseek-v4.1-flash - 引用反馈修复和诊断补丁均为本地修改
Logs, screenshots, or additional context
后续会在这里追加我实际遇到的问题,并分别标明:
- 复现步骤或发生条件;
- 已确认的事实及仍待调查的部分;
- 本地验证、上游处理和 Rust 版验证状态。
AI 辅助说明: OpenAI Codex 协助进行了源码检查、复现、测试和本报告起草。本报告由我审核后提交。
Activity
palakbhati commentedon Nov 1, 2026
Hi @sunrioa, thanks for the detailed write-up. Are you planning to open a PR for the quote-comment feedback fix in BotStore.discoveryFeedback()? If not, I’d be happy to take it, including the regression tests for restart recovery and duplicate imports. I could also help with the diagnostics for the HTTP 200 unknown failures if that’s useful.