feat(ci): 落地熔断自动化——main 红灯定检冒烟 + 当日 merge 自动二分 + 自动提单
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 24/100
Research direction
Read docs/landing-and-acceptance.md §1 and scripts/landing_gate.py first; the issue says the owner must adopt the circuit breaker rules before this automation has an execution target. Then inspect ci.yml, its chunking and pytest-timeout setup, #169's reproduction recipe, and ISSUE_FILING_GUIDE. Done means a scheduled main smoke run can bisect same-day merges and file an issue with the failing SHA and faulthandler stack within 30 minutes, while green runs stay silent.
Written by the indexing model from the issue text.
Description
优先级 P1 · 依赖:无
基线 HEAD = e92d2f5
Summary
2026-10-15 18:31 ~ 10-16 11:42,origin/main 的 ci.yml 连续 10+ 次 failure(gh run list -R jeffkit/plaita --workflow ci.yml:conclusion=failure 自 c665743 至 87b8ad0),期间各波次落地照常合并——CI 检出了问题,但结论没有接到落地开关上,main 集成态(#169 全量卡死)盲窗约两天。截至本单提交,main 最新 run(64f6307)Regression gate (py3.13) 仍 failure——按熔断口径,落地此刻本应处于停并态。
流程约定与门禁脚本已落 docs/landing-and-acceptance.md + scripts/landing_gate.py(e92d2f5)——但脚本需要人跑。本单要的是把「读结论→停并→定位」变成机器自动执行。
影响
- main 红 → 盲窗 → 所有「全量口径」验证不可复跑;修复波次带着未知集成态继续堆叠。
- #169 的定位过程(人工逐个 checkout 当日 merge 跑测试、每次约 90 秒)本可全自动。
建议
- 定检冒烟:schedule(console schedules 或 GH Actions cron,~30min)在 main 跑分块 unit 冒烟(复用 ci.yml 的 chunk 划分 + pytest-timeout)。
- 红即自动二分:对当日 merge 序列逐个 checkout 跑冒烟(#169 正文已给出配方与耗时),定位元凶 commit。
- 自动提单:命中即按 ISSUE_FILING_GUIDE 自动开单,正文带 faulthandler 栈(
PYTHONFAULTHANDLER=1)与元凶 SHA;landing_gate.py ci读 CI 结论天然获得停并信号,无需额外开关。 - 验收条件:注入一次人为红,从红到定位提单 ≤30 分钟全自动完成;绿时零动作零噪音。
边界
- 不替代 ci.yml(PR 门禁不变);不自动 revert merge(只提单,停并由熔断规则承担)。
- 前置:
docs/landing-and-acceptance.md§1 熔断规则需 owner 拍板采纳,本单才有执行对象。
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 1h 55m
- Merged PRs (30d)
- 13
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jeffkit/plaita
-
enhancement
Difficulty 4/5 1-2 days Newbie friendliness 43/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
jeffkit/plaita#305 · 4 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
521xueweihan/HelloGitHub#4115 ·
-
get_lldp_neighbors_detail: query asks for 'max-address' (typo for 'mac-address'), so remote_chassis_id is always emptyPossibly taken @Jah-yee claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
lesson-submission pending-review
Difficulty 1/5 Under an hour Newbie friendliness 74/100
Ikalus1988/MisakaNet#3899 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
aws-samples/sample-per-model-bedrock#549 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100