Skip to content

chore(orchestrator): remove orphan SY-4 retry/concurrency scaffolding - #56

Merged
AITCX08 merged 2 commits into
mainfrom
chore/sy4-orphan-cleanup
Jun 1, 2026
Merged

chore(orchestrator): remove orphan SY-4 retry/concurrency scaffolding#56
AITCX08 merged 2 commits into
mainfrom
chore/sy4-orphan-cleanup

Conversation

@AITCX08

@AITCX08 AITCX08 commented Jun 1, 2026

Copy link
Copy Markdown
Owner

Summary

SY-4 的执行机器从未并进 main,只在 orchestrator.py / workflow_loader.py 留下一堆等它的孤儿钩子/死代码。决定废弃 SY-4 分支(rebase 风险 high,main 已用 orchestrator 架构重做),清掉这些孤儿:

  • orchestrator.py: RunState.DEFERRED_CAPACITY/TIMEOUT_KILLED 死枚举、in_retry_queue/retry_attempt 字段、_collect_retry_queue()、snapshot/reconcile/get_metrics 里的 retry-queue 逻辑
  • workflow_loader.py: max_concurrent_runs/run_timeout_seconds/retry_max/retry_backoff_base_seconds 四个无消费方的配置字段 + 校验

Verification (独立评审 agent 复跑)

  • 每个被删符号先 grep 全仓确认无活跃消费方
  • 全量 690 passed 无回归;import orchestrator, workflow_loader OK
  • WORKFLOW.md 仍设那四个 key → loader 未知 key 容错已验证(load 不报错)

不做的事

  • 不动 WORKFLOW.md(那四个 key 被 loader 静默忽略,无害)
  • court_reconcile_cli.py 的 metrics.get('in_retry_queue',0) 用了默认值安全,不在删除清单,未顺手改
  • retry_queue.py 模块若将来要做并发/重试,从 feat/sy-4-concurrency-retry @1ae3793 单独捞回重新接线

🤖 Generated with Claude Code

AITCX08 and others added 2 commits June 1, 2026 14:51
清除 SY-4 (执行机器从未并进 main) 留下的孤儿钩子/死代码: 这些是等待
执行机器接入的空壳, 无任何活跃消费方. 用户已拍板废弃 SY-4 分支.

## 主要改动
- orchestrator.py:
  - 模块 docstring 去掉 retry-queue.json 那处状态描述 (4+1 -> 4)
  - 删 RunState.DEFERRED_CAPACITY / TIMEOUT_KILLED 枚举值 + _LAST_ACTION_TO_STATE 映射
  - 删 Run.in_retry_queue / Run.retry_attempt 字段
  - 删 _collect_retry_queue() (只读 retry-queue.json, 无写入方)
  - snapshot() 去掉 retry_map 收集 + 补 QUEUED Run 的 retry 分支
  - reconcile 删 I-3 retry_stale_after_done 分支 (后续 I-4/I-5 -> I-3/I-4)
  - get_metrics 去掉 in_retry_queue 计数
  - _build_run_from_seen 去掉 in_retry_queue/retry_attempt 参数
  - I-1/I-2 suggested_fix 文案去掉 'push retry queue' (机制已删)
- workflow_loader.py:
  - 删 WorkflowConfig 的 max_concurrent_runs / run_timeout_seconds /
    retry_max / retry_backoff_base_seconds 四字段 + 它们的类型/非负/>0 校验

## 设计决策
- retry-queue.json 是运行时文件不是源码, 未动
- workflow_loader 的 clean filter 只保留已知字段 (前向兼容); 删字段后
  WORKFLOW.md 里残留的这四个 key 被静默忽略, loader 不报错 (已验证真实
  WORKFLOW.md 仍能 load)
- gitea_watcher 只消费 allowed_labels, 不读这四字段, 不受影响

## 测试
- 更新 test_orchestrator / test_workflow_loader / test_court_reconcile_cli
  里引用被删符号的用例; 新增 test_removed_sy4_concurrency_keys_are_tolerated
  锁住未知 key 容错
- 全量: 690 passed (0 fail)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@AITCX08
AITCX08 merged commit b022747 into main Jun 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant