Skip to content

Releases: WingedFin1251/cpp-expert

v1.6.1

Choose a tag to compare

@WingedFin1251 WingedFin1251 released this 15 Jul 09:24

新增

  • 项目类型检测扩展:支持 StdPeriph 库(FWLIB/CORE)、CMSIS core_cm4.h、Keil 经典结构
  • 构建系统检测:CMake/Makefile/Keil/IAR 自动识别,输出到 report.meta.build_system
  • 新增 --project-type embedded|app 手动覆盖参数
  • 新增 meta.skipped_modules 动态数组,AI 可读取被跳过的审计模块
  • 新增 meta.build_info 字段,包含构建系统详细信息
  • --exclude 参数通过 PREAUDIT_EXCLUDE_DIRS 环境变量传递至子脚本
  • SKILL.md/AGENTS.md:新增构建系统与审计范围报告区块
  • AGENTS.md:新增 Skipped Module Rules(跳过不等于通过)

修复

  • 修复 build_audit 日志显示跳过但实际仍执行的问题
  • 修复 skipped_modules 硬编码为动态数组
  • 修复 --project-type 参数吞噬下一个参数的问题
  • 修复 FWLIB/CORE 目录大小写敏感(Linux/macOS 兼容)
  • 修复 Keil/IAR 非 CMake 项目孤儿文件误报

改进

  • 控制台日志:输出项目类型、构建系统、跳过的模块

1.6

1.6

Choose a tag to compare

@WingedFin1251 WingedFin1251 released this 14 Jul 11:10

架构升级

  • 项目类型自动路由(嵌入式 vs 应用层),run-preaudit.js 根据 Drivers/CMakeLists 自动切换脚本集
  • 全场景覆盖:从"嵌入式专用"升级为"全场景 C/C++ 审计平台"

新增(3 个脚本)

  • scripts/build_audit.js:CMake 构建系统审计(B30 孤儿文件检测),支持变量展开、list(APPEND)、aux_source_directory
  • scripts/syscall_audit.js:POSIX 系统调用审计(B31-B33, B36-B37),涵盖 fwrite/putenv/fork/dlopen 等
  • scripts/api_style_audit.js:跨文件 API 一致性审计(B34 宏参数不一致/b35 废弃 API)
  • AGENTS.md:新增 build_orphans/syscall_issues/api_mismatches 消费规则表
  • SKILL.md Bundled Resources:列出全部 8 个脚本

修复

  • 修复 collectFiles 递归参数失效导致子目录漏扫
  • 修复 CMake 变量展开(嵌套 ${}、list(APPEND)、跨文件继承)
  • 修复 CMake 字符串内 #) 干扰注释剥离
  • 修复 aux_source_directory 变量展开和引号路径
  • 修复 stripped 变量作用域崩溃(ReferenceError)
  • 修复 B31 hasAssignment 括号配平回归,改用赋值正则
  • 修复 B31 控制流上下文污染(if 块外误判)
  • 修复 B32 WNOHANG 跨多行漏报
  • 修复 B33 const_cast 独立分支误报非 putenv 场景
  • 修复 B37 SIGCHLD 精确匹配 + sigaction + 批量收割豁免
  • 修复 B34 宏定义行跳过(含空格 # define、函数指针、跨行 (*
  • 修复 B35 废弃 API 排除 C++./->/:: 前缀和跨行宏定义
  • 修复 Windows 路径大小写敏感(toLowerCase)
  • 修复 run-preaudit.js 去重、arg 校验、状态硬编码
  • 修复 api_style_audit.js 单引号正则结束符、空参宏、嵌套括号

1.5

1.5

Choose a tag to compare

@WingedFin1251 WingedFin1251 released this 13 Jul 09:00

新增

  • 规则路线:AGENTS.md §5.7 魔数检测(B18)
  • 规则路线:AGENTS.md §6.1.1 文件作用域 static 强制(B15)
  • 脚本路线:scripts/style_audit.js(B16 哨兵赋值 / B17 EXTI 文件归属 / B15 全局变量)
  • AGENTS.md JSON 使用规则:新增 style_issues 字段消费映射表
  • AGENTS.md TOC:新增 6.1.1 和 Attention Budget Guide 条目

修复(style_audit.js 经 7 轮审查)

  • 修复块注释跨行导致行号错位(保留换行符剥离)
  • 修复 braceDepth 被字符串/宏干扰(改用剥离后计数)
  • 修复 EXTI 正则误报 IRQHandler(精确匹配 Init 函数)
  • 修复 EXTI 正则不支持 EXTI9_5_IRQn 和跨行调用
  • 修复 NVIC 正则误报 SysTick(限定 EXTI*_IRQn)
  • 修复 B16 哨兵缺上下文过滤(±10 行+sort 关键词)
  • 修复 B15 检测使用 rawLine 导致注释误报(改用 cleanLine)
  • 修复 B15 正则缺 [ 导致数组漏报(char buf[256])
  • 修复 B15 正则缺 * 导致指针漏报(char* buf)
  • 修复 B15 正则缺 const/volatile/unsigned 前缀
  • 修复 B15 正则缺逗号导致 int i,j,k 漏报(多变量提取)
  • 修复 B15 类型列表缺 u8/u16/u32/bool
  • 修复 Windows 目录名大小写敏感(toLowerCase)

1.4

1.4

Choose a tag to compare

@WingedFin1251 WingedFin1251 released this 13 Jul 07:13

新增

  • 架构:三阶段流水线(Stage 0 预处理 → Stage 1 微观 → Stage 2 宏观)
  • scripts/pin_audit.js:GPIO 引脚冲突矩阵扫描(支持 HAL GPIO_PIN_X 和 SPL GPIO_Pin_X
  • scripts/ctrl_chain_check.js:控制链调用图分析(支持 ISR + FreeRTOS xTaskCreate 入口检测,函数指针逃逸检测)
  • scripts/stack_depth_audit.js:ISR 栈深度估算(支持 Cortex-M 嵌套中断乘数)
  • scripts/run-preaudit.js:统一调度器,输出 unified-audit-report.json(93% Token 缩减)
  • AGENTS.md §1.2:统一审计报告使用规则(JSON 字段→报告动作映射表)
  • SKILL.md:降级模式(Node.js 不可用时自动转人工引导)
  • AGENTS.md 目录:新增 Attention Budget Guide 和 §5.7 C Semantics 条目
  • SKILL.md Bundled Resources:列出 4 个新 Node.js 脚本
  • SKILL.md 触发词:追加 GPIO、ISR、RTOS、FreeRTOS、pre-audit 等关键词

修复

  • 修复 pin_audit.js 端口提取顺序错误(结构体名→向下匹配 GPIO_Init 调用)
  • 修复 pin_audit.js GPIO_PIN_9 vs GPIO_Pin_9 大小写兼容
  • 修复 pin_audit.js .Pin vs .GPIO_Pin 双字段名支持
  • 修复 ctrl_chain_check.js RTOS 任务入口漏报(xTaskCreate 参数提取)
  • 修复 ctrl_chain_check.js (?:[\w\s\*]*?) 允许零前缀函数修饰符
  • 修复 ctrl_chain_check.js == 误判为函数指针赋值
  • 修复 ctrl_chain_check.js 函数指针参数传递检测(HAL_RegisterCallback(&fn)
  • 修复 stack_depth_audit.js uint32_t 双重计数(合并 typeMap)
  • 修复 stack_depth_audit.js _IRQn 枚举误匹配
  • 修复 run-preaudit.js 多目录忽略(--include-dir A --include-dir B
  • 修复 run-preaudit.js Promise.all→顺序执行(设计一致性)
  • 修复 run-preaudit.js execFile(process.execPath) 跨平台调用
  • 修复三大脚本注释/字符串中 } 干扰大括号计数
  • 修复 SKILL.md 重复编号 7.
  • 修复 SKILL.md 降级模式硬编码 line 42
  • 修复 AGENTS.md 目录缺失条目
  • 修复 AGENTS.md 缺少 JSON 使用规则