pangtong-fujunshi
95a8abca96
Merge PR #36 : §24 compact detection via gateway log rotation events
2026-06-11 13:47:55 +00:00
cfdaily
bcb8ced17a
fix(spawner): address PR#36 review feedback (M1+M2+S1+S2)
CI / lint (pull_request) Successful in 8s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
2026-06-11 21:40: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
admin
3441f4325f
Merge PR #35 : §23 PR 全生命周期通知
2026-06-11 06:10:44 +00:00
cfdaily
a4bb752d71
feat(toolchain): add PR synchronize and review comment notifications
...
CI / lint (pull_request) Successful in 6s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
- pull_request.synchronize: notify reviewer to re-review after push
- pull_request_review COMMENTED: notify PR author of review comments
- New templates: review_updated.md, review_comment.md
- Idempotency: add review ID to content dedup key
- Design doc: docs/design/23-toolchain-pr-lifecycle.md
2026-06-11 14:00:44 +08:00
cfdaily
d6612de6de
fix(cd): move success notification to independent job
...
CI / lint (pull_request) Successful in 6s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 0s
- needs.deploy.result is not available inside steps, only in job-level context
- Split into notify-deploy-success job (symmetric with notify-deploy-failure)
- Default NOTIFY_TO to jiangwei-infra for direct push scenario
2026-06-11 13:25:48 +08:00
cfdaily
f33190dc1e
feat(cd): add deploy success notification
...
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
- Query merged PR author via Gitea API
- Send Mail notification to PR author + pangtong
- Non-blocking: mail failure does not affect deploy
- Uses --max-time 5 on all curl calls
2026-06-11 13:22:12 +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
pangtong-fujunshi
4bf3d97a04
Merge pull request 'fix: 同步 4 个 post-PR#26 commit 到 Gitea' ( #31 ) from fix/sync-to-gitea into main
Deploy / ci (push) Failing after 6s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-11 08:08:42 +08:00
cfdaily
d98fae007f
docs: §21 handler 注册后 E2E 验证报告
...
CI / lint (pull_request) Failing after 8s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 3s
Mail/Toolchain 核心流程全部通过:
- Mail: inform auto-working → auto-done ✅
- Toolchain Issue 指派: webhook → Mail ✅
- Toolchain PR Review: webhook → Review 请求 → Review 结果 ✅
- CI 失败重复 Mail 问题确认(org+repo webhook 双触发,已知)
Task review 路径待明天验证。
2026-06-11 08:08:20 +08:00
cfdaily
3c30a9b135
fix: task_handler SKILL_BASE_PATH 硬编码改为环境变量
...
与 bootstrap.py 保持一致,支持 MOZI_SKILL_PATH 环境变量覆盖。
默认值不变。
2026-06-11 08:08:20 +08:00
cfdaily
6bb0596e6d
fix: dispatcher _legacy_on_complete 闭包内删除错误的重复 import
...
get_connection 已在文件顶部 L22 import(from src.blackboard.db),
闭包内 L258 错误地 from src.daemon.db import(模块不存在),
会触发 ImportError 被 try/except 吞掉导致 review verdict 逻辑不生效。
司马懿 review 发现。
2026-06-11 08:08:20 +08: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
pangtong-fujunshi
09971b555a
Merge pull request 'feat: Step 5 引擎接入 — dispatcher/spawner/ticker → handler 统一路由 + H1-H3/S3/D1/D2/D5 修复' ( #26 ) from feat/step5-engine-integration into main
Deploy / ci (push) Failing after 7s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 22:39:03 +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
pangtong-fujunshi
2c970557c8
Merge pull request 'feat: Step 2-4 — Task/Mail/Toolchain Handlers + 11 PromptSections + BaseTaskHandler' ( #25 ) from feat/task-type-handlers-step2-4 into main
Deploy / ci (push) Failing after 7s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 21:47:03 +08:00
cfdaily
4a4e99f738
fix: S1-S3 review suggestions — type annotations unified, urllib replaces curl, rich notification content
CI / lint (pull_request) Failing after 6s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 2s
2026-06-10 21:44:47 +08:00
cfdaily
1b0007f244
feat: Step 2-4 Task/Mail/Toolchain handlers + PromptSections + BaseTaskHandler
...
CI / lint (pull_request) Failing after 6s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 0s
- base_task_handler.py: 基类统一4步流程(crash→verify→mark→notify)
- task_handler.py: 5 PromptSections + 三信号验证 + review流程
- mail_handler.py: 3 PromptSections + inform/request区分 + 基类统一流程
- toolchain_handler.py: 3 PromptSections + 模板引擎渲染 + Mail API通知
- 背靠背设计-编码一致性检查通过(4严重已修/6轻微保留)
2026-06-10 20:45:06 +08:00
pangtong-fujunshi
b953f6da02
Merge pull request 'fix: S1-S4 建议项修复(终验)' ( #24 ) from docs/s-fixes into main
Deploy / ci (push) Failing after 7s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
v3.0
2026-06-10 16:40:41 +08:00
cfdaily
cc974bf258
fix: S1-S4 建议项修复 — 类型标注精确化+BaseTaskHandler标注后续PR+token预算说明
CI / lint (pull_request) Failing after 8s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 2s
2026-06-10 16:38:00 +08:00
pangtong-fujunshi
42a28585b8
Merge pull request 'docs: Task 系统架构重构设计 v3.0 — 五层架构+BaseTaskHandler+执行流程+决策记录' ( #23 ) from docs/task-type-architecture into main
Deploy / ci (push) Failing after 6s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 0s
2026-06-10 15:42:10 +08:00
cfdaily
0e4d12898d
fix: M1-M4 修复 Protocol 签名与设计文档对齐 + §14 去重
CI / lint (pull_request) Failing after 7s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 3s
2026-06-10 15:41:54 +08:00
cfdaily
86504faf1f
docs: 20-task-type-architecture.md v3.0 - §14-§18 五层架构+BaseTaskHandler+执行流程+决策记录
2026-06-10 15:41:54 +08:00
cfdaily
2eba38a5a0
feat: Step 1 — TaskTypeRegistry + PromptComposer 基础设施
...
- task_type_registry.py: TaskTypeHandler Protocol (10方法+2属性) + TaskTypeRegistry 注册表
- prompt_composer.py: PromptSection Protocol + PromptContext dataclass + PromptComposer 拼装器
- 零依赖,纯新增文件,不影响现有功能
2026-06-10 15:41:54 +08:00
pangtong-fujunshi
b0b9a72445
Merge pull request 'docs: Task 系统架构重构设计文档 v2.1(纯文档)' ( #22 ) from docs/task-type-architecture into main
Deploy / ci (push) Successful in 9s
Deploy / deploy (push) Successful in 13s
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 12:42:25 +08:00
cfdaily
1c6b66dc63
docs: 20-task-type-architecture.md v2.1 - 修复 review M1-M3 必修项
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 3s
2026-06-10 12:41:43 +08:00
cfdaily
3fa6040b93
docs: 20-task-type-architecture.md v2.0 - 新增 §11-§13 PromptSection 模式
2026-06-10 12:41:43 +08:00
cfdaily
1485719b0e
docs: add 20-task-type-architecture.md - TaskTypeRegistry + Handler 架构重构设计
2026-06-10 12:41:43 +08:00
cfdaily
b00d43c8ac
docs( #13 ): merge #19 context layers into #13 , delete standalone #19
...
§19 上下文四层改造方案(原独立文档 #19)合并到 #13 工具链设计文档末尾。
v3.1 → v3.3。两个专题本就是一个整体,分开维护增加认知负担。
2026-06-10 12:41:43 +08:00
jiangwei-infra
25e7d46328
Merge pull request 'fix(frontend): resumed_from null→undefined 类型兼容' ( #21 ) from fix/frontend-null-vs-undefined into main
Deploy / ci (push) Successful in 10s
Deploy / deploy (push) Successful in 11s
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 08:12:08 +08:00
cfdaily
c1381c0c93
fix(frontend): resumed_from null→undefined 类型兼容
...
CI / lint (pull_request) Successful in 9s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 0s
TypeScript: resumed_from 是 string|null,StatusButtons 期望 string|undefined。
用 ?? undefined 转换。
2026-06-10 08:10:58 +08:00
jiangwei-infra
9a62a45a12
Merge pull request 'fix(test): e2e test collection crash - 跳过 import 安装目录' ( #20 ) from fix/e2e-collection-crash into main
Deploy / ci (push) Successful in 9s
Deploy / deploy (push) Failing after 8s
Deploy / notify-deploy-failure (push) Successful in 0s
2026-06-10 07:53:58 +08:00
cfdaily
b90b7b37c7
fix(test): e2e test 在 collection 阶段跳过(不 import 安装目录)
...
CI / lint (pull_request) Successful in 8s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 1s
根因: test_e2e_v27.py 的 skipif 只标记了函数级别,pytest collection 阶段
仍会 import 该文件,触发 sys.path.insert 指向安装目录的 spawner.py。
如果安装目录有 merge conflict 残留,整个 test job crash。
修复: 将 skipif 加入 pytestmark 级别,collection 阶段即跳过。
2026-06-10 07:52:41 +08:00
jiangwei-infra
672fadfee4
Merge pull request 'fix: deploy.yml requirements.txt + frontend resumed_from TS编译' ( #18 ) from fix/deploy-workflow into main
Deploy / ci (push) Successful in 10s
Deploy / deploy (push) Failing after 11s
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 07:21:24 +08:00
cfdaily
f380b5f92d
fix(frontend): V2Task 添加 resumed_from 字段
...
CI / lint (pull_request) Successful in 7s
CI / test (pull_request) Successful in 8s
CI / notify-on-failure (pull_request) Successful in 1s
deploy 时 TypeScript 编译报 TS2339: Property 'resumed_from' does not exist on type 'V2Task'。
DB 表有此字段但 TS interface 遗漏。
2026-06-10 07:20:24 +08:00
jiangwei-infra
228a95b9fa
Merge pull request 'fix(ci): deploy.yml 用 /tmp/ci-venv 替代 requirements.txt' ( #17 ) from fix/deploy-workflow into main
Deploy / ci (push) Successful in 23s
Deploy / deploy (push) Failing after 9s
Deploy / notify-deploy-failure (push) Successful in 0s
2026-06-10 07:15:39 +08:00
cfdaily
405b7147a7
fix(ci): deploy.yml 用 /tmp/ci-venv + 直接 pip install 替代 requirements.txt
...
CI / lint (pull_request) Successful in 8s
CI / test (pull_request) Successful in 9s
CI / notify-on-failure (pull_request) Successful in 1s
仓库没有 requirements.txt,deploy workflow 每次 push 到 main 都报错。
改为与 ci.yml 一致的方式:/tmp/ci-venv + 直接 pip install 依赖。
2026-06-10 07:14:29 +08:00
jiangwei-infra
b876159b52
Merge pull request 'fix(lint): 修复 PR #14 引入的 lint 回退 (119→0)' ( #16 ) from fix/lint-regression into main
Deploy / ci (push) Failing after 8s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
2026-06-10 07:09:44 +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
pangtong-fujunshi
7184079a75
Merge pull request 'fix(spawner): A13 exit=0 always completed' ( #15 ) from fix/a13-exit0-completed into main
Deploy / ci (push) Failing after 6s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 1s
CI / lint (pull_request) Failing after 6s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 4s
2026-06-09 23:42:05 +08:00
cfdaily
fc9b66b905
docs( #08 ): update A13 revised - exit=0 always completed
...
CI / lint (pull_request) Failing after 9s
CI / test (pull_request) Has been skipped
CI / notify-on-failure (pull_request) Successful in 4s
Merge old A12/A13 into single A13 revised: trust exit_code=0
regardless of stdout/JSON output. Old logic caused inform Mail
infinite retry loop.
2026-06-09 23:41:53 +08:00
cfdaily
5bb220d237
fix(spawner): A13 exit=0 always completed, not agent_error
...
exit=0 means process exited normally. Trust the exit code regardless
of stdout/JSON output or task_status. Old logic misclassified inform
Mail completions as agent_error, causing infinite retry loops.
Includes test update: test_task_status_pending expects completed.
2026-06-09 23:41:53 +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
a1a4d7c5a7
docs: #19 adopt simayi review suggestions (v1.1)
2026-06-09 23:41:53 +08:00
jiangwei-infra
717dbc446a
Merge pull request 'fix(CI): notify竞态修复 + 双倍触发去重 (PR #12 rebase, reviewed & approved)' ( #14 ) from fix/ci-dedup-v2 into main
Deploy / ci (push) Failing after 6s
Deploy / deploy (push) Has been skipped
Deploy / notify-deploy-failure (push) Successful in 0s
2026-06-09 23:36:19 +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
20b3b5facb
fix(ci): 修复notify竞态条件 - 用needs.result替代commit status查询
...
根因:notify-on-failure job 通过 commit status API 查询结果时,
自身的 pending status 会污染查询结果(竞态条件):
1. lint/test 都 success
2. notify 开始运行,自身状态 pending 写入 commit status
3. notify 查询 commit status → 看到 pending(自己的)≠ success
4. 误发 [CI] 失败 评论 + webhook 触发 Mail 通知
修复方案:
- 不再查询 commit status API
- 直接用 needs.lint.result 和 needs.test.result 判断
- 只有明确的 failure 才发通知
- 同时去掉 push 触发避免双倍运行
2026-06-09 23:34:44 +08:00
cfdaily
05201d778e
fix(ci): 去掉push触发避免双倍触发 + 修复notify误报
...
1. 触发器:去掉 push,只保留 pull_request(opened, synchronize)
- 每次 push 到 PR 分支不再跑 2 次 CI
2. notify-on-failure:只有明确的 failure 状态才发通知
- 之前:空状态/unknown/pending 都触发通知(误报根因)
- 现在:只有 STATUS=failure 才发通知
3. venv 路径:统一用 /tmp/ci-venv-lint 和 /tmp/ci-venv-test
- 避免 host 模式下与开发目录 .venv 冲突
2026-06-09 23:34:41 +08:00