Aaiulmschore: 四件小收敛
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
chore(release): add codelattice packaging workflow | 5 个月前 | |
chore(release): add codelattice packaging workflow | 5 个月前 | |
feat(c): add C language Phase A support New gitnexus-c crate with tree-sitter-c extractor, CLI/bridge/MCP integration, 9 feature-gated tests, smoke scripts, and docs. | 5 个月前 | |
chore: 四件小收敛 - scripts新增calls-reason-compare.sh对账脚本(A1手工对账固化) - mcp_server删三处死代码(make_busy_response/compact_arg/ScannedDoc两字段+extract_doc_title),warning 45→42 - AGENTS行数台账修正(mcp_server 3.3万行,calls_resolve 913) - 验证: 默认876+feature1045全过,并发smoke过 | 24 天前 | |
chore(cangjie): add production alias hygiene checks and switch plan - New cangjie-production-alias-check.sh (--status/--smoke/--full) - Stable window rules: ≤10 green, 11-50 yellow, >50 red - Production Alias Switch Plan: Phase A (docs) → Phase B (AI defaults) → Phase C (WebUI) → Phase D (cleanup) - Smoke script auto-rebuilds with cangjie feature when needed - Docs updated: deprecated bare cjgui, recommend cangjie-live-codelattice - Registry audit: 7 repos, 2 ambiguous cjgui entries, cangjie-live-codelattice recommended - All verification pass: 52/52 MCP tests, 7/7 doctor, 7/7 live MCP, self-test, dogfood | 5 个月前 | |
chore(cangjie): add production alias hygiene checks and switch plan - New cangjie-production-alias-check.sh (--status/--smoke/--full) - Stable window rules: ≤10 green, 11-50 yellow, >50 red - Production Alias Switch Plan: Phase A (docs) → Phase B (AI defaults) → Phase C (WebUI) → Phase D (cleanup) - Smoke script auto-rebuilds with cangjie feature when needed - Docs updated: deprecated bare cjgui, recommend cangjie-live-codelattice - Registry audit: 7 repos, 2 ambiguous cjgui entries, cangjie-live-codelattice recommended - All verification pass: 52/52 MCP tests, 7/7 doctor, 7/7 live MCP, self-test, dogfood | 5 个月前 | |
chore(release): prepare 0.16 beta package | 5 个月前 | |
feat(workbench): 桌面端 P1 — 项目选择器/结构树/moduleGraph 视图与多语言主题 - 新增 project-picker、structure-tree、working-set、chat-layout、 explain-style 状态模块及测试 - graph 面板接入 moduleGraph(前两级目录聚合),g6-adapter/ graph-controller/highlight 配套演进 - transport 层三实现(desktop/fake/http)同步契约 - 附 2026-08-24/25 polyglot master plan 与各 execution card、 workbench-cli 构建脚本、v3 mockup | 2 个月前 | |
fix(mcp): tighten compact payloads and review routing | 4 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
fix(mcp): stabilize installed facade job usability | 5 个月前 | |
fix(mcp): harden AI root routing and tool promotion | 5 个月前 | |
fix(mcp): expose facade digest and speed warm cache | 4 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): default to AI-friendly toolset | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
fix(workbench): P0 第二轮复审修复 — A-J 阻断项全量关闭 ## A: Chat session 真实接线 - App.tsx: snapshot 加载后通过后端 sessionCreate 创建 session(不再前端自造) - ConversationStore: 新增 replace-session/close actions;subscribe 接入 React - joinConversation: 先调后端 sessionPin 再更新本地 - sendChat: 携带必填 snapshotId + pinnedScope - ChatRequest: snapshotId 和 pinnedScope 从 optional 改为 required ## B: Production stream 生命周期 - assistant.rs: 每请求独立 RequestState;terminal exactly once - 所有错误路径通过 fail_and_cleanup 清理 active_requests - budget.consume 失败终止循环(不再 continue) - 六轮无最终答案 emit BudgetLimit terminal - desktop-transport.ts: 每请求独立 {requestId, unsubscribe, terminated, queue, waiters} - disposeRequest(requestId) 按 requestId 幂等清理;不误清理新请求 ## C: Analyzer 锁模型 - analyzer.rs: child mutex 独立于 supervisor mutex - start()/wait_and_publish() 改为 &self(不在 wait 期间持有 mutex) - request_cancel() 在运行中 kill child - analyzer_state() 立即返回状态 - AnalyzerResult 包含 published_snapshot_id ## D: 有界 QueryStore - query_store.rs: LRU + 双限制(maxSnapshots=8 + maxBytes=512MB) - pin 保护:全 pinned 场景拒绝新 load - 10 个单元测试覆盖 LRU/pin/bytes/reject/metrics/duplicate ## E: 确定性 UI 数据契约 - Dashboard: totalCalls 未知时不显示 0% 覆盖率 - Inspector: preview→full async 加载(useEffect 异步拉取) - ModelPool: useEffect 替代渲染期间调用(防无限循环) ## F: SecretStore 安全 - secret_keychain.rs: 明文 Key 不放 argv(通过环境变量 + sh 包装) - 先 delete 旧条目(幂等)再 add ## G: 可信内存基准 - webui-rss-sampler.py: 修复 PID 匹配逻辑(原 any(... for p in [p]) 遮蔽 bug) - f1-memory-benchmark.sh: 确定性 20 轮交互模拟 + 内存估算 ## H: 端到端测试 - Rust E2E: 11 个新测试(session lifecycle / validator / cache / secret / service) - TS E2E: 9 个新测试(stream lifecycle / session lifecycle / inspector race) ## I: selftest 端口检测 - workbench_check_port 命令:TCP 连接检测 Vite dev server 端口 - selftest.ts: 端口就绪后再执行(最多等 5s) ## J: 验证 - Rust: 62 gateway + 10 Tauri = 72 tests passed - TypeScript: 53 desktop tests passed (44 original + 9 E2E) - TypeScript: tsc --noEmit clean - Rust: cargo check clean (warnings only) | 2 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
fix(mcp): guard concurrent tool calls | 5 个月前 | |
feat(cpp): add Phase A legacy C++ graph support | 5 个月前 | |
fix: close Workbench P0 integration and memory gates | 2 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
chore(release): prepare 0.17 beta package | 4 个月前 | |
fix(corpus): pin JS TS corpus languages | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): add persistent analysis cache with two-layer lookup Two-layer cache (memory + disk) with fingerprint-based stale detection. Memory layer: process-local LRU (16 entries), enabled by default. Persistent layer: cross-process disk cache, opt-in via CODELATTICE_CACHE_DIR. Stale detection tracks source file mtimes (.rs/.cj/.ets/.ts/.tsx/.js/.json/.toml/.md), manifest hashes (Cargo.toml/Cargo.lock/cjpm.toml/oh-package.json5/tsconfig.json/package.json), and docs changes. Returns structured staleReasons for AI-side transparency. MCP tools updated: - cache_status: nested {memory, persistent} format with layer-specific metadata - cache_clear: accepts 'layer' param (memory/persistent/both) - All analysis tools include cacheLayer signal (memory/persistent/none) 89/89 MCP tests, 6/6 cache smoke, 22/22 dogfood pass. | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): add permission-aware root cause assistant | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(mcp): add large project insight map - New MCP tool codelattice_project_insights (v0.8): graph-based heuristic insight map for AI agents onboarding onto unfamiliar codebases - File metrics: symbolCount, edgeCount, callIn/Out, lowConfidence, diagnostics, riskScore - Symbol metrics: fanIn, fanOut, crossFileImpact, entry-like detection, riskScore - Language-specific entry point heuristics: Rust, Cangjie, ArkTS, TypeScript - Risk map with suggested review actions - Low confidence zones (file + symbol) - Read-first / review-first recommendations with reasons - Docs signals via DocScanner integration - Compact (default) and full output modes - 7 new MCP integration tests (96/96 total) - 23/23 dogfood checks, 15/15 project-insights-smoke - Explicit disclaimer: graphBased=true, compilerVerified=false | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
feat(python): add Phase A local graph support | 5 个月前 | |
feat(workbench): Project Understanding Workbench P0 (Tauri 2 desktop) CodeLattice 本地代码理解工作台 P0:事实默认可用、模型解释显式触发, 项目级/选择级 Chat 经只读工具取证,Desktop Analyzer 与 Agent MCP 进程隔离。 - apps/desktop: Tauri 2 + Vite + TypeScript + React;GraphSelection/ ConversationContext 双 store;G6 图引擎(edge click/selection、relationKey 语义身份,平行边元素 id 唯一化);确定性仪表盘;Inspector;模型池 (Ollama/OpenAI-compatible,Key 入系统钥匙串);证据型 Chat(工具循环 + 分级预算 + claim 分级 + 导航联动);WKWebView selftest 8/8 - crates/understanding-gateway: provider_http(reqwest+SSE)、validator、 cache、session、secret(Keychain)、dispatcher、graph_store(G3 选型 full immutable graph index,512MB 上限)、worker supervisor;DTO camelCase - snapshot 边身份 relationKey=sha256(source+kind+target) 由 codelattice-snapshot-gen.py 产出(redact 后重算);occurrenceKey 冻结 relation-level(G2) - 证据/基线:webui/contract-tests(relationKey 契约 + 平行边 + 重分析 确定性 + 旧 Viewer smoke);F0/F1 内存基线(Tauri 聚合比旧 Viewer 轻约 40%);G3 query-store spike;P0-C 并发隔离(P95 退化 +0.6% ≤30%) - Gate 回写:execution card §18 G0–G6 全部 PASS;未覆盖项(Windows/ WebView2、Keychain 实写、大图并发)如实记录 refs: docs/plans/2026-08-05-project-understanding-p0.md | 2 个月前 | |
chore(release): harden beta packaging and docs | 5 个月前 | |
fix(javascript): close Phase A integration gaps | 5 个月前 | |
chore(release): prepare 0.16 beta package | 5 个月前 | |
feat(mcp): add codelattice_complexity_hotspots diagnostic 新增复杂度热点诊断工具(第 50 个 MCP 工具),填补现有诊断的代码内部 复杂度维度缺口。 与 risk_hotspots 互补: - risk_hotspots 看'改这个符号影响多大'(耦合向外扩散风险) - complexity_hotspots 看'这个函数本身多难维护'(内部复杂度) v1 评分维度(基于现有 GraphView 数据,无需改提取器/schema): - 函数长度(raw span,含注释/空行):>50 行开始计分,>200 行满分 - fan-in/fan-out 耦合(简化版,复用 risk_hotspots 的 high_fan 阈值) - async/unsafe 修饰符加权 paramCount 与 cyclomaticComplexity 推迟到 v2: 实施期核查发现 GraphView node properties 不含 typeAnnotations,MCP 层 取不到 paramCount。v1 诚实砍掉该维度,summary.complexityCoverage 声明 paramCount=false,而非假装可用。 Write set(评审 P1/P2 补充): - mcp_server.rs: +handle_complexity_hotspots +compute_complexity_score (纯函数)+ 权重常量(W_LENGTH/W_FAN/W_ASYNC/W_UNSAFE)+ tools_list/ dispatch 注册 - 12 个 smoke 脚本工具数断言 49->50(精确等于 + 下限断言) - 4 处测试代码硬编码 49->50(评审未覆盖,实施期发现) - 新 fixture complexity-hotspots + 2 个单元测试 - CHANGELOG Unreleased 条目 Toolset 归属:Full-only(不进 AI/CORE 白名单,与同类诊断惯例一致) 契约版本:不动 schemaVersion(additive change,由 release 战役统一提升) 验证: - cargo test 740/740 pass(基线 738 + 2 新测试) - self-analysis top10 人工核查合理(run/walk/emit_graph 等真实大函数) - cargo fmt / git diff --check clean | 3 个月前 | |
chore(release): add codelattice packaging workflow | 5 个月前 | |
fix: close Workbench P0 integration and memory gates | 2 个月前 | |
feat(typescript): add Phase A local graph support - Separate tree-sitter-typescript feature from tree-sitter-arkts - find_typescript_project_root() ignores oh-package.json5 for pure TS - Enhanced portable-smoke fixture (4 .ts files: index, utils, math, model) - New tsx-smoke fixture for TSX parsing verification - Graph schema aligned with Rust conventions (label=classifier, kebab-case kind, SCREAMING_SNAKE_CASE edge type) - Symbol nodes now have name/sourcePath/lineStart/lineEnd in properties - Bridge format extracts names from properties (backward compatible) - MCP language feature check for TypeScript - 7 new MCP tests (cfg-gated): project_overview, symbol_search, symbol_context, query_graph, impact_preview, changed_symbols, production_assist - TypeScript real project smoke script (synthetic multi-file project) - MCP contract updated to v0.12.0 with TypeScript Phase A section - 98/98 all-features tests, 90/90 TS, 89/89 ArkTS, 83/83 default, dogfood 22/22 | 5 个月前 | |
chore(release): add codelattice packaging workflow | 5 个月前 | |
fix(webui): stabilize live mcp jobs - Runner MCP backend rewritten: _probe_mcp() for deterministic initialization with cached state (available/toolCount/ serverVersion/lastError/initializedAt). _list_mcp_tools() with force flag. _call_mcp_tool() improved subprocess handling with proper timeout. - API hardening: /api/mcp/status returns deterministic {available,toolCount,serverVersion,initializedAt,lastError, staticOnly}. /api/mcp/tools requires explicit force load (no mutual dependency with status). Job lifecycle: queued/running/succeeded/failed/cancelled with thread worker. - Live MCP smoke: 11/11 PASS (status timing fixed with sleep+probe). - Live MCP contract test (16 checks): status schema verification, tools>=37, job create+poll+succeed, result validation, 5 error paths (missing root/bad workflow/illegal tool/missing job/ delete missing), cancel, delete, 2 path leak checks. - Frontend live.js: structured result rendering per workflow (project_overview cards, symbol_search table, impact_preview risk/reasons, dead_code_candidates list+caution), raw JSON fallback. Improved status display. - Beta sanity: live MCP smoke + contract now hard-required gates. | 5 个月前 | |
feat(webui): add G6 graph engine | 5 个月前 | |
feat(workbench): Project Understanding Workbench P0 (Tauri 2 desktop) CodeLattice 本地代码理解工作台 P0:事实默认可用、模型解释显式触发, 项目级/选择级 Chat 经只读工具取证,Desktop Analyzer 与 Agent MCP 进程隔离。 - apps/desktop: Tauri 2 + Vite + TypeScript + React;GraphSelection/ ConversationContext 双 store;G6 图引擎(edge click/selection、relationKey 语义身份,平行边元素 id 唯一化);确定性仪表盘;Inspector;模型池 (Ollama/OpenAI-compatible,Key 入系统钥匙串);证据型 Chat(工具循环 + 分级预算 + claim 分级 + 导航联动);WKWebView selftest 8/8 - crates/understanding-gateway: provider_http(reqwest+SSE)、validator、 cache、session、secret(Keychain)、dispatcher、graph_store(G3 选型 full immutable graph index,512MB 上限)、worker supervisor;DTO camelCase - snapshot 边身份 relationKey=sha256(source+kind+target) 由 codelattice-snapshot-gen.py 产出(redact 后重算);occurrenceKey 冻结 relation-level(G2) - 证据/基线:webui/contract-tests(relationKey 契约 + 平行边 + 重分析 确定性 + 旧 Viewer smoke);F0/F1 内存基线(Tauri 聚合比旧 Viewer 轻约 40%);G3 query-store spike;P0-C 并发隔离(P95 退化 +0.6% ≤30%) - Gate 回写:execution card §18 G0–G6 全部 PASS;未覆盖项(Windows/ WebView2、Keychain 实写、大图并发)如实记录 refs: docs/plans/2026-08-05-project-understanding-p0.md | 2 个月前 | |
fix: close Workbench P0 integration and memory gates | 2 个月前 | |
feat(webui): unify premium workbench visual system | 5 个月前 | |
chore(release): prepare 0.16 beta package | 5 个月前 | |
feat(webui): add live mcp job mode - MCP protocol: JSON-RPC stdio calling codelattice binary via subprocess.Popen. Initialize → tools/list → tools/call flow. 37 tools loaded and validated. - Runner API: GET /api/mcp/status (availability + toolCount), GET /api/mcp/tools (full tool list with schemas), POST /api/mcp/jobs (create with 6 workflow mappings: project_overview/symbol_search/impact_preview/project_insights/ dead_code_candidates/release_check + custom_tool with codelattice_ prefix requirement), GET /api/mcp/jobs (list with status/workflow/profileId filter), GET /api/mcp/job/<id> (detail with result/error/logs), POST /api/mcp/job/<id>/cancel, DELETE /api/mcp/job/<id>. - Job lifecycle: queued → running → succeeded/failed/cancelled. Thread worker execution, 120s timeout, result saved to .codelattice-webui/jobs/, path redaction when redactRoot=true. - Frontend: live.js auto-detects MCP status, workflow selector + Run button, job list with status badges + 5s poll interval, result viewer (JSON formatted), cancel/delete operations, report integration (Include in Report). - Smoke: 10 checks (MCP status, 37 tools list, project_overview job creation+success, list jobs, error handling: bad workflow, missing root, cancel, delete). 61 viewer checks. Hard boundaries: 127.0.0.1, subprocess.run only, no shell=True, no external deps, static-only analysis, no project code execution. | 5 个月前 | |
feat(workbench): Project Understanding Workbench P0 (Tauri 2 desktop) CodeLattice 本地代码理解工作台 P0:事实默认可用、模型解释显式触发, 项目级/选择级 Chat 经只读工具取证,Desktop Analyzer 与 Agent MCP 进程隔离。 - apps/desktop: Tauri 2 + Vite + TypeScript + React;GraphSelection/ ConversationContext 双 store;G6 图引擎(edge click/selection、relationKey 语义身份,平行边元素 id 唯一化);确定性仪表盘;Inspector;模型池 (Ollama/OpenAI-compatible,Key 入系统钥匙串);证据型 Chat(工具循环 + 分级预算 + claim 分级 + 导航联动);WKWebView selftest 8/8 - crates/understanding-gateway: provider_http(reqwest+SSE)、validator、 cache、session、secret(Keychain)、dispatcher、graph_store(G3 选型 full immutable graph index,512MB 上限)、worker supervisor;DTO camelCase - snapshot 边身份 relationKey=sha256(source+kind+target) 由 codelattice-snapshot-gen.py 产出(redact 后重算);occurrenceKey 冻结 relation-level(G2) - 证据/基线:webui/contract-tests(relationKey 契约 + 平行边 + 重分析 确定性 + 旧 Viewer smoke);F0/F1 内存基线(Tauri 聚合比旧 Viewer 轻约 40%);G3 query-store spike;P0-C 并发隔离(P95 退化 +0.6% ≤30%) - Gate 回写:execution card §18 G0–G6 全部 PASS;未覆盖项(Windows/ WebView2、Keychain 实写、大图并发)如实记录 refs: docs/plans/2026-08-05-project-understanding-p0.md | 2 个月前 | |
fix: close Workbench P0 integration and memory gates | 2 个月前 | |
fix(webui): make project picker choose folders | 5 个月前 | |
feat(webui): surface automation graph review | 5 个月前 | |
chore(release): prepare 0.16 beta package | 5 个月前 | |
feat(webui): add local runner and snapshot library - Local Runner (scripts/webui-runner.py): Python stdlib HTTP server (127.0.0.1 only), serves webui/snapshot-viewer/ + REST API: GET /api/health, GET /api/snapshots, GET /api/snapshot/<id>, POST /api/generate-snapshot, DELETE /api/snapshot/<id>. Calls webui-snapshot.sh via subprocess (120s timeout). Snapshot library in .codelattice-webui/snapshots/ with index.json. - Runner wrapper (scripts/webui-runner.sh): port/config/open-browser. - Frontend client (runner.js): auto-detect runner mode via health check, project root input + language select + Generate button, Snapshot Library panel (Load/Compare/+Timeline). Graceful fallback to static file mode when runner not detected. - Runner smoke (scripts/webui-runner-smoke.sh): 6 checks — health, generate Rust fixture, list snapshots, get detail, validate schema/data/no-path-leak, clean stop. - Viewer smoke upgraded to 46 checks (Phase D: runner.js + 8 runner functions + runner-panel HTML). - .gitignore: added .codelattice-webui/ for runner output. Security: binds 127.0.0.1 only. No target project writes. No project code/test/build execution. All output stored in managed library directory. | 5 个月前 | |
feat(cli): 退役 Python snapshot-gen,webui 快照改由 core 生成 让 webui.snapshot.v1 只从 CLI 转换器产出,去掉 scripts/codelattice-snapshot-gen.py 双实现漂移;契约测试与 --redact-root fixture 路径保持等价。 - webui_snapshot.rs 补齐 Phase A enriched 全量段:quality(qualityGates 实算 overall/门计数)、explore(500 符号/200 文件)、cleanup/releaseReview、 workflowPresets 10 预设、insights.reviewFirst;summary 增 moduleCount - analyze 加 --redact-root:全局路径脱敏 + relationKey 按脱敏后端点重算, moduleGraph 后置于脱敏归并;其他 format 下使用显式报错 - 修正三处 Python 旧缺陷而非照搬:cleanup call_targets 恒空(候选数恒等于 符号总数)、passedGateCount 读 status 字段恒 0、diagnosticsSummary 恒 null - webui-snapshot.sh 改为 CLI 瘦包装;smoke 去掉 gen.py 依赖;契约测试模块图 oracle 改同规则 JS 内联;7 份 fixtures 用新路径重生成;删 codelattice-snapshot-gen.py 与 test_module_graph.py(覆盖移入 Rust 单测) - 等价性验证:同源 analyze JSON 逐字段 diff 23 处全可解释;contract-tests 22/22、smoke 8/8、webui_snapshot 单测 22/22 | 1 个月前 | |
feat(cli): 退役 Python snapshot-gen,webui 快照改由 core 生成 让 webui.snapshot.v1 只从 CLI 转换器产出,去掉 scripts/codelattice-snapshot-gen.py 双实现漂移;契约测试与 --redact-root fixture 路径保持等价。 - webui_snapshot.rs 补齐 Phase A enriched 全量段:quality(qualityGates 实算 overall/门计数)、explore(500 符号/200 文件)、cleanup/releaseReview、 workflowPresets 10 预设、insights.reviewFirst;summary 增 moduleCount - analyze 加 --redact-root:全局路径脱敏 + relationKey 按脱敏后端点重算, moduleGraph 后置于脱敏归并;其他 format 下使用显式报错 - 修正三处 Python 旧缺陷而非照搬:cleanup call_targets 恒空(候选数恒等于 符号总数)、passedGateCount 读 status 字段恒 0、diagnosticsSummary 恒 null - webui-snapshot.sh 改为 CLI 瘦包装;smoke 去掉 gen.py 依赖;契约测试模块图 oracle 改同规则 JS 内联;7 份 fixtures 用新路径重生成;删 codelattice-snapshot-gen.py 与 test_module_graph.py(覆盖移入 Rust 单测) - 等价性验证:同源 analyze JSON 逐字段 diff 23 处全可解释;contract-tests 22/22、smoke 8/8、webui_snapshot 单测 22/22 | 1 个月前 | |
fix: close Workbench P0 integration and memory gates | 2 个月前 | |
feat(mcp): support ask follow-up from job details | 5 个月前 | |
feat(workspace): auto-enter workspace mode for root analysis | 5 个月前 | |
feat(workspace): add cross-project graph intelligence | 5 个月前 | |
feat(workspace): add cross-project impact analysis Cross-project impact analysis answers 'if I change X, what else is affected?' based on workspace graph BFS traversal. Backend (+580 lines in webui-runner.py): - GET/POST /api/workspace/impact API - 7-level target resolution: nodeId > projectId > snapshotId > path > label > fuzzy > unknown - BFS traversal on workspace graph edges (downstream/upstream/both) - Risk scoring: critical/high/medium/low/unknown - Structured output: target, summary, affectedProjects, affectedAssets, unsupportedBoundaries, paths, riskReasons, reviewChecklist, cautions Frontend: - Impact panel with summary cards, affected tables, risk reasons, checklist - 'Copy AI Summary' button for AI workflow integration - 16 i18n keys (zh + en) - Report export with impact hints and result sections Insights integration: - crossProjectImpactHints field (highFanoutProjects, sharedScripts, sharedConfigs, suggestedImpactTargets) Verification: - 21-check smoke test (webui-workspace-impact-smoke.sh) - All existing smoke tests pass (viewer 144, runner 8, workspace 9, graph 13, insights 7, snapshot 7, i18n 40, browser 16) - cargo fmt clean, cargo test 105/105, JS syntax clean | 5 个月前 | |
feat(webui): add workspace insight dashboard - Runner: add GET/POST /api/workspace/insights with health scoring, risk levels, read/review/cleanup first recommendations, and cross-project signals - Scoring: 100 base, deduct for failed projects (-35), quality gate failures (-8/ea), automation risks, low edge density, missing graph, adjacent unsupported modules - Risk levels: low (85-100), medium (65-84), high (1-64) - WebUI: insight dashboard with health score card, risk badge, project score table, recommendation lists (Read/Review/Cleanup First), unsupported clusters - Report: Workspace Review Report mode with workspace overview, project scores, recommendation sections, and static-only cautions - Insights auto-load after workspace analyze and when viewing historical runs - Smoke: webui-workspace-insights-smoke.sh (7 tests) - i18n: 18 new zh/en keys for insight labels All insights are static-only heuristic; no project code executed. | 5 个月前 | |
feat(workspace): auto-enter workspace mode for root analysis | 5 个月前 |