Background
长时间 Deep Research、Watchlist 巡检和定期研究摘要不应该要求用户一直停留在聊天窗口里等待。Folio 需要一个持久化 background job 层,让任务可以在应用后台运行、失败可诊断、完成后通知用户,并能在重启后恢复正确状态。
这项能力建立在 #18 的 durable run state 上,但关注 任务调度、后台执行和用户通知,而不是单次 run 的 checkpoint。
Related: #17 #18 #27 #32 #37
Requirements
Persistent job model
至少包含:
- job id / type;
- enabled state;
- schedule / trigger config;
- task input / target watchlist or portfolio;
- created_at / next_run_at / last_run_at;
- last result/run id;
- running / succeeded / failed / cancelled / missed 状态;
- retry policy;
- notification policy。
Initial job types
首版至少支持:
- 长时间 Research 在窗口切换/最小化后继续运行;
- scheduled watchlist/company research digest;
- scheduled filings/announcement check;
- 对已有 Deep Research completion/failure 进行通知。
Scheduler semantics
Notifications
至少支持应用内 notification center + 桌面系统通知(Electron 支持范围内):
- research completed;
- research failed / needs attention;
- scheduled digest ready;
- new filing/announcement found(对应任务启用时)。
点击 notification 应能进入对应 report/run/job。
Privacy / control
- 用户可以暂停/删除 schedule;
- notification 不应在锁屏/系统通知中默认暴露敏感 portfolio 全文;
- 后台任务不获得比前台任务更高的 tool 权限。
Acceptance Criteria
Non-goals
- 首版不要求在操作系统彻底结束 Folio 进程后仍由独立系统 daemon 永久运行;至少要求 schedule 持久化并在应用恢复时正确 reconcile。
- 不实现自动交易。
Background
长时间 Deep Research、Watchlist 巡检和定期研究摘要不应该要求用户一直停留在聊天窗口里等待。Folio 需要一个持久化 background job 层,让任务可以在应用后台运行、失败可诊断、完成后通知用户,并能在重启后恢复正确状态。
这项能力建立在 #18 的 durable run state 上,但关注 任务调度、后台执行和用户通知,而不是单次 run 的 checkpoint。
Related: #17 #18 #27 #32 #37
Requirements
Persistent job model
至少包含:
Initial job types
首版至少支持:
Scheduler semantics
Notifications
至少支持应用内 notification center + 桌面系统通知(Electron 支持范围内):
点击 notification 应能进入对应 report/run/job。
Privacy / control
Acceptance Criteria
Non-goals