Skip to content

Commit 9b1e8aa

Browse files
committed
docs(standards): 同步豁免探针的 CI 现状
1 parent 9d011ad commit 9b1e8aa

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

‎docs/standards/line-limit-exemptions.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
| app/src/components/GoalDetail.tsx | 427 | 一致性契约——进度信号每次现算(get_goal_progress),动作后局部刷新;毕业仪式/回顾流属 M2(按钮留壳禁用不误导)。(自动摘取,待细化) | 若再增长:按职责拆分 |
6363
| app/src-tauri/src/db_note_groups_tests.rs | 426 | v0.11.0 组数据层测试域 + v0.14.1 删除/影响面用例(级联归零/悬空清理/迁移回归)——单模块 #[path] 挂载(video_profile_tests.rs 同款先例),组删除语义变更集中验证 | 若再增长:删除/影响面组拆至 db_note_groups_delete_tests.rs |
6464
| app/src-tauri/src/analysis.rs | 423 | v0.5.0 M2 起结构化分析编排域(章节/重点/术语/讲者 + 事件消费 + step_boundaries/practice_segments/player_actions 三字段 + 审查修复按类型判定);各机制输出聚合内聚于单一分析函数 | 若再增长:build_chapter_signals 事件版拆至 analysis_signals.rs |
65-
| app/src-tauri/src/app_setup.rs | 420 | 本模块承载 setup 的 AppState 初始化(数据目录/DB/引擎池/可校准配置/内存态存储)与装配期辅助函数(模型路径构造/捆绑同步/ORT运行时目录注入)——lib.rs 只保留声明与 command 注册,职责单一。(自动摘取,待细化) | 若再增长:按职责拆分 |
65+
| app/src-tauri/src/app_setup.rs | 419 | 本模块承载 setup 的 AppState 初始化(数据目录/DB/引擎池/可校准配置/内存态存储)与装配期辅助函数(模型路径构造/捆绑同步/ORT运行时目录注入)——lib.rs 只保留声明与 command 注册,职责单一。(自动摘取,待细化)2026-09-13 批 8 T25:移除遗留凭据槽 "default" 的启动迁移读路径(−1 行) | 若再增长:按职责拆分 |
6666
| app/src-tauri/src/bin/asr_eval.rs | 418 | 目的——"无人工语料也能测 ASR"(2026-09-03 用户裁决①):批量样本(wav + 同名 .srt 外挂字幕 = 参考信道 L1 ~100% 无损)→ SenseVoice 离线转写(预处理开/关两路,A/B)→ CER + 混淆画像→ 汇总/A/B 对比/画像 top-N → 相对基线回归门(退出码契约)。(自动摘取,待细化) | 若再增长:按职责拆分 |
6767
| app/src-tauri/src/vocab.rs | 416 | 词表域(存储/纠错/候选提取/n-gram 分词)内聚;分词纯逻辑与存储同域便于单测 | 若再增长:collect_tokens/split_runs 拆至 vocab_tokens.rs |
6868
| app/src-tauri/src/ui_junk.rs | 415 | UI 噪声过滤域(水印/字幕条/角标检测规则 + 窗口过滤启发式)内聚于同一判定管线,规则共享窗口几何上下文 | 若再增长:窗口过滤拆至 ui_junk_window.rs |
@@ -120,7 +120,7 @@
120120
| app/src-tauri/src/engine_worker.rs | 321 | 拆分动机(三维复审 #9 + 豁免登记计划):engine.rs 在接入超时排空机制(三维复审 #5)后逼近 600 行硬拆线,按 line-limit-exemptions登记的拆分计划把 worker 循环与请求处理拆至本文件——engine.rs 保留 EnginePool 句柄与同步 API。(自动摘取,待细化) | 若再增长:按职责拆分 |
121121
| app/src-tauri/src/commands_ai_settings.rs | 318 | AI 设置命令域(视图/密钥/授权/目标 AI) + v0.19.1 ai_set_kb_qa 最小面命令(+28)——read-modify-write 同域先例(ai_set_goal_plan)内聚 | 若再增长:kb/goal 最小面命令拆至 commands_ai_settings_extra.rs |
122122
| app/src/components/AiConversationDock.tsx | 318 | 全局 AI 对话面板(REQ-274)+ 批 1 终态事件刷新接线——2026-09-09 审查纠偏实测登记(此前漏登),300-600 档 | 若再增长:会话列表段拆至 DockSessionList.tsx |
123-
| app/src-tauri/src/commands_ai_providers.rs | 317 | v0.11.6 M1:Provider 管理命令域(8 命令 + 视图映射 + 密钥解析口 resolve_default_provider_key/default_provider_ready)内聚于命令层;2026-09-11 探活改 chat_plain。`resolve_input`/`to_view` 与命令同域便于契约一致 | 若再增长:默认 Provider 解析与就绪门禁拆至 ai_provider_resolve.rs |
123+
| app/src-tauri/src/commands_ai_providers.rs | 343 | v0.11.6 M1:Provider 管理命令域(8 命令 + 视图映射 + 密钥解析口 resolve_default_provider_key/default_provider_ready)内聚于命令层;2026-09-11 探活改 chat_plain。`resolve_input`/`to_view` 与命令同域便于契约一致。2026-09-13 批 8 T25:移除遗留凭据槽 "default" 回落读路径 + 解析内核 resolve_default_key 抽出以便单测(+26 行) | 若再增长:默认 Provider 解析与就绪门禁拆至 ai_provider_resolve.rs |
124124
| app/src/components/LiveProfileStrip.tsx | 316 | 采集时右栏由 LiveActivityPanel 独占、档案卡(ProfileDetector)被隐藏——但 M2(REQ-189)引入"会话中画面档每 2-3 分钟自动重评"后档位成为采集中动态信息,且降档需用户裁决。本组件在采集态常显档案摘要(形态×画面档×领域),并接线 live:tier-changed /live:tier-downgrade-request → confirm_tier_downgrade,补齐 M2 前端断链(此前降档请求无人应答,降档永不生效)。(自动摘取,待细化) | 若再增长:按职责拆分 |
125125
| app/src/components/SessionListPanel.test.tsx | 316 | 覆盖批 4 选择/批量交互矩阵——选择模式进出(按钮+Esc)、单击勾选、Ctrl 加/减、Shift 区间、折叠组全选不含隐藏行(P3-1 修复:全选口径=可见行序 visibleOrder 而非 filtered)、列表变化自动裁剪选集、批量删除 pending 防连点与成功清选集(P3-2)、批量转eligible 过滤。invoke 全 mock;数据为本地 props 零后端往返(面板数据驱动经 props——父层 invoke 不在本组件)。(自动摘取,待细化) | 若再增长:按职责拆分 |
126126
| app/src-tauri/src/ffmpeg.rs | 313 | ffmpeg 是文件导入(音轨/关键帧)与内嵌字幕(L2)的唯一外部依赖。(自动摘取,待细化) | 若再增长:按职责拆分 |
@@ -242,7 +242,7 @@
242242
> - **裁定**:**接受「内容正确、提交边界错位」+ 强制登记,不重写历史**(§C16.2;批 5 已有同款先例被接受并逐字登记)。amend / force-push 被批纪律禁止,且其后已有 4 个提交依赖此历史 ⇒ 重写是净损失。
243243
> - 🔴 **顺带的机制结论(本批在提交机制上的两次实质改进,写进本节以备后来者)**:① 共享文件改用 **blob 构造 + `update-index --cacheinfo`**(`git show HEAD:<path>` 取 **LF 规范版本** → 只改自己那几行 → `hash-object -w` → 挂索引 → 提交,**不用 `--only`**);② 真实索引里已有别人暂存内容时改用**私有索引**(`GIT_INDEX_FILE` + `read-tree <HEAD>` + `add -- 只自己的路径` + `write-tree` + `commit-tree -p $(git rev-parse HEAD)` + `update-ref` **带旧值守卫**)—— **比 `--only` 安全**(不碰真实索引、不碰工作树)。**自证要看 `git diff HEAD -- <shared path>`**(`git diff --cached` 防不住 `--only`);**提交前先看 `git status --porcelain` 的「首列」**(出现 `M `/`A ` 且不是你的路径 ⇒ 索引里有别人的东西 ⇒ **必须**改用私有索引,否则 `git commit` 一定连带落库);**私有索引提交后必须 `git add -- <你的路径>` 重新对齐真实索引**,否则下一个人一裸提交就**回退**你的提交(§C41.2 连带回退 / §C54.2)。
244244
> - 🔴 **门禁盲区一例(§C51.7①)**:`app/src-tauri/src/commands_video.rs` 的**末尾换行被吞**(T21 实测 `s.endsWith("\n") === false`,`countLines()` = **356**)而 **`countLines()` 不变** ⇒ **本表与 `line-limits --full` 都看不见**。机理 = `countLines()` 的定义(`s.split("\n").length - (s.endsWith("\n") ? 1 : 0)`)**对「有无末尾换行」不敏感** —— 这是**口径的性质**,不是缺陷;但 🔴 **任何「逐字节一致」的纯搬迁 / 拆件声明都不许只靠行数**(批 7 的判据已升级为 **`Buffer.equals` 逐字节对拍 + `digest` / `sha256`**,§C26.4 / §C29)。**登记为技术债**(批 8 可考虑加一条「末尾换行 / EOF 形态」的机器判据)。
245-
> - 🔴 **散文对拍探针 = 批 8 的候选闸(§C11.8 ③)**:`scripts/check-exemption-prose.mjs`(批 7 T11 新建,**112 行**;口径 = `countLines()` 同源实现)把**本表的散文数字与 `check-command-registry.mjs` 的门禁读数对拍**(如「散文『311 条』== 门禁『定义 311』」;两态都成立、中途未同步期为**真阳性** `EXIT=1`)。🔴 **已入库,但不入八闸 / CI / husky**(理由:八闸的集合是批 8 治理收口的对账基线,本批扩闸会让逐字对账漂移;散文数字天然易漂 ⇒ 硬门禁会频繁假红)⇒ **手工跑**(`--help` 与头注都自述「非门禁」)。**并进入 `pr-check.yml` 的 paths-filter 缺口名单**(§C41.4 U2;**缺口形态未变、逃逸文件集合 +1** —— 同源事实见 [`performance.md`](performance.md) 的懒侧门禁节)。⚠️ **探针按路径定位、不按死锚行号**(本表的 `:45` 因 T6 删行已下移为 **`:44`**,即 `app_commands.rs` 那行,其散文现为 **「311 条」**、行数值 **478**,T21 实测两者与门禁读数一致)。
245+
> - 🔴 **散文对拍探针 = 批 8 的候选闸(§C11.8 ③)**:`scripts/check-exemption-prose.mjs`(批 7 T11 新建,**112 行**;口径 = `countLines()` 同源实现)把**本表的散文数字与 `check-command-registry.mjs` 的门禁读数对拍**(如「散文『311 条』== 门禁『定义 311』」;两态都成立、中途未同步期为**真阳性** `EXIT=1`)。🔴 **批 8 T17 已挂进 CI**:`.github/workflows/pr-check.yml` 的 `line-limits` job 内**单列** step「**Exemption table prose check**」(`:211`,`run: node scripts/check-exemption-prose.mjs`)⇒ **它已经是 CI 门禁**。🔴 **仍不进八闸集合**(理由未变:八闸的集合是批次间治理收口的逐字对账基线,扩闸会让对账漂移)、🔴 **仍不进 husky**;⚠️ **若它在 CI 上频繁假红 ⇒ 回退裁决、改回手工跑,并写明回退理由。****并进入 `pr-check.yml` 的 paths-filter 缺口名单**(§C41.4 U2;**缺口形态未变、逃逸文件集合 +1** —— 同源事实见 [`performance.md`](performance.md) 的懒侧门禁节)。⚠️ **探针按路径定位、不按死锚行号**(本表的 `:45` 因 T6 删行已下移为 **`:44`**,即 `app_commands.rs` 那行,其散文现为 **「311 条」**、行数值 **478**,T21 实测两者与门禁读数一致)。
246246
> - 🔴 **本批的贴边件清单(余量 ≤5,共 10 条)落在 [`v0.22` 批 7 节的「诚实代价」](../versions/v0.22.md)**(母本体例同批 4 的「9 个贴边文件」):**任何后续编辑必须先拆件**。其中 `app/src/components/notes/NotesReadingColumn.tsx` 的路径在批 7 台账(`rulings.md` §C49.5①)与派发语里被写成 `app/src/views/note/NotesReadingColumn.tsx` —— 🔴 **该路径不存在**(实测该文件在 `components/notes/`)⇒ **以 `components/notes/` 为准**。
247247
248248
---

‎docs/standards/performance.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161

6262
· 🔴 **登记③(`Surface` 迁移的可见变化 → 像素面的未决项)**:**圆角就地 `6 → 8`**(9 处 = 6 处随原语 `radius="panel"` + 3 处就地改;计划面 254 处、其余 245 处维持现状)· **边框与近白底「冷灰 → 暖纸」** · **`boxShadow` 字面量换 token**(含 1 处有损:方向性边缘投影换双向环境投影)· **遮罩统一**(`0 0 0 9999px rgba(0,0,0,.45)` 由**巨扩散**充当,`--ed-shadow-*` 承载不了)· **弱化文本墨度对比度**(2.54:1 → 5.13:1)。🔴 **这些量级与形态在 `app/src/ui/primitives/` 的基线件与残留件里各有出处;本规范不重复登记数值** —— 🔴 **它们的真判据是像素面**(jsdom **不排版、不加载样式表**)⇒ **「有读数」≠「已统一」**(目标值是**设计决定**,不是规范能裁的)。
6363
· 🔴 **登记④(字号越界与弱化灰的存量 → 只许降的棘轮)**:**字号越界**(`< 12px` 六档)与**弱化灰**(`#9ca3af`)**都已有棘轮件**(**冻结常量 + 逐文件表 + 锚**三连通;各表**逐文件合计 == 冻结总数** 且 **锚的条目数 == 冻结文件数**,本次现场复核**自洽**)。⇒ 🔴 **新增或迁移的 UI 不得扩充这两族存量**(判据 = 沿既有棘轮收紧,**不是**按「看起来更统一」改观感)。🔴 **迁移真降一处时要手工同步「冻结总数 + 逐文件表 + 锚」三处**;**常数与逐文件表必须恰等**(不许把常数手工改成自洽)。
64-
- 🔴 **同批登记(不在本文件,仅互指)**:`scripts/check-exemption-prose.mjs`(批 7 T11 新建的**散文对拍探针**,112 行)**已入库但不入八闸 / CI / husky** ⇒ 登记为「**批 8 的候选闸**」(§C11.8 ③),并**同样进入上面那条 paths-filter 缺口名单**;落点见 [`line-limit-exemptions.md`](line-limit-exemptions.md) 的批 7 收口加注。
64+
- 🔴 **同批登记(不在本文件,仅互指)**:`scripts/check-exemption-prose.mjs`(批 7 T11 新建的**散文对拍探针**,112 行)**仍不入八闸 / husky**,但**批 8 T17 已单列转正为 CI 门禁**(`pr-check.yml` 的 `line-limits` job 内 step「Exemption table prose check」`:212`)⇒ 登记为「**批 8 T17 已落地的 CI 门禁**」(§C11.8 ③),并**同样进入上面那条 paths-filter 缺口名单**;落点见 [`line-limit-exemptions.md`](line-limit-exemptions.md) 的批 7 收口加注。
6565

6666
### 第二部分:测量与 Profiling
6767

0 commit comments

Comments
 (0)