File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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 形态」的机器判据)。
245245> - 🔴 **散文对拍探针 = 批 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 实测两者与门禁读数一致)。
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/ ` 为准** 。
247+
248+ ---
249+
250+ > 🔴🔴 ** 批 7 收口就地加注 · 「贴边件清单」的口径更正:手列清单一律作废,以全树脚本扫描为唯一来源(§C55.3 / §C57.4③;2026-09-13 · T21 追加轮,** 上面全部原文一字未改** )** :
251+ >
252+ > - ** 被更正的对象** :本表上面那条与 [ ` v0.22 ` 批 7 节「诚实代价」] ( ../versions/v0.22.md ) 里的** 「本批 10 个贴边件」是** 手列清单** (取值范围 = 本批实际触碰过、且改动当时余量 ≤5 的件 ∪ 两个判据件)⇒ 🔴 ** 它一律不得作为判据输入** 。上游已判其** 两次失真** (前几轮转述成「10 条」,而全树真值远大于此)。
253+ > - 🔴 ** 全树机器扫描(唯一来源;口径 ` countLines() ` ,域 ` app/src/**/*.{ts,tsx} ` )** :
254+ > · ** 上游(§C55.3 时点)** = ** 578** 文件 · ** ≥300 = 35 条** · ** 295–299 = 20 条** · ** 合计 55** 。
255+ > · 🔴 ** T21 于追加轮重跑** (T23 的三条提交已改动行数 ⇒ ** 不抄上游读数** )= ** 579** 文件 · ** ≥300 = 35 条** · ** 295–299 = 21 条** · ** 合计 56** 。
256+ > · ** 差额逐条归因** :① ** 新件** ` app/src/components/FragmentGroupAction.tsx ` (** 155 行** ,T23 的 ` 125eec85 ` )⇒ 文件数 ** 578 → 579** ;② ` app/src/components/FeedFragmentList.test.tsx ` ** 297 → 299** (T23 的 ` 125eec85 ` + 返工 ` 5d59e332 ` )⇒ ** 295–299 档 20 → 21** 。🔴 ** ≥300 档不变(35)** 。
257+ > - ** 域内恰 300(余 0)者 = 6 条** (T21 追加轮实测):` app/src/components/KnowledgeDetailPanel.tsx ` · ` app/src/components/notes/NotesReadingColumn.tsx ` · ** ` app/src/components/notes/NotesReadingColumn.views.test.tsx ` ** · ` app/src/hooks/useLiveCaptureControl.tsx ` · ` app/src/ui/primitives/dialogMigration.e.test.ts ` · ` app/src/views/session/SessionTriTrackView.tsx ` 。⚠️ ** 口径更正(按实测)** :其中 ** 5 条** 在上游那份 10 条手列清单里;🔴 ** 手列清单真正漏掉的域内 300/300 是 1 条** = ** ` NotesReadingColumn.views.test.tsx ` ** (§C55.3 同时点名了 ` KnowledgeDetailPanel.tsx ` ,而它** 本就在清单内** ——转述已两次失真,故** 以本表的实测名单为准** )。另:` scripts/check-bundle-budget.mjs ` = ** 300** 但** 不在本域** (` .mjs ` 不在 ` SOURCE_EXT ` ),它只出现在手列清单里。
258+ > - ** 本域两张完整表(T21 追加轮实测,供 T22 直接对拍)** :
259+ > · **≥300(35 条)**:`pages/ChatPage.tsx` 579 · `types/knowledge.ts` 559 · `App.tsx` 549 · `components/action-center/ActionCenterPanel.tsx` 538 · `components/GroupSidebar.tsx` 518 · `components/GroupSidebar.test.tsx` 497 · `components/RefineWorkbench.tsx` 497 · `components/KnowledgeCanvasView.tsx` 467 · `components/ProfileDetector.tsx` 448 · `pages/KnowledgePage.tsx` 444 · `components/GoalDetail.tsx` 427 · `components/NoteEditView.tsx` 412 · `components/RichEditorView.tsx` 409 · `components/AiProviderSettings.tsx` 391 · `components/RouteInfoPopover.tsx` 376 · `components/KnowledgeCanvasView.test.tsx` 368 · `types/session.ts` 367 · `components/NotePreviewView.tsx` 364 · `pages/SessionsPage.tsx` 355 · `components/NoteLinkToSystem.tsx` 352 · `components/NoteReadingView.tsx` 343 · `components/EnrichPanel.tsx` 327 · `components/AiConversationDock.tsx` 318 · `components/LiveProfileStrip.tsx` 316 · `components/SessionListPanel.test.tsx` 316 · `components/NoteLinkToSystem.test.tsx` 308 · `types/goals.ts` 308 · `components/KnowledgeTreeView.tsx` 305 · `utils/canvasElements.ts` 301 · 恰 300 的 **6 条**见上。
260+ > · ** 295–299(21 条)** :` components/ClassroomCapturePanel.tsx ` 299 · ` components/FeedFragmentList.test.tsx ` 299 · ** ` components/FeedFragmentList.tsx ` 299** · ` components/RefineLaunchDialog.tsx ` 299 · ` shell/TopBar.test.tsx ` 299 · ` ui/primitives/style-seams.test.ts ` 299 · ` ui/primitives/textBaseline.ts ` 299 · ` views/session/useTriTrackAlign.test.tsx ` 299 · ` components/session-detail/useRevealChoreography.test.tsx ` 298 · ` components/SessionListPanel.tsx ` 298 · ` ui/primitives/style-contract.test.ts ` 298 · ` views/note/noteViews.test.tsx ` 298 · ` components/review/useRevealMemory.test.tsx ` 297 · ` types/ai.ts ` 297 · ` ui/primitives/ConfirmDialog.test.tsx ` 297 · ` components/confirmMigration.test.tsx ` 296 · ` components/RefineWorkbench.test.tsx ` 296 · ` ui/primitives/emptyStateRatchet.test.ts ` 296 · ` ui/primitives/Modal.test.tsx ` 296 · ` components/session-detail/SessionViewHost.test.tsx ` 295 · ` pages/NotesPage.tsx ` 295。
261+ > - 🔴 ** 纪律(§C55.3 逐字)** :** 「手列清单一律不得作为判据输入;以全树脚本扫描为唯一来源」** 。⇒ 🔴 ** T22 必须在报告里给完整两张表** (≥300 / 295–299,逐条 ` 路径 + 实测行数 + 是否本批新增或被改过 ` ),并逐字写「** 任何后续编辑必须先拆件** 」。🔴 ** ` FeedFragmentList.tsx ` 是本轮新增的「恰 299」** (T23 的返工把它从 300 降到 299 ⇒ ** 余 1** ),** 它仍在 ≥295 面内** 。
262+ > - 🔴 ** 同口径已同步进 [ ` v0.22 ` 批 7 节] ( ../versions/v0.22.md ) ** (其「诚实代价」段的贴边件表后已加范围声明与全树读数)⇒ ** 本条与那张表必须并读** 。
You can’t perform that action at this time.
0 commit comments