Files
STM32F4-Base/.gitignore
T
wandering1 96a3d15efc chore(gate): 门禁钩子改走 gate_python 启动器,worktree 统一插件模型
门禁解释器解耦
  44 条 language: system 钩子此前把解释器写成仓库检出的绝对路径,换机、
  换克隆目录都要重写。改为 entry 只写 scripts/gate_python.py + 脚本名,
  由启动器按候选链解析:$DTU_GATE_PYTHON > <仓库>/.venv >
  <仓库>/.gate/python > PATH。启动器用 execve 替换自身,并把选中的
  解释器经 DTU_GATE_PYTHON 传给子进程,保证脚本内再调 Python 时一致。
  实测 pre-commit 4.6.2 不展开 ${VAR};language: script 的 shebang 只做
  纯 PATH 改写,会把决定权交给 PATH 首个 python,故不采用。
  ci_local.py 预检识别启动器并报出解析结果。

并行工作树统一
  task-worktree 新增 bench-gate(强制台架验收)与 merge(编排式合并),
  删除 new/abort,done 标 DEPRECATED;台架通过记录改存
  .agents/worktrees/.bench-pass-log。keil_build.py 的 plugin_tree_owner
  识别 .agents/worktrees/<name> 并返回 pw:<name>。
  check_doc_links / gen_refgraph / check_layer_deps 的扫描排除面补上
  .agents;并行任务工作树方案重写为单一模型(7 节),取消工作树数量上限,
  删历史实测记录节,两处 §7.3 悬空引用改为按语义引用。

文档与约定
  本地工具路径环境变量方案 §5 重写为四节:谁跑在哪个 Python 上、写新钩子、
  预检对号入座、动环境五步。文档规范的变更记录例外名单由 5 篇减为 4 篇
  (本篇实际没有该节)。AGENTS.md 补委派验收口径三条。

验证:pre_commit run --all-files 48 钩子全 Passed;ci_local.py
--preflight-only 报 44 条经启动器 -> 仓库 .venv;keil-build 0 errors
0 warnings;check_doc_links --sections-strict 全通过。
2026-11-15 19:39:56 +08:00

183 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Keil MDK - Build artifacts
*.o
*.d
*.crf
*.axf
*.hex
*.map
*.lnp
*.dep
# Keil UV4 预处理列表文件("Generate preprocessed source file" 选项产生的构建中间物,勿入库)
*__i
*._ia
*.build_log.htm
*.htm
*.log
*.lst
*.dep
.workbuddy-ai/
# Keil MDK - Build log (regenerated by keil_build.py)
MDK-ARM/build_log.txt
# legacy: download.bat removed 2026-10-10; entry kept so stale leftovers on
# other machines do not surface as untracked files
MDK-ARM/download_log.txt
MDK-ARM/err.txt
MDK-ARM/out.txt
MDK-ARM/ret.txt
# Keil MDK - IDE settings (user-specific)
*.uvoptx
*.uvguix.*
# Keil MDK - Debug config
*.dbgconf
# Keil MDK - RTE auto-generated
MDK-ARM/RTE/
# STM32CubeMX (keep .ioc, it's the project source)
# *.ioc
# CubeMX 重生成时自动产生的旧文件备份(Src/Backup/、Inc/Backup/)——
# 纯本地临时物,内容 = 重生成前的快照;入库只会造成无意义的提交抖动
Src/Backup/
Inc/Backup/
# Visual Studio / IDE
.vs/
.vscode/
*.suo
*.njsproj
*.sln
*.suo
*.user
*.opensdf
*.cache
# Windows
Thumbs.db
ehthumbs.db
*.tmp
*.temp
# Linux / Mac
.DS_Store
# LVGL - Unused directories (only src/ is compiled)
Lib/lvgl/demos/
Lib/lvgl/tests/
Lib/lvgl/docs/
Lib/lvgl/libs/
Lib/lvgl/scripts/
Lib/lvgl/env_support/
Lib/lvgl/examples/
Lib/lvgl/.github/
Lib/lvgl/.devcontainer/
Lib/lvgl/zephyr/
Lib/lvgl/xmls/
Lib/lvgl/configs/
# LVGL - Build system files not needed for Keil
# NOTE: Lib/lvgl/CMakeLists.txt is REQUIRED by the PC simulator (simulator/),
# so it is tracked despite being a build-system file. Do not re-ignore it.
Lib/lvgl/CMakePresets.json
Lib/lvgl/component.mk
Lib/lvgl/idf_component.yml
Lib/lvgl/Kconfig
Lib/lvgl/library.json
Lib/lvgl/library.properties
Lib/lvgl/lvgl.mk
Lib/lvgl/lvgl.pc.in
Lib/lvgl/SConscript
Lib/lvgl/sconscript
# LVGL PC Simulator - build artifacts
simulator/build/
sim_dbg.log
# 模拟器宿主侧产物(lvgl_sim.exe / 测试脚本在 CWD 生成,不入库):
# sim_config.ini = net_cfg_load 首启工厂默认落盘;sim_*.log = syslog 后端宿主文件
sim_config.ini
sim_run.log
sim_selftest.log
# LVGL PC Simulator - screenshot outputs (generated, see simulator/i1_to_png.py)
simulator/shot*.png
simulator/shot*.bin
simulator/*.ppm
simulator/__pycache__/
# LVGL PC Simulator - SDL2 SDK (downloaded, see docs/UI 设计/LVGL模拟器部署与使用说明.md §3.1 与 docs/项目部署环境要求.md 第 3 步)
simulator/SDL2/
# Binary / large files
*.bin
# 主机侧单元测试产物(MSVC 中间物;test/host/**/run_unit_test.py 正常写 %TEMP%,
# 但手工直接调 cl.exe 调试时可能落在 CWD。统一兜底忽略)
*.obj
*.exe
*.pdb
*.ilk
# 内容页像素黄金参考 ref/*.bin **已入库**(2026-10-22):整目录不入库时,任何新克隆 /
# 新工作树跑 ui-golden 都必然 FAIL(缺基准),这条像素回归就只在老机器上真实存在。
# 交叉验证:两份各自独立构建的 lvgl_sim(不同构建目录、相隔 11 天的代码)对同一批 ref
# 逐字节一致 → 渲染可复现,基线可入库。派生的目检 PNG 仍是本地产物,继续忽略:
simulator/tests/ref/*.png
# ⚠ 上面第 115 行的全仓 `*.bin` 兜底(挡模拟器的 sim_netcfg.bin 之类运行产物)会连入库的
# 黄金参考一起挡掉 → 必须显式反选;反选只有排在 `*.bin` **之后**才生效(.gitignore 后者覆盖前者)
!simulator/tests/ref/*.bin
# 架构图 PNG 预览(源为 docs/images/*.svg,PNG 本地渲染生成,不入库)
docs/images/*.png
*.pyc
# Python venv (unified env, see AGENTS.md "Python 环境"; rebuild via requirements.txt)
.venv/
# Serial assistant runtime state (daemon log/meta, local runtime artifacts)
.dsh/skills/serial-assistant/scripts/state/
# agent 会话草稿(2026-10-14 定):提交信息草稿 / 门禁输出 / 台架日志 / 一次性改名
# 脚本 / 故障注入 patch —— 一律不入库,**而且不落仓库根**(写进 ci-artifacts/ 或系统临时
# 目录:2026-10-28 清理仓库根时那里堆着四个一次性计数改名脚本 + 一份提交信息草稿,全是
# 未跟踪的 ?? —— 一次 git add -A 就进历史;仓库根只留工程配置与生成器输入两份 .txt)。
# 判据三条,命中任一就不值得留:
# ① 能重跑的(门禁输出、日志);② 内容已在 git 历史里的(已合并实现的过程 diff);
# ③ 离开已丢弃的任务分支就跑不通的(依赖 NET_FAULT_INJECT 的注入产物)——
# 这种提交进去是"看着有证据、实际不可复现"的假证据,**方法应沉淀成文档文字**
# (见 docs/网络/网络自愈架构设计.md §5.2 E18/E19)。
# ⚠ .dsh/skills/ 是**入库的项目知识**(skills = 子域方法论),必须放行。
.dsh/*
!.dsh/skills/
!.dsh/roles/
# 记忆工具(Mnemon)本地状态:项目文档索引 documents/ + 运行时记忆
# runtime/MEMORY.md、USER.md、memories.json。**只留本机、不进版本库**
# (2026-10-11 定):记忆是按机器/按人累积的私有状态,入库会让每次记忆
# 写入都变成提交抖动,还可能带出本机绝对路径与个人偏好。
.mnemon/
# CI 运行时产物(.gitea/workflows/ci.yml 的 S3 步骤在 runner 工作区落盘的日志;
# 零依赖存档方案——落在工作区目录而非上传 artifact,故必须忽略以免误提交)
# 子进程环境残缺时 Windows 会按字面量建目录(本会话实测两次复发:UV4 / 字体
# 工具在缺 SystemDrive、ProgramData 的环境里于仓库根创建
# %SystemDrive%/ProgramData/Microsoft/Windows/Caches/*.db,约 1 MB 字体缓存库)。
# 与"一次性中间产物不进 .gitignore"那条教训不同:这是任何一条道随时可能再生的环境
# 副产物,不兜住就会被某次 git add -A 带进历史。正解仍是继承完整环境跑这类工具。
%SystemDrive%/
ci-artifacts/
# 提交信息草稿的兜底反选(上一条草稿块的「不入库」靠人自觉把文件写进 ci-artifacts/,
# 但 `git commit -F` 那份文件随手落在仓库根就会以 ?? 出现,被某次 add -A 带走):
# 正文已经进了 commit message,落盘副本零信息量 → 根目录锚定挡掉这个命名。
/commitmsg*.txt
# 旧 DSH worktree 插件把任务树建在仓内这个命名空间下;现役插件默认使用
# .agents/worktrees/,并在该目录池内写入自己的 .gitignore(内容为 *),不靠根文件忽略。
# 两处都登记进 check_doc_links / gen_refgraph / check_layer_deps 的全库扫描排除面,
# 防止整份仓库副本造成假红或生成物漂移;操作边界 → /task-worktree 的插件桥规程。
.dsh-worktrees/
.obsidian/