- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次) - .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…), 目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪 - .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/) - .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*) - .gitignore 补:备份件(*.bak-*) - 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
94 lines
6.7 KiB
HTML
94 lines
6.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>需求统一启停控制台(2026-09-30)</title>
|
||
<style>
|
||
html,body{margin:0;padding:0;background:#1a1a1a;color:#e8e8e8;
|
||
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;}
|
||
.wrap{max-width:760px;margin:0 auto;padding:28px 20px 48px;}
|
||
h1{font-size:18px;font-weight:600;color:#CECBF6;margin:0 0 6px;}
|
||
.sub{font-size:12.5px;color:#8a8a8a;margin:0 0 26px;line-height:1.7;}
|
||
.fig{margin:0 0 34px;}
|
||
.cap{font-size:12px;color:#8a8a8a;margin:8px 0 0;line-height:1.6;}
|
||
code{color:#AFA9EC;font-size:11.5px;}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
<h1>需求统一启停控制台 · 一个需求牵扯的四层</h1>
|
||
<p class="sub">入口:<code>goalctl.py status | start | stop</code>(默认干跑,<code>--yes</code> 才真做)。
|
||
🔴 钩子层**不在可启停范围内** —— 它全局注册、跨项目共用,装卸会连累所有项目。</p>
|
||
|
||
<div class="fig">
|
||
<svg width="100%" viewBox="0 0 680 336" role="img" xmlns="http://www.w3.org/2000/svg">
|
||
<text x="24" y="26" font-size="15" font-weight="600" fill="#CECBF6">① 一个需求牵扯什么(本机实测)</text>
|
||
|
||
<text x="30" y="54" font-size="11" font-weight="600" fill="#8a8a8a">层</text>
|
||
<text x="150" y="54" font-size="11" font-weight="600" fill="#8a8a8a">具体物</text>
|
||
<text x="430" y="54" font-size="11" font-weight="600" fill="#8a8a8a">谁能改</text>
|
||
<text x="570" y="54" font-size="11" font-weight="600" fill="#8a8a8a">实测状态</text>
|
||
|
||
<rect x="24" y="62" width="632" height="40" rx="6" fill="#26215C" stroke="#AFA9EC" stroke-width="0.6"/>
|
||
<text x="34" y="87" font-size="11.5" fill="#CECBF6">① 排期层</text>
|
||
<text x="150" y="87" font-size="11.5" fill="#CECBF6">automations 表的周期排期</text>
|
||
<text x="430" y="87" font-size="11.5" font-weight="600" fill="#F7C1C1">⛔ 只有会话</text>
|
||
<text x="570" y="87" font-size="11.5" fill="#CECBF6">3 条全 PAUSED</text>
|
||
|
||
<rect x="24" y="106" width="632" height="40" rx="6" fill="#1F3B33" stroke="#5DCAA5" stroke-width="0.6"/>
|
||
<text x="34" y="131" font-size="11.5" fill="#9FE1CB">② 程序层</text>
|
||
<text x="150" y="131" font-size="11.5" fill="#9FE1CB">collabd 的 wake_enable(投递总闸)</text>
|
||
<text x="430" y="131" font-size="11.5" font-weight="600" fill="#5DCAA5">✓ 脚本</text>
|
||
<text x="570" y="131" font-size="11.5" fill="#9FE1CB">已置 false</text>
|
||
|
||
<rect x="24" y="150" width="632" height="40" rx="6" fill="#1F3B33" stroke="#5DCAA5" stroke-width="0.6"/>
|
||
<text x="34" y="175" font-size="11.5" fill="#9FE1CB">③ 总开关层</text>
|
||
<text x="150" y="175" font-size="11.5" fill="#9FE1CB">goal.json 的 run 段</text>
|
||
<text x="430" y="175" font-size="11.5" font-weight="600" fill="#5DCAA5">✓ 脚本</text>
|
||
<text x="570" y="175" font-size="11.5" fill="#9FE1CB">已置 paused</text>
|
||
|
||
<rect x="24" y="194" width="632" height="40" rx="6" fill="#1F3B33" stroke="#5DCAA5" stroke-width="0.6"/>
|
||
<text x="34" y="219" font-size="11.5" fill="#9FE1CB">④ 服务层</text>
|
||
<text x="150" y="219" font-size="11.5" fill="#9FE1CB">看板 serve / 守护 guard / 网关心跳</text>
|
||
<text x="430" y="219" font-size="11.5" font-weight="600" fill="#5DCAA5">✓ 复用 stop-collab</text>
|
||
<text x="570" y="219" font-size="11.5" fill="#9FE1CB">全停</text>
|
||
|
||
<rect x="24" y="244" width="632" height="66" rx="6" fill="#501313" stroke="#F7C1C1" stroke-width="0.8"/>
|
||
<text x="34" y="266" font-size="11.5" font-weight="600" fill="#F7C1C1">— 钩子层(⛔ 不在闸内)</text>
|
||
<text x="34" y="284" font-size="11" fill="#F7C1C1">全局 12 个 hook 注册在 settings.json,里面还混着**别的工作区**的 decision_bridge.py(×4 事件)</text>
|
||
<text x="34" y="301" font-size="11" fill="#F7C1C1">⇒ 装卸钩子会连累所有项目 ⇒ 只能「开关文件 + 入口早退」;它本身零 token,不拦</text>
|
||
</svg>
|
||
<p class="cap">⚠️ 剔除项:**一次性棒 15 条**(<code>schedule_type='once'</code>、next 为空=已耗),⛔ 不是启停对象。判"还在不在跑"要看 <code>deleted_at</code>(删除是**软删**,status 仍 ACTIVE)。</p>
|
||
</div>
|
||
|
||
<div class="fig">
|
||
<svg width="100%" viewBox="0 0 680 250" role="img" xmlns="http://www.w3.org/2000/svg">
|
||
<text x="24" y="26" font-size="15" font-weight="600" fill="#CECBF6">② 三道闸各拦什么 —— 缺一层就留缝</text>
|
||
|
||
<rect x="24" y="44" width="196" height="52" rx="8" fill="#26215C" stroke="#AFA9EC" stroke-width="0.7"/>
|
||
<text x="122" y="66" text-anchor="middle" font-size="12" font-weight="600" fill="#CECBF6">① 排期层 PAUSED</text>
|
||
<text x="122" y="84" text-anchor="middle" font-size="11" fill="#AFA9EC">拦「起新会话」</text>
|
||
|
||
<rect x="242" y="44" width="196" height="52" rx="8" fill="#085041" stroke="#9FE1CB" stroke-width="0.7"/>
|
||
<text x="340" y="66" text-anchor="middle" font-size="12" font-weight="600" fill="#9FE1CB">② 程序闸 false</text>
|
||
<text x="340" y="84" text-anchor="middle" font-size="11" fill="#5DCAA5">拦「投递=唤醒主会话」</text>
|
||
|
||
<rect x="460" y="44" width="196" height="52" rx="8" fill="#085041" stroke="#9FE1CB" stroke-width="0.7"/>
|
||
<text x="558" y="66" text-anchor="middle" font-size="12" font-weight="600" fill="#9FE1CB">③ 总开关 paused</text>
|
||
<text x="558" y="84" text-anchor="middle" font-size="11" fill="#5DCAA5">拦「起来后干活」</text>
|
||
|
||
<text x="340" y="126" text-anchor="middle" font-size="12" font-weight="600" fill="#8a8a8a">三者互补不重叠 ⇒ 三个一起翻才是「真停」</text>
|
||
|
||
<rect x="24" y="146" width="632" height="40" rx="6" fill="#412402" stroke="#FAC775" stroke-width="0.6"/>
|
||
<text x="34" y="171" font-size="11.5" fill="#FAC775">只关 ② ⇒ 排期照旧起会话 | 只停 ① ⇒ 程序照旧投递(占主会话,体感"卡")</text>
|
||
|
||
<rect x="24" y="192" width="632" height="46" rx="6" fill="#501313" stroke="#F7C1C1" stroke-width="0.6"/>
|
||
<text x="34" y="213" font-size="11.5" fill="#F7C1C1">⛔ 做不到"一秒内把在跑的会话停下":会话不可 kill ⇒ 只能「不再叫新的 + 起来了不干活」</text>
|
||
<text x="34" y="230" font-size="11" fill="#F7C1C1">降级保障:漏改排期时,唤醒轮第 0 步读到 run=paused 也会立刻退(成本=一次空跑)</text>
|
||
</svg>
|
||
<p class="cap">驱动口径=用户已定的那条:下「执行 XXX 目标」口令 ⇒ <code>start</code>;完成/阻碍 ⇒ <code>stop</code>。⛔ 唤醒轮不许把自己启回来。</p>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|