Repository navigation
Expand file tree
/
Copy path.gitignore
More file actions
155 lines (135 loc) · 6.42 KB
/
Copy path.gitignore
File metadata and controls
155 lines (135 loc) · 6.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# 依赖与产物
node_modules/
dist/
out/
release/
coverage/
*.tsbuildinfo
.tsbuild/
# 文档:源文档必须入 git(交付物),只忽略产物。
# 曾经这里写的是整目录 `docs/`,结果 `git ls-files docs` = 0 ——
# 交付文档写完就丢,团队协作直接失效。`pnpm verify` 现有 check:docs-tracked 门禁盯着这条。
docs/build/
docs/**/*.generated.md
# 环境变量:只提交 .env.example
.env
.env.*
!.env.example
# 本地数据与日志
data/
logs/
*.db
*.db-shm
*.db-wal
# 系统与编辑器
.DS_Store
*.log
.idea/
.vscode/*
!.vscode/extensions.json
# 构建产物(配置文件旁的 tsc 输出)
apps/*/electron.vite.config.js
apps/*/electron.vite.config.d.ts
*.tsbuildinfo
# pnpm
.pnpm-store/
package-lock.json
# 预置二进制:resources/bin 是**构建产物**目录(由 prepare:bin 从 vendor 填充),
# 同时也是 DWS 运行时可能写入的地方 —— 因此保持 ignore。
apps/*/resources/bin/*
!apps/*/resources/bin/.gitkeep
# 同理:resources/forge 是 prepare:bin 从 vendor/forge 拷出来的产物。
apps/*/resources/forge/
# 同理:resources/python 是 build-python-bundle.mjs 从 vendor/python 压平出来的
# 产物(解释器 + 压进它自己 site-packages 的依赖,379MB)。源在 vendor/python,
# 那份入 git;这份是每次打包重算的,不入。
apps/*/resources/python/
# 同理:渠道 CLI 自带的 skill(mono + multi,421 个文件 / 6MB)是
# `sync:dws-skill` 从**二进制内嵌源**解出并净化的产物。
#
# ★ 为什么不入 git(而 `resources/skills/kl` 入了):
# 那份的源是 `kl-graph/`(入 git 的算法团队代码),所以产物与源在同一次
# checkout 里可比;而这份的源是 `resources/bin/dws-<平台>` —— 那个二进制
# **不入 git**(走 npm + 解包缓存)。把产物入库会让"库里这份 skill 是哪个
# 二进制版本解出来的"无从回答,而 `check:dws-skill-sync` 在没有二进制的
# 机器上是**跳过**的 —— 于是漂移能一路混进发版。
# 与 `resources/forge` 同一条口径:源不在库里,产物就不入库。
apps/*/resources/skills/dws-mono/
apps/*/resources/skills/dws-multi/
# 打包产物(.app / dmg,~600MB 一份)。
apps/desktop/release/
# vendor 是「源」,入 git。但 DWS 运行时会在同级写 .dws/(含真实 token),必须挡住。
# 这几条是双保险,另有 scripts/check-vendor-clean.mjs 做门禁。
**/.dws/
vendor/**/logs/
vendor/**/token.json
vendor/**/identity.json
vendor/**/profiles.json
vendor/**/app-dev.json
vendor/**/*.zip
# dws 二进制的解包缓存:从 npm 包 `dingtalk-workspace-cli` 的 assets/ 解出来的
# 中间物(见 scripts/lib/dws-resolver.mjs)。**不入 git** —— 它是产物,
# 而且 61MB;版本由 lockfile 管,重装依赖即可重建。
.dws-cache/
# 开源版 dws 的试跑沙箱(`pnpm dev:dws-oss`):独立应用数据 + 独立凭据。
# ★ 里面有**真实 token**(文件 DEK 形式的加密凭据),绝不能入 git。
.dws-oss-sandbox/
# forge 是 Python 源码:字节码缓存是执行副产物,不入 git
# (另有 check:vendor-integrity 的「未登记文件」检查兜底)。
vendor/**/__pycache__/
vendor/**/*.pyc
# 算法团队的代码(真实 commit 历史,见那次导入的 message):
# 源码入 git,本机跑出来的数据与虚拟环境不入。
#
# ★ `data/` 是**本机的真实聊天内容**抽出来的图谱(实测 152M:qdrant + knowledge.db
# + 按 msg.id 存的抽取缓存)。它同时也在 electron-builder 的 filter 里排除掉 ——
# 那份 rsync 副本时代不需要那条 filter(副本里根本没有 data/),
# 现在 kl-graph 是真 checkout,构建机上它就在那儿。
kl-graph/data/
kl-graph/.venv/
kl-graph/**/__pycache__/
kl-graph/**/*.pyc
# Local evaluation test work
kl-graph/kl_graph/evaluation/tests/
kl-graph/kl_graph/evaluation/locomo/khoj/tests/
kl-graph/kl_graph/evaluation/locomo/ragflow/tests/
kl-graph/tests/test_rerank.py
# 内置 Python:**解释器与 venv(含全部依赖)都入 git**。
#
# 为什么连 venv 一起入:打包后的用户不可能去跑 `pnpm setup:python`,
# 也不该要求他们出网装 288MB 依赖。整套入 git 之后 clone/安装即可用。
#
# 代价是 venv 里那些绑机器路径的地方必须全部改成自定位(软链改相对、
# shebang 改 sh/python polyglot、activate 推自身位置、`pyvenv.cfg` 的
# `home =` **整行不写**)。逐条见 vendor/python/README.md 的那张表与
# scripts/lib/python-env.mjs 的 relocateVenv / rewriteVenvScripts。
# `check:vendor-clean` 有一条门禁盯着"入 git 的 pyvenv.cfg 不得带 home ="。
vendor/python/*/*.tar.gz
# venv 里的这些是执行副产物,不入 git(首次 import 自动重建)
vendor/python/*/venv/**/__pycache__/
vendor/python/*/venv/**/*.pyc
# ★ 一次性诊断探针的产物 —— 它装的是**真实聊天流**的原始字节。
#
# `scripts/probe-acp-stream.mjs` 把每一条 session/update 原样 dump 到仓库根,
# 那份 JSON 里有真人名与真会话内容。它与正常的 fixture 长得完全一样
# (见 scripts/check-no-local-data.mjs 的文件头:泄漏的形态与正常代码没差别),
# 所以这一行是它进 git 之前的最后一道拦阻。
acp-stream-dump.json
# ★ 本机/内部用的 agent 工具,不属于产品,也不该随开源仓分发。
#
# · `.claude/` —— 本机 agent 配置与内部 skill(`gpt-image/` 写着私有网关地址与
# key 的取法;`hitg-cli/` 驱动内部后端;`find-skills` 是指向仓库外的死软链);
# · `.agents/` —— 上面那条软链的目标,同样是本机 skill 目录;
# · `.hitg_attachments/` / `.hitg-attachments/` —— 会话临时附件(截图等),
# 不是代码。★★ 两种写法都要挡:下划线那一版是最早写的,而工具**实际**
# 建的目录名是**连字符**的 `.hitg-attachments/`。只写下划线那一版等于没挡
# —— 实测过:产品发来的截图(带真实姓名与内网邮箱)就落在连字符那个目录里,
# `git status` 把它列成未跟踪文件,一次 `git add -A` 就会进公开仓库。
# 这不是假设,那次是靠"显式列 12 个文件路径 add"才没提交进去。
#
# 产品真正要随包分发的 skill 在 `apps/desktop/resources/skills/`
# (由 `pnpm sync:kl-skill` 生成,且过脱敏),与这里无关。
.claude/
.agents/
.hitg_attachments/
.hitg-attachments/