cfdaily
|
6798f098b5
|
[moz] fix(spawner): _get_task_info SELECT 补 must_haves 字段
CI / lint (pull_request) Successful in 8s
CI / test (pull_request) Successful in 45s
CI / frontend (pull_request) Successful in 12s
CI / notify-on-failure (pull_request) Successful in 0s
根因:_get_task_info 只 SELECT id, title, status,漏查 must_haves。
续杯/retry 路径从返回 dict 中 .get('must_haves') 永远拿到空值,
导致 PromptContext.event_type 为空,toolchain 通知显示「事件类型: 未知」。
修复:SELECT 补 must_haves 字段。
发现方式:L1 自蒸馏端到端验证中识别到 Recurrence-Count=2 信号
|
2026-06-18 22:39:30 +08:00 |
|
cfdaily
|
a953fc0bc7
|
[moz] fix(spawner): PromptContext 缺少 event_type/event_data 导致通知显示「事件类型: 未知」
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 29s
CI / frontend (pull_request) Successful in 12s
CI / notify-on-failure (pull_request) Successful in 0s
根因:spawner 构建 PromptContext 时只传了 action_type/action_steps,
遗漏了 event_type 和 event_data。ToolchainContextSection.render() 从
context.event_type 取值,为空时回退到 '未知'。
修复:从 must_haves JSON 同时提取 event_type 和 context(→event_data)。
|
2026-06-17 07:19:04 +08:00 |
|
cfdaily
|
d6cb854f68
|
fix: mention 重复投递 + mail 失败通知竞态保护 + §14 设计文档同步
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 31s
CI / frontend (pull_request) Successful in 12s
CI / notify-on-failure (pull_request) Successful in 0s
Bug 1: spawn_full_agent use_main_session 返回 None 导致 mention 重复投递
- 根因: use_main_session=True 时 session_id=None, return None 被 ticker
_process_posts 误判为 spawn 失败, 每次 tick 都重试
- 修复: 引入 effective_sid = session_id or 'main', 统一用于
_register_session / _monitor_process / return value
Bug 2: _mark_task failed 时未检查已完成状态导致误发投递失败通知
- 根因: spawner 标 failed 和 handler 标 done 竞态条件下, 已完成的
mail task 被误发投递失败通知
- 修复: notify_mail_failed 调用前加防御性检查, 若 task 已 done 则跳过
设计文档: §13 三个 handler sections 列表同步 DeliveryChecklistSection
及 GiteaConventionSection / WikiGuideSection, 更新 section 复用分析表
及文件结构 section 计数
|
2026-06-15 09:48:09 +08:00 |
|
cfdaily
|
c89863a288
|
feat: §17 ToolchainHandler 强约束实现(Step 1-4)
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 1s
Step 1: 基础设施
- prompt_composer.py: PromptContext 新增 action_type + action_steps 字段
- spawner.py: handler 路径提取 action_type/action_steps 传入 PromptContext
- db.py: comments CHECK 约束加入 action_report
Step 2: ToolchainHandler 强化
- ToolchainContextSection: 加 steps 渲染 + action_hint(按 action_type)
- ToolchainApiSection: 改为 action_report 提交指引 + Gitea 协作指引
- ToolchainConstraintsSection: 5 条强约束 + Red Flags 防self-rationalization
- verify_completion: action_report → output → comment 三层 fallback
- review_merged 始终通过(纯通知)
- infrastructure_failure 始终通过(防递归)
- 修复 LENGTH(content) → LENGTH(body) bug
- on_failure 三分路: 业务→Gitea PR comment / 系统→Gitea Issue / 基础设施→toolchain task
Step 3: toolchain_routes 改造
- 新增 _toolchain_db_path() + _send_toolchain_task()
- 所有 8 个 handler 改为 _send_toolchain_task
- _send_mail 保留但不再被 toolchain handler 调用
- _send_deploy_failure_mail → _send_deploy_failure_task
Step 4: 测试
- 29 个单元测试全部通过
- 全量 456 passed, 3 skipped, 0 failures
|
2026-06-13 23:36:44 +08:00 |
|
cfdaily
|
f4dd9ff78d
|
feat(daemon): Mail 失败通知 v2.0 — api_error retry + 通知增强
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 1s
P1: api_error rate_limit/500/503 改为可恢复 retry(should_retry=True,60s cooldown)
P2: 通知模板动态化(reason 人话翻译 + detail 信息 + 重试情况 + AI Native 知识库)
设计文档:§20.7 (20-task-type-architecture.md)
|
2026-06-13 09:27:17 +08:00 |
|
cfdaily
|
8956296b08
|
chore(spawner): G1 修正注释 — 只检测 precheck
CI / lint (pull_request) Successful in 9s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
|
2026-06-13 07:04:44 +08:00 |
|
cfdaily
|
6c6e884ce3
|
fix(spawner): Review M1/M2 — 删除 overflow/timeout 死代码,只保留 precheck;更新设计文档 v5
CI / lint (pull_request) Successful in 8s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
M1: overflow/timeout 标记不含 sessionKey,被前置过滤跳过是死代码。
precheck 总在 overflow 之前触发且含 sessionKey,已覆盖 overflow 场景。
删除 overflow/timeout 分支,只保留 precheck route=compact_then_truncate。
M2: §24 设计文档新增 v5 章节描述(方案概述、三种触发路径分析、为什么只依赖 precheck)。
|
2026-06-13 07:01:54 +08:00 |
|
cfdaily
|
36ba629b69
|
fix(spawner): compact 检测 v5 — gateway log 开始标记 + jsonl 结束标记配对
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
- 新增 _find_compact_start_in_gateway_log: 检测 overflow/timeout/precheck 三种开始标记
- 新增 _check_compaction_finished_in_jsonl: 检测 jsonl compaction entry 作为结束标记
- 重写 _check_session_state compact 检测逻辑: 开始+结束配对
- 无开始标记 (threshold/manual) 不阻塞,靠 counter+lock+status 保护
- 超时兜底 15 分钟保留
- 旧方法标记 deprecated 保留
- 427 passed
|
2026-06-13 00:27:39 +08:00 |
|
cfdaily
|
fe541f6c89
|
fix(spawner): §24 v4 仲达review M1(双staticmethod) + S1(TC11)
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
|
2026-06-12 00:04:10 +08:00 |
|
cfdaily
|
ddc1c7285a
|
fix(lint): remove unused timedelta import
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 10s
CI / notify-on-failure (pull_request) Successful in 0s
|
2026-06-12 00:00:18 +08:00 |
|
cfdaily
|
3f71f53e4a
|
fix(spawner): §24 v4 修正注释缩进 + 仲达评审 M1 数据修正 + S2 证据补充
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 1s
|
2026-06-11 23:58:29 +08:00 |
|
cfdaily
|
3c2c0f3175
|
fix(spawner): §24 v4 compact检测 - trajectory prompt.submitted 替换 gateway rotation
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 0s
|
2026-06-11 23:57:09 +08:00 |
|
cfdaily
|
caf750fad6
|
fix(spawner): §24 compact check must run when status=done (compact in progress)
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
|
2026-06-11 21:18:33 +08:00 |
|
cfdaily
|
7918b12ff7
|
feat(spawner): §24 compact detection via gateway log rotation events
|
2026-06-11 21:18:33 +08:00 |
|
pangtong-fujunshi
|
1089991455
|
fix(lint): resolve all 37 flake8 issues (#33)
Deploy / ci (push) Successful in 10s
Deploy / deploy (push) Successful in 11s
Deploy / notify-deploy-failure (push) Successful in 1s
|
2026-06-11 02:34:50 +00:00 |
|
cfdaily
|
25863634c2
|
fix: v3.0→HEAD review 修复 — handler 注册 + review verdict + skill 全文注入
基于庞统+司马懿背靠背 review,修复 6 个问题:
P0 致命:
- A1: _legacy_on_complete 补回 review verdict 处理(approved→done,非 approved→@mention assignee)
- A2: 添加 TaskTypeRegistry.register() 启动初始化(注册 Task/Mail/Toolchain handler)
P1 中等:
- B11-1: RoleSkillSection 从索引提示改为全文注入(对齐设计 §2.3 + BootstrapBuilder 行为)
- A8: retry prompt is_mail 硬编码改走 TaskTypeRegistry handler 判断
P2 低:
- _mail_* 4 个方法添加 DEPRECATED 注释
- ticker.py handler check_completion 代码块缩进对齐(28→24 空格)
测试:394 passed, 0 failed
Review reports: docs/design/review-v3-vs-head-{pangtong,simayi}.md
|
2026-06-11 08:08:20 +08:00 |
|
cfdaily
|
ce1b0902dd
|
fix: S1 handler display_name + S2 import 移顶部 + W1 注释
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 3s
- S1: vp_name 硬编码字典 → handler.display_name 属性
- S2: ticker/spawner 中 TaskTypeRegistry 局部 import → 移文件顶部
- W1: TaskHandler executor verify 失败不调 on_failure 加注释说明
|
2026-06-10 22:38:55 +08:00 |
|
cfdaily
|
8d72a1fa19
|
feat: Step 5 引擎接入 + H1-H3/S3 修复 + 审计 D1/D2/D5 修复
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 3s
引擎接入(dispatcher/spawner/ticker → handler 统一路由):
- dispatcher: guardrail/on_checks_passed/on_complete → handler 查询
- spawner: _build_prompt/_build_api_section → handler.build_prompt
- ticker: 虚拟项目扫描/assignee/claimed/review/幻觉门控 → handler 判断
Handler 缺陷修复:
- H1: _mark_task_status 加 3 次重试(防 DB 锁)
- H2: review @mention 加 comment_type='review'
- H3: review 非 approved 保持 review 状态(不标 working)
- S3: 通知链接改 Gitea(PR/Issue/Commit)
审计修复:
- D1: pre_spawn 返回值未检查 → 加 if not 抛 RuntimeError
- D2: PromptContext 缺 from_agent/mail_type → 从 must_haves 解析
- D5: _check_reply 查错表 → 恢复查 tasks 表找 in_reply_to
旧方法保留未删(deprecated),确认稳定后再清理。
|
2026-06-10 22:33:03 +08:00 |
|
cfdaily
|
d58e38d58f
|
fix(lint): 修复 PR #14 引入的 lint 回退 (119→0)
CI / lint (pull_request) Successful in 6s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
PR #14 从旧分支复制文件导致回退了 PR #10 的 lint 修复。
修复内容:
- autoflake 移除未使用导入/变量
- autopep8 修复缩进/空格
- 手动修复 F821(pathlib→Path), F541(f-string), F841(未使用变量)
- 所有修复均通过 flake8 --max-line-length=120 --extend-ignore=E501 检查 (0 errors)
|
2026-06-09 23:53:29 +08:00 |
|
cfdaily
|
f7fbdac89c
|
chore: simayi-approved changes - lint fixes, toolchain improvements, healthz
All changes reviewed and APPROVED in PR #12 (Review ID: 40):
- toolchain_routes: webhook repo/org format compat, content dedup (sha256), closed issue filter
- dispatcher: inform mail crash 误标 done 修复
- ticker: cleanup and improvements
- healthz endpoint
- conftest: integration/e2e deselect markers
- docs: design docs, test-guide updates
- various lint/whitespace fixes across 30 files
|
2026-06-09 23:41:53 +08:00 |
|
cfdaily
|
ee1ef23ace
|
fix(spawner): crash cooldown分级 + inform mail crash误标done修复
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 4s
- crashed outcome cooldown 60s(vs 其他 300s)
- import init_db
- whitespace/lint fixes
|
2026-06-09 23:35:02 +08:00 |
|
cfdaily
|
09a0928bbc
|
fix: resolve all flake8 lint errors (118 → 0)
CI / lint (push) Successful in 8s
CI / lint (pull_request) Successful in 5s
CI / test (push) Failing after 8s
CI / test (pull_request) Failing after 8s
CI / notify-on-failure (push) Successful in 1s
CI / notify-on-failure (pull_request) Successful in 3s
|
2026-06-09 16:43:41 +08:00 |
|
cfdaily
|
be21de0aeb
|
auto-sync: 2026-06-07 22:16:57 (catch-all)
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 22:16:57 +08:00 |
|
cfdaily
|
e1d7830771
|
auto-sync: 2026-06-07 20:00:55
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 20:00:55 +08:00 |
|
cfdaily
|
4af16b7fa1
|
auto-sync: 2026-06-07 09:55:54
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 09:55:54 +08:00 |
|
cfdaily
|
320a539da6
|
auto-sync: 2026-06-07 09:55:34
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 09:55:34 +08:00 |
|
cfdaily
|
e823972fea
|
auto-sync: 2026-06-07 09:55:20
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 09:55:20 +08:00 |
|
cfdaily
|
717e043686
|
auto-sync: 2026-06-07 09:50:38
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 09:50:38 +08:00 |
|
cfdaily
|
36c730d15a
|
auto-sync: 2026-06-07 01:18:36
Deploy / ci (push) Waiting to run
Deploy / deploy (push) Blocked by required conditions
Deploy / notify-deploy-failure (push) Blocked by required conditions
|
2026-06-07 01:18:36 +08:00 |
|
cfdaily
|
ea89d568d0
|
auto-sync: 2026-06-06 11:26:44
|
2026-06-06 11:26:44 +08:00 |
|
cfdaily
|
fe1fb1bf4e
|
auto-sync: 2026-06-05 00:12:43
|
2026-06-05 00:12:43 +08:00 |
|
cfdaily
|
58f6228665
|
auto-sync: 2026-06-04 23:51:56
|
2026-06-04 23:51:56 +08:00 |
|
cfdaily
|
734889bfcb
|
auto-sync: 2026-06-04 23:51:44
|
2026-06-04 23:51:44 +08:00 |
|
cfdaily
|
9da1888cf5
|
auto-sync: 2026-06-04 23:51:18
|
2026-06-04 23:51:18 +08:00 |
|
cfdaily
|
e5a275641f
|
auto-sync: 2026-06-04 23:50:59
|
2026-06-04 23:50:59 +08:00 |
|
cfdaily
|
e5e29ec791
|
auto-sync: 2026-06-04 23:50:45
|
2026-06-04 23:50:45 +08:00 |
|
cfdaily
|
231094139f
|
auto-sync: 2026-06-04 22:33:27
|
2026-06-04 22:33:27 +08:00 |
|
cfdaily
|
23c653b05f
|
auto-sync: 2026-06-02 23:41:57
|
2026-06-02 23:41:57 +08:00 |
|
cfdaily
|
4d2d13e0c1
|
auto-sync: 2026-06-02 19:36:03
|
2026-06-02 19:36:03 +08:00 |
|
cfdaily
|
b41c62bfc2
|
auto-sync: 2026-06-02 19:10:35 (catch-all)
|
2026-06-02 19:10:35 +08:00 |
|
cfdaily
|
f83de496e3
|
auto-sync: 2026-06-02 19:10:31
|
2026-06-02 19:10:31 +08:00 |
|
cfdaily
|
cbdb8650a5
|
auto-sync: 2026-06-02 15:27:38
|
2026-06-02 15:27:38 +08:00 |
|
cfdaily
|
95883f4642
|
auto-sync: 2026-06-02 15:02:25
|
2026-06-02 15:02:25 +08:00 |
|
cfdaily
|
752b701893
|
auto-sync: 2026-06-02 15:02:08
|
2026-06-02 15:02:08 +08:00 |
|
cfdaily
|
70a330c7fb
|
auto-sync: 2026-06-02 15:01:47
|
2026-06-02 15:01:47 +08:00 |
|
cfdaily
|
aaafe91093
|
auto-sync: 2026-06-01 21:48:31
|
2026-06-01 21:48:31 +08:00 |
|
cfdaily
|
e8b5123004
|
auto-sync: 2026-06-01 13:55:48
|
2026-06-01 13:55:48 +08:00 |
|
cfdaily
|
3a9478a22e
|
auto-sync: 2026-06-01 13:50:21
|
2026-06-01 13:50:21 +08:00 |
|
cfdaily
|
20c086c7c0
|
auto-sync: 2026-06-01 00:15:49
|
2026-06-01 00:15:49 +08:00 |
|
cfdaily
|
fec0f3bb7a
|
auto-sync: 2026-06-01 00:15:29
|
2026-06-01 00:15:29 +08:00 |
|