Claude 桌面應用程式的排程任務顯示為「執行中」。日誌顯示連續四次呼叫以從頁面資料庫匯出記錄,但此後便沒有任何進展。這個過程負責每日早上看板更新的最後一步:從頁面資料庫匯出記錄、重新生成 HTML 並重新發布頁面。9 月 29 日的執行卡在最初的匯出步驟。由於我是遠端使用桌面應用程式會話,因此無法到達授權畫面,即使有流程在等待我的批准,我也無法點擊「允許」來繼續。

早上更新分為三個階段。我會在儀表板、貼文板和留言板三個頁面上查看交付數量和工作記錄,這些都是由 Claude 發布的 Artifacts,記錄儲存在頁面資料庫中。早上更新並非單一流程:9 點 30 分,launchd 會彙總瀏覽次數;9 點 40 分,另一個 launchd 流程會重建 HTML。

最後,從 9 點 45 分開始,Claude 會寫入頁面資料庫中的記錄、重建 HTML 並重新發布兩個頁面。

中間階段的流程可以使用本地腳本運行。事實上,早上的腳本會從本地資料收集留言並重建儀表板和留言板的 HTML。即使留言收集失敗,它也會繼續使用之前的內容進行處理,並預先建立本地 HTML 以準備頁面更新。然而,最後階段需要工具來讀寫頁面資料庫並發布 Artifacts,這部分無法單獨透過腳本執行。

由於已確認 headless claude -p 不具備 Artifact 相關工具,因此我決定將最終任務分配給 Claude 桌面應用程式中的「定期任務」,設定為每天早上固定時間進行資料輸出和發布。

9 月 29 日的執行日誌顯示,在 9 點 52 分,關於初始資料庫寫入的四次呼叫後便停止了。任務仍然顯示為「執行中」,但實際上它正在等待批准。如果前一次執行沒有完成,下一次排程的執行就不會啟動。因此,9 月 30 日和 10 月 1 日的執行都沒有開始。我的早晨例行公事不僅停擺,未完成的執行也持續卡住,阻礙了接下來幾天的任務。

我的反應是:「排程任務都積壓了。」螢幕上看起來像是在運行,但我無法到達完成批准的畫面。僅憑「執行中」的狀態,甚至無法判斷流程進展到哪一步。我所能看到的最遠進度就是那四次呼叫完成的點。我註冊這個流程時,以為它會在時間到時自動完成,但實際上,它在排程時間過後需要人工批准。

我首先想到的是,將必要的工具和指令加入權限設定可能會讓流程繼續進行。我嘗試將所需的條目附加到 ~/.claude/settings.json 中的 permissions.allow。然而,自動安全檢查阻止了該操作,並將其標記為「修改自己的權限設定」。由於自動模式不允許我繼續,我切換到手動模式,批准了更改,並將權限添加到設定中。

隨後我檢查了排程任務是否會成功運行,結果仍然沒有改變。下一次執行同樣在第一次資料庫匯出時停止。即使在設定檔中添加了權限,排程任務仍然在同一個地方需要批准。

後來我發現,排程任務似乎是根據每個任務來記住批准的。至少在這次執行中,添加到設定檔中的權限沒有任何作用。僅僅修復設定並不能讓下一次執行自動進行。大約在同一時間,自動安全檢查的伺服器在某些時段也無法回應。如果檢查連續 10 次未能返回決策,流程就會停止,阻止指令和檔案編輯的進行。

即使是為了調查批准問題而進行的配置更改,有時也會被獨立的安全檢查阻止。排程任務仍然卡住,等待批准。嘗試添加權限設定被安全檢查阻止,即使批准後,執行仍然在同一個地方停止。任務狀態依然顯示為「執行中」。

我認為終端機可能是更可靠的選擇。最終,我手動關閉了桌面應用程式中的排程任務。儘管「執行中」的狀態仍然存在,但很難繼續使用該機制。遠端工作時,我無法總是在提示彈出時授予權限。我回到終端機中的 Claude Code 會話,並決定透過該會話內的 cron 來運行相同的程序。

我使用 claude --resume <session-id> 來恢復會話並進行遠端操作。我將 cron 註冊為每天早上 9 點 47 分運行。

從第二天早上開始,它就成功運行了。然而,這個 cron 並不是一個獨立運行的機制,它只存在於會話中,關閉終端機時就會消失。它只在等待輸入時運行,並在 7 天後自動過期。為了讓它持續運行,我必須重新註冊。我不再卡在桌面應用程式的排程任務上,而是將工作流程轉變為維護終端機會話並在過期前重新註冊。我已確認它從第二天早上開始就一直在運行。不過,作為一個長期解決方案,仍然存在一些限制。

接下來的議程是提議將頁面遷移到 Cloudflare,並將記錄也儲存在那裡。這將允許僅使用 launchd 和腳本來管理更新,從而無需 Claude 或終端機。然而,這個計畫尚未實施。過去三天,排程執行仍存在一些問題。需要人工批准的流程,在沒有人可以批准的時段會停止。

即使停止了,螢幕可能仍然顯示「執行中」。為了將它們納入排程執行,它們應該由不需要批准的工具組成,或者在可以預先獲得必要批准的位置運行。僅僅註冊一個早上的時間段並不能保證後續流程會成功完成。