42cb1d7aa9
leo 2026-08-08:「已經發生過一次這個錯誤,把舊版界面上到 prod, 你要確定不可再犯。」 實測(repo 對線上,純文字資產比對): repo portal/index.html 343,969 bytes 線上 mira.uncle6.me 82,911 bytes(Songti 12 處,舊金色 serif 品牌) 線上 pages.dev 82,911 bytes(同上) 而e730b3f那版 verify-live 對這兩站**三項檢查全過**——因為它驗的是 組態(apiBase、profile 的 views/home),不是世代。 ⇒ 一個網址可以組態完全正確、卻對外展示一套早就被淘汰的介面, 而所有機械檢查都說它是綠的。這就是要消滅的狀態。 本次落地: 一、世代指紋(targets.mjs) 逐一取線上/產物的資產(index / portal / console / favicon.svg), 遮掉本來就該隨部署目標不同的那兩行(VIEWS/HOME),其餘按位元組比對。 刻意不用關鍵字清單——清單要人維護,而舊世代能無聲上線正是因為沒人記得維護它。 誠實 trade-off 寫在檔內:repo 改了沒部署就會判紅,那是正確的(那時線上確實不當代)。 二、宣告值真的寫進產物(收掉e730b3f標的 WIP) deploy.mjs 改為由 targets.mjs 產出 .staging/<目標> 再推: config.js 由宣告值即時產生、console 的 VIEWS/HOME 依 profile 覆寫, **覆寫沒命中就中止部署**;推之前回頭讀磁碟上那份驗一次(不看腳本印了什麼)。 public/config.js 刪除——它是產物不是原始碼。 三、修好一道從 08-03 起就在誤判的閘 t160 的世代閘比對 portal 全文含「登記新庫」即拒部,而 66f1b59(08-03) 加了一則**說明「已經把它拿掉了」的 HTML 註解** ⇒ 該閘自那天起每次誤判, npm run deploy:personal 連續五天推不出去。改成剝掉註解後只看可見內容, 並降級為輔助(主判準是指紋)。這正是「手工關鍵字閘會腐爛」的實例。 四、讓它在該跑的時候真的被跑到(不再生出沒人記得執行的腳本) · deploy.mjs 推完自動回頭驗線上,不過就算本次部署失敗 · .deploy-state.json 只在線上實測通過後才寫,且不進版控 (新 checkout 沒紀錄=狀態未知=該被提醒,而不是繼承別人的綠燈) · Stop hook 每回合離線比對「手上這一代 vs 最後一次驗過的部署」, 在要說「做完了」的那一刻出聲(實測 0.096s,不連網) 五、uncle6 邊界寫進工具本身(leo 08-08:「要看範例只在 youlin 網站,不要去碰 uncle6」) deploy.targets.json 的 enterprise 標 frozen:deploy 拒絕部署、verify 連抓都不抓。 目標本身保留不刪——刪掉就變成下一個 AI 眼中「從來沒有過這個站」的失憶。 同源清掉兩處還活著的舊記錄:README 的線上 demo 連結、public/index.html 的註解。 驗收證據見 commit 後的實測輸出(舊世代樣本取自 git 歷史 ad367e4,本機起站餵判準, 未碰任何線上資源)。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
66 lines
3.1 KiB
Plaintext
66 lines
3.1 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
|
||
# 例外: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
|
||
|
||
# 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
|