Repository navigation
Releases: SaM-runtime/claude-console
Releases · SaM-runtime/claude-console
Release list
console-status 0.21.0
- ⟳ 自動接力: one press runs a project's cycle and stops where you are needed. A large item used to take a press per step (continue → sync → continue the review → review the gate → continue the fix → …).
⟳ 自動接力in the action menu (keya, or/console cycle <project> [off]) presses the existing buttons for you, under four rules. Hops: at most one per refresh, each an existing action: an IDLE project with a next step is continued (the press of ⟳ is the confirmation, so no second press), and a review task still starts a fresh session without the digest. Gates: a spec or review gate is sent to the console to judge, as⚑ 審核關卡does, once; if its turn ends with the same gate in place, the cycle stops instead of sending it again. Stops: a decision or an executor that stopped to ask, a release gate, a failed or cancelled job, a sync that wrote nothing, a continue that left the CARD's rev and next step as they were, or six hours with no hop; a hop that does not go out stops the cycle too, so nothing is retried. Limit:cycleMaxHops(default 6, 1–20) hops per press. Quota brake: before each hop the cycle stops once a Claude 5-hour window is used pastcycleQuotaStop(default 70%;offturns it off) or any window at its pace runs out within the hour, and ⟳ is refused while that holds; Codex's own quota keepscodexMinQuotaPercent. The action menu's shortcut line listsa. 待同步 stays withautoSync(with it off, the cycle sends one sync), a hop waits 60 seconds after the last so your own continue or reply goes first, and an executor that ended its turn on a question stops the cycle even when a gate is also in place. Several consoles: a cycle belongs to the console that armed it; another console shows it as⟳ 另一主控台接力中and neither runs, stops nor rewrites it, and clears it only once its console has been gone six hours. A continue or gate hop waits out another console's dispatch of the project for its two minutes, as a press does since 0.20.1; a sync hop is left to the console that dispatched the work, as auto-sync is. The row and the next-step card show⟳ 2/6or what it waits for (⟳ 等同步,⟳ 等回合); each hop is a feed line saying why (⟳ claude-console 第 2 跳:⇢ 繼續下一步(.task/review-x.md)), and a stop is a feed line and a toast. A cycle is armed only by a press on one project and kept across a reload; a refresh still calls no model, and with nothing armed it does nothing more than before. A gate hop is sent from a timer of its own, because the host refuses a prompt submitted from inside a command such as/console refresh. - Known: a CARD whose 更新 has no
revcannot show that a continue changed nothing, so such a project is held only bycycleMaxHops.
console-status 0.20.2
- Plain Chinese in the pane. Wording that mixed Chinese with internal English terms was hard to read (
STALE 需處理的 broker:…). The pane, band, toasts, feed, tooltips and/consolereplies now say what is happening and what to do in plain Traditional Chinese. One word per idea:狀態卡for the STATUS CARD,對話for a Claude Code session (其他工作階段andsession 等你included),上下文for context,強度for effort,Codex 背景程式for the Codex broker,Codex 串接腳本for the companion script,結束碼for exit codes. The old-broker line now readsCodex 已更新,但背景程式還是舊版(PID …),派工會失敗;先關掉它:! for p in …and wraps instead of cutting off the command. Job states (running,blocked: …,queued) and kinds (continue,sync) show in Chinese, Codex quota windows read5 小時, credits點, and companion warnings are in Chinese. Commands, settings names, file names and model names stay as you type them. The executor digest attached to prompts names states the same way; the instructions sent to executors are unchanged.
console-status 0.20.1
- Every console can dispatch, per project. 0.20.0 let only one console dispatch at a time, and a second console only watched. You talk to different projects, or the same project, from several sessions, so the lock is now per project. Any console dispatches any project; the only new wait is for a project another console dispatched in the last two minutes, while its job may not show yet (one job per project, as before). Auto-sync is done by the console that dispatched the job, or by any console once that one stopped. The
改由這裡派工banner and/console takeoverare gone.
console-status 0.20.0
Making the overview trustworthy across many projects (2026-10-12), plus an auto-sync race reported from real use.
- Auto-sync no longer takes a project's thread from under a reply. A Codex task that ended on a request for permission counted as plain finished work, so auto-sync sent a
--resume-lastsync at once, and the reply sent in the same second failed withTask … is still running. Now auto-sync skips a job that ended asking the user, waits 60 seconds after a job ends, and drops the sync for good when new work starts on the project in the meantime. A Codex task whose last words are a question or a request for permission or a choice now shows as執行者在等你回覆, like a Claude one. - A CARD written only at the start of a job no longer counts as the result. Each dispatch gets a short code (
c-k3f9a2) in its prompt, to write as· jobin更新and in執行中while it works. A finished job whose code is still in執行中stays in 待同步, even though STATUS.md was saved after it started. Before, any save during the job (the executor's start note, an edit of your own) hid a result that never came. - No decision while an executor may be writing the CARD. ✎ 做決定 and
dare locked while the project has a job running; the card says so, and options picked meanwhile are kept for when it ends. A decision typed by hand for such a project tells the console not to write the CARD until the job ends. activation: alwaysleaves executors alone. It started the console in every session, including non-interactive ones and the background executors the console dispatched, each then polling and auto-syncing as another dispatcher. Those sessions now get the guard only.- One console dispatches at a time. Each console renews
console-lease.jsonbesideclaude-sessions.jsonon every refresh. A second console that finds a lease younger than 150 seconds only watches: no dispatch, no auto-sync, and a改由這裡派工button (or/console takeover). A lease left by a console that stopped is taken over by itself;/console offhands it back at once.
console-status 0.19.0
Fixes from the 2026-10-09 review of the dispatch flow.
- A Codex review is independent. A continue whose 下一步 starts with a review task's path already ran a Claude review in a new session, but a Codex review resumed the work's own thread with
--resume-last, so the code was reviewed with the context that wrote it. It now starts a new Codex thread (--fresh). The fix-up after it resumes the newest thread, the review's, which holds the findings; the work's progress is in STATUS, the task files and git. The skill no longer points tocodex-companion review, which is read-only and cannot set thereviewgate. - A review is not told the worker's conclusion. A review continue carried the executor digest like any continue, so it opened with the work session's own last words (for example "tests all pass"). A review now gets no digest and is told to judge from the task file, its own run of the acceptance and the diff.
- The executor digest follows the executor that did the latest work. It was read only from Claude's records. A Codex project showed
無紀錄, and one that used to run on Claude showed that old Claude session as its latest, on the project card and in every prompt about it. When the latest task is Codex's, the digest names that job, its status and time, and says to go by STATUS and git. A Codex project whose latest task fell back to Claude still reads the Claude session. - One rev rule everywhere. 0.9.5 changed the continue and sync prompts to "the rev read when the turn starts counts; stop only if it changed before the write". The STATUS template's CARD rules and the project-mode system prompt still said to stop whenever rev differs from the one last read, the rule that made resumed sessions stop on a false conflict. Both now say the same as the prompts.
console-status 0.18.1
- The sync model control says what it is. Beneath the pane title it reads
同步模型 haiku ▾instead of同步 haiku ▾, adds新 sessionwhen a sync will start a new session, and its choices line names the executor they are for (同步模型(claude)), since Claude and Codex each keep their own sync model and switching the global executor shows the other one.
console-status 0.18.0
- A cheaper model for 同步 STATUS, if you want one. A sync only writes the CARD and its history, so
dispatch.jsoncan now give it its own model and effort, per executor ("sync": { "claude": { "model": "haiku" }, "codex": { "model": "luna" } }), globally or per project. Nothing is set by default, and names are free text, so an account without those models keeps syncing exactly as before. Set it from the pane's new同步control or/console sync-model [claude|codex] <name>,/console sync-effort,/console sync-session. - A Claude sync on its own model runs in a new small session. Resuming the project's long session on another model would re-cache all of it at that model's price, so the sync starts fresh, reads STATUS.md, git and the executor digest, and is told to write only what they show. Codex keeps resuming unless
"session": "fresh"is set, since its next--resume-lastwould otherwise land on the sync's thread."session": "resume"keeps the old way. - It tells you, and falls back by itself. The accepted notice and the 同步 line name the sync model (
(用 haiku・新 session)). A sync model that fails to launch is retried at once with the normal model; one whose sync fails or writes nothing raises a toast. Either way, later syncs use the normal model until you set the sync model again. haikuis offered among the Claude model choices.
console-status 0.17.1
- A decision sent from the Tab suggestion carries its project. ✎ 做決定 selects the project, so the prompt it fills goes out with the project's context (STATUS path, CARD, Git, executor digest). Taking the 0.17.0 Tab suggestion
「<project>」決策:selected nothing, so the console got the answer without knowing where the project lives. A prompt that starts with「<project>」決策:for a project with a decision open now carries that project's context as if its row were selected.
console-status 0.17.0
- Reply to an executor from the console. A Claude executor that finished its turn on a question to you (
執行者在等你回覆) used to need you to switch to that session and attach. Its row now offers↩ 回覆執行者(keyrin the action menu, and the primary button of the 下一步 card): it fills the composer with/console reply <project>, you write the answer and press Enter, and the console resumes the session that asked (the same--bg --resumea sync of that row already used) with your words as the prompt, plus the CARD rules a continue carries. The reply counts as work, so its result is synced like a continue's. A session waiting on a permission prompt still needs attaching. The row reads執行者在等你回覆:↩ 回覆或同步. - Tab for the next step. With
suggestNext: on(new, default on) the way on waits in the empty prompt box as a dim suggestion, Tab to take:「<project>」決策:for a decision,/console reply <project>for an executor that asked,/console gate|sync <project>, else/console continue <project>for the first idle project with a next step. It is offered when the way on changes and costs no model call. Idea from next-steps in hamzafer/claude-code-mods (MIT); our own implementation, read from the CARD instead of asking a model. - Project actions as commands.
/console reply <project> <answer>and/console sync|continue|gate|verify <project>run the same actions as the buttons. A project is named by its full name or a unique first word. Sending/console continueis the confirmation, so it dispatches at once;verifyof a command not yet approved still asks for a second run.
console-status 0.16.0
- The cache hint knows about compaction, including Claude Code's idle compaction. Claude Code 2.1.286 can compact a long conversation on the one-hour cache while it sits idle, shortly before the cache expires (
Compacted while idle, before the prompt cache expired; rolled out by Claude Code, turned off with its ownidleCompaction: false, thresholdCLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS). The console's clock still described the context from before: the band went快取已冷 $1.60at the hour and a prompt on return warned of re-writing 214k tokens, when the next prompt only writes the summary. A compaction of the console session (idle,/compactor at the threshold; not a subagent's, not a precompute) now resets the clock to the summary's size: the band shows已壓縮 $0.12, the pane已壓縮 3m前 214k → 31k tokens・下則重寫約 $0.12, the feed對話已壓縮:214k → 31k tokens, and no cold-cache toast fires. When Claude Code does not report the size afterwards the chip is cleared until the next response. A cold read right after a compaction no longer teaches a five-minute TTL, and a reload whose transcript ends in a compaction does not seed the clock from the response before it.