Skip to content

Commit 25118d2

Browse files
committed
chore(rust): 真话化批 1 悬挂注释并刷新豁免表
1 parent aa3a2bc commit 25118d2

6 files changed

Lines changed: 20 additions & 12 deletions

File tree

‎app/src-tauri/src/artifact.rs‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
//! 产物块模型(REQ-052 / v0.5.0 M7,头脑风暴轮 5)。
22
//!
3-
//! @ai-context: 一种原料,五种模板——ArtifactBlock 为产物体系最小单元:
3+
//! @ai-context: 一种原料,多种块——ArtifactBlock 为产物体系最小单元:
44
//! 块**引用**原料不复制(refs 携带 segment/ocr_block 标识 + 时间戳),
55
//! 原料可回看、可重算(G1 派生视图地基)。
66
//! @ai-context: 纯数据定义 + JSON 序列化(serde),无副作用。
7-
//! @ai-context: source 标记来源:local(本地规则)/ ai_enhanced(V1.0 AI 补缝)/
8-
//! placeholder(占位:AI 增强待 V1.0 或诚实降级标记)。
7+
//! @ai-context: `ArtifactKind` / `BlockPayload` / `BlockSource` 的变体是 `artifact_blocks`
8+
//! 表的 `kind` / `payload_json` / `source` **持久化格式契约**(含历史行)——
9+
//! 删除任一变体需配套数据迁移;它们只被测试构造,`dead_code` 不会提示。
10+
//! @ai-context: source 标记来源:local(本地规则,现行唯一写入值)/ ai_enhanced(历史数据来源标记:
11+
//! 补缝链已随批 1 删除,不再新写)/ placeholder(历史数据:重建失败诚实降级,不再新写)。
912
1013
use serde::{Deserialize, Serialize};
1114

@@ -108,9 +111,10 @@ pub enum BlockPayload {
108111
pub enum BlockSource {
109112
/// 本地规则产物(默认)
110113
Local,
111-
/// AI 补缝产物(V1.0 实装;0.5.0 仅协议/mock)
114+
/// AI 补缝产物(**历史数据来源标记**:补缝链已随批 1 删除,现无写入路径;
115+
/// 反序列化旧 `artifact_blocks.source` 行仍需要本变体)
112116
AiEnhanced,
113-
/// 占位(AI 增强待 V1.0 / 重建失败诚实降级)
117+
/// 占位(**历史数据**:重建失败诚实降级;现无写入路径)
114118
Placeholder,
115119
}
116120

‎app/src-tauri/src/commands_ai_settings.rs‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
//! @ai-context: 系统层(AGENTS.md §6)——只做参数校验、调用业务模块
44
//! (ai_settings/ai_credentials/ai_balance/ai_client/
55
//! ai_guardrails)、错误映射。
6+
//! ⚠️ 批 1 收口更正:旧单 provider 三命令删除后,本文件对
7+
//! `ai_credentials` 已**无直接调用**——该模块经
8+
//! `commands_ai_providers.rs` 的默认 Provider 解析路径仍在使用。
69
//! @ai-context: 密钥解析优先级:环境变量 SILICONFLOW_API_KEY > 凭据库(DPAPI);
710
//! 密钥**永不回传前端**(视图只报存在性与来源——明文红线)。
811
//! @ai-context: 授权红线:内容上传类调用(M2 精修/M3 补充)消费

‎app/src-tauri/src/vad_threshold_slot.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
1111
use std::sync::atomic::{AtomicI64, AtomicU32, Ordering};
1212

13-
/// VAD 当前阈值共享槽(AppState 持有;会话线程写、诊断读)。
13+
/// VAD 当前阈值共享槽(AppState 持有;**仅会话线程写**——诊断读端已随批 1 删除,见模块头)。
1414
#[derive(Debug, Default)]
1515
pub struct VadThresholdSlot {
1616
bits: AtomicU32,
17-
/// 发布来源会话 id(0 = 无数据;诊断新鲜度判定)
17+
/// 发布来源会话 id(0 = 无数据;原为诊断新鲜度判定用,当前无读取方)
1818
source_session: AtomicI64,
1919
}
2020

‎app/src-tauri/src/video_profile_memory.rs‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,9 @@ impl ProfileMemory {
104104
/// 记录用户确认(四维形态优先版,REQ-188):kind 存代表旧类(消费端兼容),
105105
/// form 存新形态(检测卡 v2 下次直接生效——同标题/同系列)。
106106
///
107-
/// @ai-context: form 为 None(Unknown 等无可映射形态)时仅记 kind——
108-
/// 形态维度诚实未知,不猜默认;读取时 lookup_form 返回 None。
107+
/// @ai-context: 本入口恒写 `Some(form)`;`form: None` 只可能来自旧 JSON(缺字段经
108+
/// serde 缺省),读取时由 `lookup_form` 走 `kind.to_form()` 兜底 ——
109+
/// 批 1 删掉旧 `remember` 入口后,已无写端能产出 None。
109110
pub fn remember_form(&mut self, keyword: &str, form: crate::video_profile_spec::ContentForm) {
110111
let kind = crate::video_profile_spec_data::legacy_kind_for_form(form);
111112
self.remember_with_form(keyword, kind, Some(form));

‎app/src-tauri/src/video_profile_spec_data.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ pub fn postprocess_for_form(form: ContentForm) -> PostprocessRules {
114114
speaker_detect: false,
115115
glossary: false,
116116
},
117-
// 解说:书面化+重点(叙事线模板变体见 artifact_templates)
117+
// 解说:书面化+重点(叙事线模板变体已随产物模板下线)
118118
ContentForm::Explainer => PostprocessRules {
119119
chapter_detect: false,
120120
step_cards: false,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
| app/src-tauri/src/live_session_persist.rs | 488 | 定稿落库域(persist_final/digest_merged/handle_final_event)+ P2 flush_tail_and_persist(停止/暂停共用尾句落库)内聚 | 若再增长:flush_tail_and_persist 与 digest_merged 拆至 live_session_persist_tail.rs |
4242
| app/src-tauri/src/db_sessions.rs | 482 | 会话仓储;批 4 delete_sessions_batch + 审查修复轮 3(transaction() 改造)——2026-09-09 实测纠偏(登记值 394 过期) | 若再增长:recent_ocr_texts 等建议查询拆至 db_sessions_queries.rs |
4343
| app/src-tauri/src/commands_ai_enrich.rs | 479 | v0.8.0 M3(REQ-142)+ F1/F2/F3:知识补充命令域(九子项校验/预估/异步任务/采纳/撤销 + 配额去重门控 + 成本硬拦截 + 任务落库)——与精修共用任务注册表上下文,命令域内聚;2026-09 修复(章节目录注入/逐块审查回执)微增 | 若再增长:门控/拦截拆至 commands_ai_enrich_gate.rs |
44-
| app/src-tauri/src/app_commands.rs | 478 | 宏约束下的**唯一**注册点:334 条 `generate_handler!` 条目是**数据不是逻辑** —— `Invoke` 按值语义使分域组合不可行(见文件头),拆成多份只会在域间新增「命令名 → 域」路由漂移面;一致性由 `scripts/check-command-registry.mjs` 机器门禁守 | 不拆(数据文件);新增命令时同步条目,由门禁强制 |
44+
| app/src-tauri/src/app_commands.rs | 478 | 宏约束下的**唯一**注册点:**312 条** `generate_handler!` 条目是**数据不是逻辑**(批 1 删除批收口实测:334 → 312,−22;此数由本行人工维护,`--write` 只刷新数字列) —— `Invoke` 按值语义使分域组合不可行(见文件头),拆成多份只会在域间新增「命令名 → 域」路由漂移面;一致性由 `scripts/check-command-registry.mjs` 机器门禁守 | 不拆(数据文件);新增命令时同步条目,由门禁强制 |
4545
| app/src-tauri/src/region_tracker.rs | 478 | v0.4.0 M2(REQ-037)起:ROI 跟踪状态机(播放区域检测/锁定聚簇/重扫/前台切换冻结)+ 纯函数单测内联;与 RoiTracker 状态强耦合 | 若再增长:lock_roi/prior_roi 纯函数拆至 region_lock.rs |
4646
| app/src-tauri/src/layout_analyzer.rs | 475 | v0.5.0 M3(REQ-047):规则版版面分析(行/列投影 + 表格线检测 + 区域分类启发式)内聚于同一分类管线;审查加固(公式启发 + 低信息纯色方差滤除) | 若再增长:区域分类启发式拆至 layout_classify.rs |
4747
| app/src-tauri/src/commands_session_note.rs | 472 | 既有登记 314 为过期快照——2026-09-06 实测纠偏(v0.20 装载合成/web 分支/批量 inner 扩展后 +144) | 若再增长:convert_to_note 拆至 commands_session_note_convert.rs |
@@ -117,10 +117,10 @@
117117
| app/src-tauri/src/bin/asr_forensic.rs | 321 | 定位"结尾识别不全/短句不清晰/断句不准"根因的三连验证:① 会话原始音频(session-audio/{id}.wav,16k 单声道 PCM16)离线SenseVoice 整段转写 → 与 DB 流式链路段对比(句尾是否更完整);② 对疑似截断段截取音频窗口(start-200ms..end+1200ms)单独离线转写 → 证明"音频里有没有这个尾字"(二分:链路丢 vs 源缺失);③ 200ms 块 RMS 统计 → 验证"句尾弱音块被判静音"假设的量化依据。(自动摘取,待细化) | 若再增长:按职责拆分 |
118118
| app/src-tauri/src/db_ai_chat.rs | 321 | AI 对话双表仓储 + v0.19.1(REQ-260)retrieval/meta_json 补列与行映射(+42)——SQL/行映射内聚(db_* 文件先例) | 若再增长:消息侧读写拆至 db_ai_chat_messages.rs |
119119
| app/src-tauri/src/engine_worker.rs | 321 | 拆分动机(三维复审 #9 + 豁免登记计划):engine.rs 在接入超时排空机制(三维复审 #5)后逼近 600 行硬拆线,按 line-limit-exemptions登记的拆分计划把 worker 循环与请求处理拆至本文件——engine.rs 保留 EnginePool 句柄与同步 API。(自动摘取,待细化) | 若再增长:按职责拆分 |
120+
| 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 |
120121
| 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 |
121122
| app/src/components/AiConversationDock.tsx | 316 | 全局 AI 对话面板(REQ-274)+ 批 1 终态事件刷新接线——2026-09-09 审查纠偏实测登记(此前漏登),300-600 档 | 若再增长:会话列表段拆至 DockSessionList.tsx |
122123
| app/src/components/SessionListPanel.test.tsx | 316 | 覆盖批 4 选择/批量交互矩阵——选择模式进出(按钮+Esc)、单击勾选、Ctrl 加/减、Shift 区间、折叠组全选不含隐藏行(P3-1 修复:全选口径=可见行序 visibleOrder 而非 filtered)、列表变化自动裁剪选集、批量删除 pending 防连点与成功清选集(P3-2)、批量转eligible 过滤。invoke 全 mock;数据为本地 props 零后端往返(面板数据驱动经 props——父层 invoke 不在本组件)。(自动摘取,待细化) | 若再增长:按职责拆分 |
123-
| app/src-tauri/src/commands_ai_settings.rs | 315 | AI 设置命令域(视图/密钥/授权/目标 AI) + v0.19.1 ai_set_kb_qa 最小面命令(+28)——read-modify-write 同域先例(ai_set_goal_plan)内聚 | 若再增长:kb/goal 最小面命令拆至 commands_ai_settings_extra.rs |
124124
| app/src/components/LiveProfileStrip.tsx | 315 | 采集时右栏由 LiveActivityPanel 独占、档案卡(ProfileDetector)被隐藏——但 M2(REQ-189)引入"会话中画面档每 2-3 分钟自动重评"后档位成为采集中动态信息,且降档需用户裁决。本组件在采集态常显档案摘要(形态×画面档×领域),并接线 live:tier-changed /live:tier-downgrade-request → confirm_tier_downgrade,补齐 M2 前端断链(此前降档请求无人应答,降档永不生效)。(自动摘取,待细化) | 若再增长:按职责拆分 |
125125
| app/src-tauri/src/ffmpeg.rs | 313 | ffmpeg 是文件导入(音轨/关键帧)与内嵌字幕(L2)的唯一外部依赖。(自动摘取,待细化) | 若再增长:按职责拆分 |
126126
| app/src-tauri/src/note_filter_ocr.rs | 313 | BodySource::OcrDirect 分支的精简净化链——排序 → 净化链(① 行合并评分器 → ② 行级重识别判定 → ③ 跨帧增量合并,spec §3.1)→ 符号归一(跳过口语净化/口头禅/碎片规则——OCR文本是视觉识别产物,无 ASR 的结巴/填充词/重复)→ 相邻去重→ markdown 组装("图文提取"标注段)。(自动摘取,待细化) | 若再增长:按职责拆分 |

0 commit comments

Comments
 (0)