96a3d15efc
门禁解释器解耦
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 全通过。
183 lines
6.6 KiB
Plaintext
183 lines
6.6 KiB
Plaintext
# 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/
|