f87d0e92f4
leo 更新 leo21c 時撞到(他問「部分失敗?」): ✗ D1 migration: 部署物缺 kbdb/migrations/0005_credential_template.sql ✗ D1 migration: 部署物缺 kbdb/migrations/0006_drop_credentials_table.sql (四顆 worker cypher/registry/kbdb/mcp 全部 ✓,失敗的只有這兩個檔) 根因不是誰忘了推:.gitignore:53 的 `*.sql` 是為了擋 D1 匯出備份(整庫全量=機敏), 但它連 migration 一起吃掉。0001-0004 還在,只因為它們在該規則之前就 commit 了 (gitignore 不影響已追蹤檔案)⇒ 0005/0006 從產生那天起就不在任何 clone 裡。 ⇒ 這不是 leo 一台的事:更新指令從 Gitea 抓 main,那兩個檔不在那裡 ⇒ **任何人裝/更新都會收到同一組失敗**,包含全新安裝。 修法照 rules/05-deploy-convention.md「WASM 來源」段已有的慣例 (`.component-builds/**/component.wasm` 就是用否定規則放行的): !kbdb/migrations/*.sql 範圍實測(沒開太大): kbdb/migrations/0005、0006 → 放行 backup-2026.sql / kbdb/backup-x.sql / dump.sql / cypher-executor/export.sql → 仍被擋 進版控前確認過無機敏值:grep 命中的 token/secret/api_key 全是欄位名 (api_key、secret_ref)與註解;無 >=20 位英數的疑似真值。 殘項:leo21c 實查 templates 9 個、credential 不在其中 ⇒ 0005 從未套用, 那台仍停在 D38 之前(credentials 走 0002 的獨立表)。要補套需另跑一次更新。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
83 lines
4.4 KiB
Plaintext
83 lines
4.4 KiB
Plaintext
node_modules/
|
||
.wrangler/
|
||
dist/
|
||
# wasm:預設排除(build 中間產物,如 registry/components/*.wasm)
|
||
*.wasm
|
||
# 例外:放行 .component-builds 的部署物 wasm — self-host 用戶 / acr init 從 repo 直接拿這份部署
|
||
# (推翻 rule 05 原「wasm 不 commit」慣例,見 .agents/specs/arcrun/sdk-and-website/self-hosted-init.md §6)
|
||
!.component-builds/**/component.wasm
|
||
# 例外:Arcrun#80 tier2 worker 官方編譯成品(cypher-executor/kbdb/http_request/code/mcp 的
|
||
# esbuild bundle + 隨附 wasm part)——commit 進 repo 同一套理由:固定位置、any clone 都拿得到,
|
||
# 不必自己再編一次(見 scripts/build-worker-artifacts.mjs)。
|
||
!.worker-builds/**/*.wasm
|
||
# 例外:code 零件(自足 Worker)的 vendored quickjs.wasm 同屬部署物 —— acr init/update 從
|
||
# repo archive 直接部署(同上 .component-builds 放行邏輯)。來源=npm 套件
|
||
# @jitl/quickjs-wasmfile-release-sync 的 emscripten-module.wasm,由 postinstall vendor-wasm.mjs
|
||
# 產出、跟套件版本走(升版時重跑 npm install 再 commit 覆蓋)。約 491KB。
|
||
!registry/components/code/vendor/quickjs.wasm
|
||
# 但「錯做成零件」的再次排除(後出現的規則勝出):claude_api / km_writer / kbdb_upsert_block
|
||
# 不是 endpoint 薄殼,是把工作流硬塞進零件(違反 DECISIONS §1)→ 要降級成工作流/recipe,
|
||
# 不該進 repo 部署來源。commit 二進位進歷史無法乾淨移除 → 一開始就不放行。見 BACKLOG 降級待辦。
|
||
.component-builds/claude_api/component.wasm
|
||
.component-builds/km_writer/component.wasm
|
||
.component-builds/kbdb_upsert_block/component.wasm
|
||
credentials.yaml
|
||
~/.arcrun/
|
||
.env
|
||
.env.*
|
||
# 範本(無值,需進 repo 給 self-host 用戶 cp 成 .env)——必須放行
|
||
!.env.example
|
||
# 任何測試/真實憑證一律不進 repo(2026-06-03:曾誤 commit GCP SA 金鑰被 GitHub push protection 擋)
|
||
docs/test_credentials/
|
||
*.sa.json
|
||
*-service-account*.json
|
||
|
||
# ── 開發痕跡進 repo(D22 翻案 2026-07-03,InkStoneCo 頂層決策)──
|
||
# 舊規則(2026-06-03「開發痕跡不對外」)立於 GitHub 終將公開的前提。
|
||
# 現 repo 真身在自有 Gitea private,clone 者是雲端工人:docs/SDD、wiki、
|
||
# CLAUDE.md、.claude/、.agents/ 都必須進 repo(缺=雲端斷糧,T1.5 卡點實證)。
|
||
# 未來上 GitHub 公開=一次性發佈篩選,不在日常 gitignore 綁死。
|
||
# 例外仍不推:機敏值(本檔各處既有規則照舊)+ .github/(防 Actions 復燃,D20 同源)
|
||
.github/
|
||
|
||
# macOS
|
||
.DS_Store
|
||
|
||
# Local AI tooling artifacts (Claude Code swarm + ruvector)
|
||
.swarm/
|
||
ruvector.db
|
||
**/.swarm/
|
||
**/ruvector.db
|
||
scripts/__pycache__/
|
||
# D1 備份/匯出(wrangler d1 export 產物,含整庫全量資料=機敏,絕不 commit)
|
||
*.sql
|
||
backup-*.sql
|
||
# 🔴 但 migration 不是備份,它是**要出貨的程式碼**(2026-08-12 實撞):
|
||
# 上面那條 `*.sql` 的用意是擋 D1 匯出(整庫全量資料=機敏),卻連 migration 一起吃掉。
|
||
# 後果:0001-0004 因為在該規則之前就 commit 所以還在,**0005/0006 從此沒進過版控**
|
||
# ⇒ 更新指令從 Gitea 抓 main,那兩個檔根本不在那裡 ⇒ 每個用戶都會收到
|
||
# 「✗ D1 migration: 部署物缺 kbdb/migrations/0005…」——**不是誰忘了推,是規則吃掉的**。
|
||
# ⇒ 與 `.component-builds/**/component.wasm` 同慣例(見 rules/05-deploy-convention.md
|
||
# 「WASM 來源」段),用否定規則放行。備份檔仍由 `backup-*.sql` 與目錄位置擋住。
|
||
!kbdb/migrations/*.sql
|
||
|
||
# GitHub 公開 mirror 工作目錄(publish-github.sh 產物)
|
||
.github-public/
|
||
wrangler.leo21c.toml
|
||
|
||
# deploy-all.mjs 產的共用依賴(部署時 npm 安裝 wrangler 等,非 repo 內容)
|
||
# 2026-08-07:每次本機跑部署都會冒出來吵未推警察,且含不該進版控的鎖檔
|
||
/package.json
|
||
/package-lock.json
|
||
|
||
# console-ui 部署產物(deploy.mjs 依 deploy.targets.json 即時產生,不是原始碼)
|
||
console-ui/.staging/
|
||
# 「上一次通過線上實測的部署」紀錄——本機事實,不隨 repo 走
|
||
# (刻意不進版控:新 checkout 沒有紀錄 ⇒ 狀態未知 ⇒ 該被大聲提醒,而不是繼承別人的綠燈)
|
||
console-ui/.deploy-state.json
|
||
|
||
# Wrangler 本機開發用的密鑰檔——絕不進版控(2026-08-09 補:原本沒被擋,
|
||
# 而同目錄有 agent 在動工,一次 git add -A 就會把金鑰推上去)
|
||
.dev.vars
|
||
**/.dev.vars
|