Releases: wang-jie-git/moat
Release list
v1.4.0 — AI 强制适配器 + 记忆系统 + Dashboard 增强
🚀 moat v1.4.0
🔌 AI 工具强制适配器
- 新增 4 个 AI 工具适配器(Codex CLI / Agents / OpenHarness / Windsurf)
- 统一 SKILL.md 模板系统,所有工具看到相同铁律
- git hook 包装器,拦截
--no-verify绕过 - AI 启动检测脚本,自动检查项目配置
🧠 记忆系统增强
moat memory sync命令,生成.moat/ai_context.md供 AI 自动读取- 记忆同步到 AI 工具,进入项目时自动看到红线/踩坑/模版
- 模板找回功能(修复
moat init预置模板丢失问题)
📊 Dashboard 增强
- 评分门禁:设置最低通过分数,验收结果自动检查
- 生成规则模板:一键生成
architect.yml - 增量/完整模式切换:快速增量 vs 完整扫描
- 自动检测 PyPI 版本更新 + 红点提示 + 一键升级
- 修复:统计卡片重复、showModal 未定义、数据过长截断
🔧 修复
_should_inject遗漏moat_sensor_async导致重复注入- 记忆系统模板/技能详情点击打不开(encodeURIComponent)
- 统计卡片重复显示
- 弹窗没有关闭按钮
📦 安装
pip install moat-aiv1.3.0 — 异步安全 + preflight + Pain Score 扩展
🎯 核心主题:防止 async/sync 边界事故 — 消防水带检测 + 调用方分析 + preflight 检查
✨ 新增功能
- 消防水带模式检测(
AsyncSafetyCheck):检测asyncio.create_task返回值被丢弃、同步函数调异步函数不 await、异步函数返回值被丢弃 3 种反模式。 moat preflight命令:改代码前安全检查,自动分析变更函数、查找调用方、评估风险、生成检查清单。moat check自动 AST 影响域分析:每次检查后自动检测 async/sync 签名变更,列出所有调用方。- Pain Score 变更风险维度:新增 async/sync 签名变更(+40)、消防水带模式(+35)、删除函数(+30)、高调用方影响(+20)4 个权重。
- preflight 记忆注入:自动显示项目红线 + 历史踩坑记录。
🔬 技术改进
- AST diff 增强:新增
async_signature变更类型,grep 自动查找调用方,风险评估(critical/high/medium/low),修复建议生成。 - macOS 路径修复:解决
/tmpvs/private/tmp符号链接导致的路径不匹配问题。
✅ 测试覆盖
- 新增 11 个测试覆盖:消防水带检测、async/sync 边界检测、调用方分析、风险评估、完整事故场景模拟。
- 总测试数:958 passed, 11 skipped。
v1.1.10 — ImportCompletenessCheck target_files 修复 + 工作流集成
🐛 Bug 修复
- ImportCompletenessCheck 不再无视
target_files配置。增量模式只扫指定文件,避免 84,723 个 .venv.prod/*.py 全量扫描挂死。
🔒 安全增强
moat check --scan-ai: 扫描 AI 工具配置目录(~/.claude/~/.codex/~/.grok/)moat audit --permissions: 权限审计 + 瘦身建议- SSH 密钥认证部署,替换 sshpass 明文密码
✨ 新功能
moat ci: 自动生成 GitHub Action / GitLab CI workflowmoat report --format pdf: 合规 PDF 报告moat notify --webhook: Slack/飞书/Discord 通知推送
📝 文档
- SECURITY.md(Zero-Telemetry + Transparent Audit)
- README Security Manifesto +
--scan-ai+--permissions
v1.1.9 — AI 工具权限审计
v1.1.9 (2026-07-14) — AI 工具权限审计 🔐
里程碑: 从"扫描"到"治理"——AI 工具权限过载检测
新增
- 🔐
moat audit --permissions— AI 工具权限审计- 扫描 Claude Code 156 个已授权命令,按风险分类
- 检测闲置权限(91% 闲置率)
- 生成权限瘦身建议
- 明文密码检测(sshpass -p)
- API Key 泄露检测
- 安全域名白名单(避免误报)
实测本机结果
| 级别 | 数量 | 示例 |
|---|---|---|
| 🔴 CRITICAL | 4 | sshpass 明文密码、rm -rf |
| 🟡 HIGH | 4 | tar czf、scp、curl 未限制 |
| 🟢 LOW | 59 | 常规开发命令 |
| ℹ️ INFO | 89 | 未分类(需自行评估) |
安装
pip install moat-ai && moat audit --permissionsv1.1.8 — AI 工具系统配置审计 (moat check --scan-ai)
v1.1.8 (2026-07-14) — AI 工具系统配置审计 🕵️
里程碑: 从"项目扫描"到"系统级 AI 工具行为审计"
新增
- 🕵️
moat check --scan-ai— 扫描 AI 工具系统配置目录- 检测 ~/.claude/ 遥测数据、会话日志、敏感命令授权
- 检测 ~/.grok/(已被曝偷数据)是否存在
- 检测 ~/.codex/ 数据量和暴露风险
- 检测 settings.local.json 中的明文密码和危险命令
实测本机结果
| 发现 | 级别 | 详情 |
|---|---|---|
| Codex CLI 数据 | 🟡 1.3 GB | 所有会话记录和缓存 |
| Claude 敏感命令 | 🟡 23 个 | 含 sshpass 明文密码、scp、tar czf、curl、rm -rf |
| Claude 遥测 | 🟡 302 KB | 24 个 telemetry 文件 |
| Claude 会话历史 | ℹ️ 421 KB | 未加密的完整对话记录 |
安装
pip install moat-ai && moat check --scan-ai
v1.1.7 — CI/CD 集成 + PDF 报告 + 通知推送
v1.1.7 (2026-07-14) — CI/CD 集成 + PDF 报告 + 通知推送 ⚡
里程碑: 从"本地工具"到"团队协作"——CI/CD 集成体系
新增
- ⚡
moat ci— 一行命令生成 GitHub Actions / GitLab CI 工作流moat ci --platform github→ 生成.github/workflows/moat.yml- 包含:快速检查 + 泄露检测 + 架构验收 + PR Comment
- 零额外配置,Moat 纯本地运行无需 API Key
- 🔔
moat notify— 发送检查结果到 Slack / 飞书 / Discord- 自动检测 Webhook 平台(Slack Block Kit / 飞书卡片 / Discord Embed)
- 支持
MOAT_WEBHOOK_URL环境变量 - 门禁告警:
--fail-on-score 60低于阈值自动通知
- 📄
moat report --format pdf— 合规报告导出- 企业级 PDF(标题、摘要、错误列表、颜色分级)
- 可选依赖:
pip install "moat-ai[pdf]"
更新
- README 新增 CI/CD 集成章节
- pyproject.toml 新增
pdf和ci可选依赖组 - 参考 workflow:
.github/workflows/moat-pr-check.yml
安装
pip install moat-ai
v1.1.6 — Fix .venv.prod virtual env detection
v1.1.6 (2026-07-14)
🐛 Bug Fix: Virtual Environment Detection
根因: Moat 的 _should_skip 使用精确匹配 ".venv" 跳过虚拟环境目录,导致 .venv.prod、.venv.dev 等变体被扫描,在第三方依赖包中误报 IMPORT-MISSING-001。
修复:
- 基类
_should_skip改为part.startswith(".venv")前缀匹配 - 同步修复全部 11 个 checks 模块中的跳过逻辑
- verification operators 的
DEFAULT_EXCLUDE_DIRS新增.venv.prod等变体
📦 其他改动
- 仓库根目录清理:50+ 历史报告归档到
docs/archive/ - README 升级:Killer 对比表 + 三大差异化能力 + Diff-Aware / Layer-Enforcer
- GitHub Topics 新增 14 个搜索标签
- Obsidian 技术文档清理(8→2 个文件,47KB→10KB)
✅ 验证
pip install moat-ai && moat accept— 全流程通过- One 项目 4160 Python 文件全量扫描 34 秒
- Diff 增量模式 2 秒
v1.1.5 — moat accept: 增量验收 + 分层执行者
v1.1.5 改进
新增
moat accept --diff— 增量验收模式(仅扫描变更文件,2秒出结果)- GIT_BASELINE 算子从人工核查升级为自动检查(7/8 自动通过)
- README 三大差异化点文档
修复
- framework_usage 算子误报率降低 95%(41条 → 2条)
- PyYAML 缺失时静默 fallback
- 首次运行无
architect.yml时友好提示
依赖变更
- 新增依赖:tree-sitter(代码树解析)
pip install moat-ai==1.1.5
moat accept --diffv1.1.4 — moat accept: 架构验收 8 步法
🏗 moat accept — 架构验收 8 步法
Moat 从『查 Bug 的工具』进化为『制定游戏规则的裁判』。
新增功能
moat accept— 配置驱动的架构验收 8 步法- 规则注册表 (architect.yml) — YAML 驱动,不写死每个规则类
- 复用 6 个 verification operator
- 半自动化设计 + 门禁模式
- Markdown/JSON 报告输出
详见 CHANGELOG.md
v1.1.3 — ImportCompletenessChecker 导入完备性检查器
CHANGELOG
所有 Moat 项目的重要变更都会记录在此文件中。
格式基于 Keep a Changelog,
并且本项目遵循 语义化。
[1.1.3] - 2026-07-13
🎯 核心主题:ImportCompletenessChecker — 消灭"函数存在但未导入"类 Bug
基于 One 项目 WebSocket 导入 Bug 的真实教训(_build_system_prompt 缺失导入导致运行时崩溃),新增 ImportCompletenessChecker 算子,用 AST 静态分析检测调用链完整性。
✅ 新增功能
ImportCompletenessChecker(核心)
问题:Moat 之前只检查模块能否导入、函数是否存在,但不检查"模块 A 调用了函数 B,但没导入 B"
- ❌
_build_system_prompt在ws_full_handler.py中被调用但未导入 → 运行时崩溃 - ❌ 静态分析的"盲区":函数存在 ≠ 调用路径完整
方案:基于 Python AST 的导入完备性检查器,按需扫描策略
- ✅ 扫描文件中的所有
ast.Call节点(函数调用点) - ✅ 验证每个调用名是否在当前文件的 import 列表中
- ✅ 内置函数豁免(70+ 个 Python 内置函数)
- ✅
self.xxx/cls.xxx方法调用豁免 - ✅ 同文件定义函数豁免
- ✅
for循环解包变量豁免(for a, b in ...) - ✅ 赋值上下文变量豁免
- ✅
fail_open装饰器:单个文件解析失败不阻塞全量检查
文件:moat/checks/import_completeness.py(320 行)
性能优化
- ✅ 跳过 >500KB 超大文件
- ✅ 跳过 AST 节点 < 200 的"单体文件"
- ✅ QuickCheck 避免双重初始化
- ✅ 在 moat 自己仓库上跑零误报(扫描 168 个 py 文件,0 errors/0 warnings)
跨文件引用提示
- ✅ 对未解析的调用名,搜索项目内同名函数定义位置
- ✅ 报错中输出
→ 建议:在 file.py:line 有定义 def foo()提示
✅ 工程改进
开发者体验
- ✅
Makefile—make test/make check/make clean/make dev - ✅
pyproject.toml— 新增[dev]可选依赖(pytest/pytest-cov/build/twine) - ✅
.envrc—unset PYTHONPATH消除 SRE Module Mismatch
Bug 修复
- ✅
--diff模式KeyError: 'callers'→ 全部改用.get()防御性取值 - ✅
test_diff_bugfix.py硬编码 One 项目路径 → 改为--project . - ✅
__init__.py导出不完整 →__all__从 9 补全到 23 模块
🧪 测试
- ✅ 1009 passed, 2 skipped(+1 个新测试
test_import_completeness_checker.py) - ✅ 快速模式(diff):3.71s
- ✅ 完整模式(全量):4.73s
📚 文档
- ✅
docs/OPTIMIZATION_PLAN.md— 完整优化方案(ImportCompletenessChecker + 调用链测试 + 测试模式拆分)
[1.1.2] - 2026-07-12
🎯 核心主题:Moat Immune 修复 + 知识资产库建立
基于 One 项目 Bug 检测战术指导,修复核心 Bug 并建立完整的知识资产体系。
✅ Bug 修复
Bug 1: Moat Immune ThinkingBlock AttributeError(核心功能)
问题:调用 Claude API 时,如果响应包含 ThinkingBlock(扩展思维),会抛出 AttributeError: 'ThinkingBlock' object has no attribute 'text'
- ❌ Moat Immune 的 AI 测试生成功能完全失效
- ❌ 用户无法使用
moat immune unit命令
修复:实现三层防护机制
- ✅ 第一层:
isinstance检查(最可靠) - ✅ 第二层:
hasattr+try/except(兼容旧版本) - ✅ 第三层:
hasattr(content_block, 'thinking')(兜底)
文件:moat/immune/unit/generator.py:22-68
🧪 测试增强
新增测试覆盖(+42 个测试)
1. Moat Immune Bug 修复测试
tests/test_thinking_block_fix.py(6 个测试)tests/test_moat_immune_regression.py(7 个回归测试)
2. 动态导入测试
tests/test_dynamic_import.py(11 个测试)- 覆盖:可选依赖降级、条件导入、平台差异、延迟导入
3. 环境依赖测试
tests/test_environment_dependency.py(18 个测试)- 覆盖:目录创建、配置文件、环境变量、数据库初始化
测试结果:40 passed, 2 skipped ✅
📚 知识资产库
建立 .moat/insights/ 知识库
防御模式清单:
DEFENSE_PATTERNS.md- 知识库索引和使用指南README.md- 项目免疫抗体建立指南
Bug 模式库:
bug_patterns/sql_dynamic_concatenation.md- SQL 动态拼接模式bug_patterns/thinking_block_attribute_error.md- ThinkingBlock 处理
修复策略库:
fix_strategies/whitelist_validation.md- 白名单验证策略(SQL/路径/枚举/HTTP 方法)
最佳实践库:
best_practices/type_hint_priority.md- 类型提示优先策略
防御模式文档:
patterns/sql_injection_pattern.md- SQL 注入防御模式(正例/反例对比)
📚 文档更新
战术文档:
docs/fixes/MOAT_IMMUNE_THINKING_BLOCK_FIX.md- Bug 修复报告docs/guides/MOAT_OPTIMIZATION_FROM_ONE.md- One 项目优化建议docs/guides/MOAT_OPTIMIZATION_IMPLEMENTATION_PLAN.md- 实施计划
Open Source Readiness
Branding & Community
- ⚡
moat check输出尾部添加⚡ Powered by One — https://one.cloudkey.top - 🌐 README 添加英文头部描述,支持双语
- 🏷️ GitHub topics + description 更新为中英双语
- ✅ License 统一为 Apache 2.0(README/PR模板/LICENSE 文件一致)
- ✅ Release v1.1.2 发布
One-Prime 工作流集成
- ✅ pre-commit hook 修复 PYTHONPATH 兼容问题
- ✅ 周期审计 cron: moat-daily-audit(每天 2:00)
- ✅ CI 门禁: Moat Gate Workflow(one-cloudkey)
- ✅ 知识图谱持久化
[1.1.0] - 2026-07-12
🎯 核心主题:守门员规则 Bug 修复
修复了 2 个关键 Bug,让守门员规则从"几乎失效"到"正常工作"。
✅ Bug 修复
Bug 1: QuickCheck 文件检测缺陷(严重)
问题:_get_changed_files() 只使用 git diff,只能检测未暂存的文件
- ❌ 无法检测
git add后已暂存的文件 - ❌ 守门员规则(SECRETS-001、SQL-002、DEPS-001、UNUSED-001、API-002)几乎无法工作
- ❌ 用户感知不到 Moat 在工作
修复:同时检测已暂存和未暂存的文件
- ✅
git diff --cached(已暂存的文件) - ✅
git diff(未暂存的文件) - ✅ 去重处理
影响:
- ✅ 现在能检测到所有修改的文件
- ✅ 守门员规则可以正常工作
- ✅ 用户能感知到 Moat 的防护
文件:moat/checks/quick_check.py:58-86
Bug 2: Gatekeeper 参数验证崩溃
问题:moat gatekeeper check 不带 --file 参数时崩溃
- ❌
args.file为None - ❌
Path(None)抛出 TypeError - ❌ 用户体验差
修复:添加参数验证
- ✅ 检查
args.file是否为None - ✅ 提供友好的错误提示
- ✅ 为
args.project提供默认值(当前目录)
影响:
- ✅ 提供清晰的错误提示
- ✅ 不再崩溃
- ✅ 更好的用户体验
文件:moat/gatekeeper/cli.py:60-68
✅ 验证结果
✅ Bug 1(文件检测):已修复并验证
✅ Bug 2(参数检查):已修复
✅ SQL 注入检测(SQL-002):工作正常
✅ 硬编码密钥检测(SECRETS-001):工作正常
✅ 文件检测(git diff --cached):工作正常
✅ 参数验证(gatekeeper check):工作正常
📚 文档更新
README.md:
- ✅ 添加过滤规则说明
- ✅ 添加后台持久化运行说明(nohup/screen/tmux)
- ✅ 添加自动运行配置说明(check_on_commit/auto_monitor/auto_check_on_save)
- ✅ 添加 VS Code/Cursor 编辑器集成说明
[1.0.9] - 2026-07-11
🎯 核心主题:测试覆盖率优化 + README 焕新
在 v1.0.8 "精准拦截 + 性能飞跃"的基础上,v1.0.9 重点优化测试覆盖率和文档质量。
✅ 测试覆盖率优化
SECRETS-001 硬编码密钥检测器 — 100% 通过率 (16/16)
修复的关键问题:
-
占位符检测增强
- 添加
_HERE$模式,识别YOUR_API_KEY_HERE等格式 - 文件:
moat/checks/secrets.py:126
- 添加
-
删除重复方法
- 删除重复的
_find_code_files()定义(第 176-182 行) - 修复 Python 方法覆盖导致的文件扫描遗漏问题
- 删除重复的
-
完善跳过逻辑
- 在
_check_file()开始时添加_should_skip()检查 - 防止应该跳过的示例文件被检查
- 在
UNUSED-001 未使用导出检测器 — 88.9% 通过率 (8/9)
- Python 检测:100% 通过
- Go 检测:100% 通过
- TypeScript 检测:持续优化中
📖 README 焕新
首页新增 "Why Moat?" 对比表格:
| 特性 | 其他 Lint 工具 | Moat |
|---|---|---|
| 架构守护 | ❌ | ✅ (Real-time Gatekeeper) |
| 安全注入拦截 | ❌ (高噪音) | ✅ (零误报, 处方级修复) |
| 性能开销 | 高 | < 0.2s (秒级感知) |
| AI 上下文集成 | ❌ | ✅ (MCP / Claude Code Hook) |
| 硬编码密钥检测 | ❌ | ✅ (SECRETS-001, 10+ 种模式) |
| 依赖安全扫描 | ❌ | ✅ (DEPS-001, 内置漏洞数据库) |
| 未使用导出检测 | ❌ | ✅ (UNUSED-001, Python/TS/Go) |
| Fail-open 策略 | ❌ | ✅ (外部依赖失败不阻塞) |
🔧 技术修复
- ✅ 占位符模式增强:
YOUR_API_KEY_HERE→_HERE$ - ✅ 删除重复方法定义
- ✅ 完善
_should_skip()逻辑 - ✅ 版本升级:v1.0.8 → v1.0.9
📈 测试数据
Python 直接运行验证:
- ✅ test_secrets.py: 16/16 (100%)
- ✅ test_unused_exports.py: 8/9 (88.9%)
pytest 全局运行:
- ✅ 通过: 936
⚠️ 通过率: 94.7% (936/988)
已知问题:
- pytest 存在模块缓存问题(临时解决:
python3 -B -m pytest) - TypeScript 未使用导出检测部分场景需要优化
[1.0.8] - 2026-07-11
🎯 核心主题:精准拦截 + 性能飞跃
在 v1.0.7 "不打扰"基础设施(Fail-open、规则解释、误报率统计)的基础上,
v1.0.8 重点提升拦截精度和性能表现。
🛡️ 守门员规则增强
新增:硬编码密钥检测(SECRETS-001)
- ✅ 新增
moat/checks/secrets.py(277 行)- 检测 10+ 种密钥模式:AWS/GitHub/Google API Key/密码/私钥等
- 智能误报抑制:自动过滤注释、占位符(YOUR_*)、环境变量读取
- 多语言支持:Python/JavaScript/TypeScript/Go/Java/Ruby
- 严重性分级:CRITICAL(密钥泄漏)/ HIGH(通用 API Key)
检测模式:
- AWS Access Key ID(
AKIA[0-9A-Z]{16}) - GitHub Personal Access Token(
ghp_*,gho_*) - Google API Key(
AIza*) - Slack Token(
xox[baprs]-*) - 硬编码密码(
password = "...") - 硬编码 Secret(
secret = "...") - RSA/ECDSA/PKCS#8 私钥
- JWT Token(疑似)
新增:依赖项安全检测(DEPS-001)
- ✅ 新增
moat/checks/dependency_security.py(398 行)- 支持 Python(requirements.txt, pyproject.toml)
- 支持 Node.js(package.json)
- 内置漏洞数据库(覆盖 12+ 常见漏洞:requests, django, flask, pillow, lodash, axios 等)
- 可选集成 pip-audit / npm audit
- Fail-open 策略:外部依赖失败不影响主流程
内置漏洞库示例:
requests<=2.25.0:CVE-2021-33503 CRLF 注入(HIGH)django<2.2.28:CVE-2021-33203 路径遍历(HIGH)pillow<8.3.0:CVE-2022-30515 任意代码执行(CRITICAL)lodash<4.17.21:CVE-2021-23337 命令注入(CRITICAL)
增强:SQL 注入检测(SQL-002)
- ✅ 新增
moat/checks/enhanced_sql_injection.py(310 行)- 支持 Django ORM
raw()f-string / 拼接 /.format() - 支持 Django ORM
filter()%s/%d格式化 - 支持 SQLAlchemy
execute()/engine.execute()/text() - 支持异步数据库驱动(asyncpg, psycopg2, aiomysql)
- Tree-sitter AST 检测 + 正则后备
- 支持 Django ORM
检测能力提升:
- 原有:基础
execute()f-string 检测 - 新增:ORM 框架专项检测(Django/SQLAlchemy)
- 新增:异步数据库驱动支持
- 新增:
filter()字符串格式化检测
新增:未使用导出检测(UNUSED-001)
- ✅ 新增
moat/checks/unused_exports.py(316 行)- Python
__all__未使用导出检测(基于 AST) - TypeScript/JavaScript
export检测(正则简化版) - Go 导出函数/类型检测(大写字母标识符)
- 严重性:LOW(代码质量问题)
- Python
增强:API 鉴权检测(API-002)
- ✅ 增强
moat/checks/quick_check.py的_check_auth()方法- Python:Flask, FastAPI, Django REST Framework
- TypeScript:Express.js
- Go:Gin, Fiber
- 新增鉴权关键词:
Depends(),get_current_user,@require_auth,auth_required
⚡ 性能优化
缓存优化(P1)
- ✅ 新增
moat/cache_enhanced.py(295 行)- LRU 缓存管理器:最多 10000 个条目,自动淘汰最久未使用
- 批量哈希计算:
batch_get_hashes()减少重复 IO - 并行扫描优化:ThreadPoolExecutor,小型项目自动降级串行
- 内存 + 磁盘持久化:自动保存到
.moat/hash_cache.json
性能测试结果:
缓存性能:
- 无缓存: 0.054s
- 首次缓存: 0.251s
- 二次缓存: 0.152s
- 缓存命中速度提升: 1.7x
完整流程:
- 扫描 100 个文件: 0.021s
- 平均每个文件: 0.2ms
增量扫描改进(P2)
- ✅ 新增
moat/ast/diff_enhanced.py(312 行)- 基于 AST diff 而非纯 git diff
- 函数签名变更检测:参数列表变化识别
- 导入变更检测:新增/删除导入识别
- 全局变量变更检测
- 变更影响分析:
analyze_change_impact()评估风险级别
变更类型:
added/deleted/modified/signature/modified/body/modified/import
📊 体验改进
增强报告生成器
- ✅ 新增
moat/report_enhanced.py(318 行)- 按严重性分组错误:CRITICAL → HIGH → MEDIUM → LOW → INFO
- 文件维度统计:每个文件的错误数、各级别分布
- 可视化错误摘要:🔴 CRITICAL / 🟠 HIGH / 🟡 MEDIUM / 🔵 LOW / ℹ️ INFO
- 多格式输出:Markdown / 纯文本 / JSON
报告示例:
## 📊 错误摘要(按严重性)
- 🔴 CRITICAL: 2
- 🟠 HIGH: 5
- 🟡 MEDIUM: 12
## 📁 文件维度统计
| 文件 | 错误数 | CRITICAL | HIGH | MEDIUM |
|------|--------|----------|------|--------|配置增强(P3)
- ✅ 新增
moat/config_enhanced.py(308 行)- 多源配置支持(优先级从高到低):
.moatignore- 忽略文件pyproject.toml [tool.moat]- Python 项目package.json moat- Node.js 项目.moat/config.json- 本地配置.moat/moat.json- 兼容旧格式
- 智能忽略规则:
should_ignore_file()统一过滤逻辑 - 向后兼容:完全兼容现有配置
- 多源配置支持(优先级从高到低):
使用示例:
.moatignore:
test_*.py
dem...