雲端第一則 prompt 的主線是現在這條:兩份主線檔都不在時 refresh 去 Gitea 讀 InkStoneCo main 那份一次(inkstone/ISEP#140) #143
Reference in New Issue
Block a user
Delete Branch "feat/140-mainline-gitea-fallback"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
【身份】isep-hand/inkstone/ISEP/feat/140-mainline-gitea-fallback
票:inkstone/ISEP#140(母票 inkstone/ISEP#130)→ comment 6611 的改判:機制長在 ISEP 身上,不等 leo 貼 setup script。
改了什麼
薄殼 SessionStart 跑在
bootstrap.sh之前 ⇒InkStoneCo/還沒 clone、家目錄空 ⇒ 兩份主線檔都不在 ⇒countdown.py退到「期限最近的 milestone」⇒ 第一則 prompt 印逾期 341 小時的舊線。機制沒壞,是順序。hooks/lib/mainline.pyfetch_gitea()——本檔唯一會打網路的函式,只有 SessionStart 的mainline refresh叫它;load()/line()(每一則訊息的路徑)照舊零網路。優先序寫進檔頭、接在 #130 那段後面:家目錄 > repo 那份 > Gitea 那份,讀的是同一個檔,不是第二套來源。匿名優先,被拒(401/403/404)且拿得到 token 才帶 token 再問一次;讀不到回 None,逾時有上限(預設 4 秒、最多兩次)。scripts/mainline refreshfetch_gitea一次、只寫家目錄(不 mirror:雲端沒InkStoneCo/可寫、本機不弄髒工作樹);token 拿不到不炸、不往 stderr 抱怨(soft_token())。任一份在場 ⇒ 行為與 0.25.0 一字不改。hooks/tests/mainline-gitea-fallback.test.shdocs/TESTING.mdA37+狀態列;docs/hooks-inventory.mdmainline refresh那列;docs/cloud-session-bootstrap.md主線那列;system-dev/wiki/mistakes.md一條。🔴 一個假設,跟票上紅線不同,寫在這裡等總管裁
票上紅線:「讀 Gitea 一律匿名(D20),不帶 token」,前提是 comment 6611 說的「Gitea 上讀得到(匿名讀 raw 檔或 API contents)」。
實測那個前提是假的:匿名打
inkstone/InkStoneCo的 raw/contents/repo API 三個都 404;同樣三個端點打inkstone/ISEP都 200 ⇒ InkStoneCo 在 Gitea 是 private。照字面做,這張票在真環境永遠讀不到、測試卻能全綠(同日 #137「假伺服器回 200」那條坑的翻版)。我的假設:匿名優先,匿名被拒才帶 token。理由:同一條 SessionStart 鏈上
countdown-milestone-refresh.sh與mainline refresh本來就帶GITEA_TOKEN_CLAUDE_CODE打 Gitea;D20 管的是 GitHub 那個會被 flag 的帳號。若總管裁定必須純匿名,那出路只有把 InkStoneCo 設成 public(leo 的事),程式碼不用改——匿名讀到就不會走到 token 那步。測過的
bash hooks/tests/mainline-gitea-fallback.test.sh→ 31/31mainline-repo-mirror17/17、mainline-focus-guard24/24、countdown-guard20/20、mainline-idle-guard61/61、scripts/test-ticket-pick.sh48/48(全部跑在 rebase 到 v0.25.0 之後)scripts/check-version-consistency.sh→ ✅ 0.25.0$CLAUDE_PROJECT_DIR是沒有InkStoneCo/的空目錄):GITEA_TOKEN_CLAUDE_CODE:mainline refresh2.06 秒、rc 0 →mainline印inkstone/Arcrun#48「AI 問一次就看得到全部…」;UserPromptSubmit 餵countdown-guard.sh印⏱ …|主線 AI 問一次就看得到全部… 剩 137 小時 41 分與🎯 主線:inkstone/Arcrun#48…沒驗的(標明,不當交付)
GITEA_TOKEN_CLAUDE_CODE(本 session 有)。ls InkStoneCo/system-dev/mainline.json在第一則 prompt 前就存在」——本做法刻意不做到這格:comment 6611 紅線「不在 SessionStart 做 clone」,主線改從 Gitea 直讀進家目錄,那個檔要等 bootstrap。這格該改寫或作廢,請總管在票上定。盤點(本樹實數)
ls hooks/*.sh | wc -l=61、grep -c '"command":' hooks/hooks.json=85、agents 7、commands 7、skills 2、ls -p scripts | grep -v / | wc -l=60——一個都沒動(測試在hooks/tests/)。版本:待總管定版(改了會被載入的東西:
hooks/lib/mainline.py、scripts/mainline)。不推 main。🤖 Generated with Claude Code
https://claude.ai/code/session_0178ef1fGw3XeZtpN7LaZrm4