Releases: YJ-Software/mission-control-center
Release list
2026.7.1-2-v0.3.79
- feat(cs): outbound reply filter in shadow mode — flags openclaw noise (model-fallback banners, reasoning residue, tool/provider errors, internal paths) in AI replies to customers
- Shadow mode only records; replies are never altered or blocked. It hangs off the existing cs-event mirror, so it adds no latency to the send path and needs no plugin change or gateway restart
- New Customer Service → Settings card: shadow toggle, hit counts, per-rule tallies, and a per-hit diff of what the customer received vs what an enforcing filter would have sent
- 'enforce' mode is stored but not yet settable — enforcing requires the plugin's message_sending hook to await a verdict
2026.7.1-2-v0.3.78
- docs(morning-report): social 晨報預設模板新增可選的 TweetClaw 來源流程。若 OpenClaw 已安裝 TweetClaw plugin 則優先用它讀取公開 X/Twitter 資料(僅限讀取與引用,明確禁止發文/回覆/按讚/轉推/追蹤/私訊/建立 monitor),未安裝或未設定 credentials 時自動 fallback 回原本的 bird CLI
- docs(readme): 中英文 README 的晨報功能清單補上 TweetClaw 來源說明
- docs(readme): 修正 acknowledgements 中失效的 x11vnc 連結(karlrunge.com → github.com/LibVNC/x11vnc)
感謝 @kriptoburak 貢獻(#1)。
2026.7.1-2-v0.3.77
- fix(upgrade): 三處更新檢查(openclaw、opencli、MCC 自身)改用同一份版本解析與比較邏輯。原本 openclaw-check 用 parseInt 逐段比,parseInt("1-2") 與 parseInt("1-3") 都等於 1,導致 2026.7.1-2 → 2026.7.1-3 這類 build 後綴更新永遠不會被偵測到
- fix(upgrade): 版本讀取失敗時一律回報「無更新」,不再以字串不相等當作有更新(該寫法無法區分升級與降級)
- fix(build): deploy/mcp 複製時排除 .venv / pycache 等本機產物。在本機跑過這些 MCP server 的建置機器上,.venv 會讓 tarball 從 25MB 膨脹到 148MB 並觸發 v0.3.76 的大小上限
- fix(build): tarball 不再夾帶 .claude/ 與 .github/(前者會把內部發版流程文件送到客戶端)
2026.7.1-2-v0.3.76
- feat(morning-report): 新聞來源預設清單加入 GitHub Trending(論文與新品群組)
- fix(build): 釘住 Next.js file tracing root — 專案外層出現 package.json 時,NFT 會把整個 repo(含 dist/ 與 data/)複製進 standalone,release build 腳本的 strip 清單會全部失效
- fix(build): tarball 超過 120MB 直接中止 build,不再靜默產出異常肥大的發布檔
- test: 檢查每個 preset 的描述在 zh-TW / zh-CN / en 都存在,缺一個會讓來源下拉選單整個 render 失敗
2026.7.1-2-v0.3.75
- fix(ui): 通知面板打開後被頁面卡片蓋住 — header 的 backdrop-blur 會自成 stacking context,補上 z-40
- fix(ui): 通知 toast 改用 portal 掛到 body — 原本困在 header 的 backdrop-filter containing block 裡,bottom-4 對到的是 48px 的 header 而非視窗
- test: 新增 header stacking 回歸測試
2026.7.1-2-v0.3.74
修正(手機版面)
本次修正皆僅影響窄螢幕(未滿 768px),桌面版面不受影響。
-
對話頁的側邊選單在手機上不會收合:對話頁的「專注模式」以切換 Tailwind 的
hidden類別來隱藏側邊選單與標題列,而側邊選單本身即以該類別實作響應式收合(hidden md:flex)。關閉專注模式時會一併移除該類別,且此分支於每次掛載時都會執行——因此只要開啟對話頁,側邊選單在窄螢幕下便失去隱藏依據,覆蓋於內容之上並將對話區壓縮至僅餘數字元寬度。專注模式改用專屬類別,使「因螢幕寬度而隱藏」與「因使用者操作而隱藏」互不影響。
-
系統紀錄的日誌內容在手機上無法檢視:該頁為固定雙欄配置,左側工作清單固定 288px 且不縮放,右側日誌面板因而被推出畫面且無法捲動至。
窄螢幕改為主從切換:預設顯示工作清單,點選項目後切換至該項日誌並提供返回操作;768px 以上維持雙欄。
-
分頁列在窄螢幕被裁切:第二大腦、Wiki、Obsidian、NotebookLM、瀏覽器、系統紀錄與 Agents 等頁面的分頁列未處理水平溢出,分頁標籤超出容器後遭裁切且無法捲動存取。已補上水平捲動,並避免分頁標籤遭壓縮換行。
2026.7.1-2-v0.3.73
修正
-
主題來源模式「來源+搜尋」現在真的會兩者都做:此模式先前的指示為「若數量不足或品質不佳,再自行搜尋補充」。由於是條件句,模型在判定既有素材已足夠時便完全不進行搜尋——實際觀察連續兩日皆為 100% 引用自 RSS 候選、搜尋次數為零,該主題的內容因而完全受限於來源關鍵字的涵蓋範圍。
現改為無條件要求搜尋,並明確排除該例外(「即使以上素材看起來已經足夠,仍然要搜尋」),同時說明原因:預先蒐集的來源通常僅來自少數關鍵字,存在明顯盲區。
修正後同一主題的觀測結果:引用來源中 25% 來自模型自行搜尋(先前為 0%),工具呼叫次數由 8 次增為 21 次(純搜尋模式為 13 次),總 token 用量幾乎不變,執行時間增加約 40 秒。新增的來源包含法律事務所與綜合媒體等不會出現在科技類關鍵字快訊中的角度。
模式名稱亦一併調整為「來源+搜尋(兩者都要)」,原名稱「來源優先,不足再搜尋」與修正後的行為不符。
此變更僅影響系統產生的 prompt 區塊,不會改動任何使用者自訂的模板。
2026.7.1-2-v0.3.72
新功能
-
RSS 新聞來源:晨報新增「新聞來源」分頁,可接上 Google 快訊或任何 RSS/Atom 來源。系統依排程(預設每 2 小時)將文章抓入候選池,並自動與近期已引用的連結去重。內建 28 個經實際抓取驗證的來源可直接選用,涵蓋國際新聞、財經、中文媒體、論文與加密貨幣,每項均附簡短說明。
Google 快訊的 RSS 網址無需登入即可讀取,等同憑證:清單一律遮蔽顯示,完整網址僅於編輯單一來源時回傳,且不會寫入任何 prompt 檔。
-
主題來源模式:每個主題可各自綁定來源並選擇 agent 的自由度——自行搜尋(預設,等同既有行為)、來源優先不足再搜尋、或僅使用指定來源。實測綁定來源後,該主題的工具呼叫由 13 次降至 8 次、執行時間縮短約 30 秒。
-
模板版本歷史:所有可編輯的模板(各主題 prompt、全域格式、訊息與腳本模板)每次儲存皆保留版本,可比對差異並載回舊版。「還原預設」此類一次覆寫所有主題的操作同樣可復原;還原本身亦記錄為新版本,因此還原也可再還原。
-
主題未產出時主動通知:某主題未產出內容時,過去僅於報告中留下一行提示,需自行閱讀方能察覺。現在會同時推送至儀表板通知與操作者頻道,並列出缺少的主題。
改進
-
新聞去重改以資料庫帳本記錄:報告實際引用的每個連結皆寫回帳本,預設回溯 14 天(可經
dedupDays調整)。比對前先正規化網址——解開 Google 快訊轉址包裝、移除追蹤參數——因此同一篇文章以不同網址形式出現亦可辨識。先前的做法以正規表示式掃描暫存目錄中前一日的報告檔,僅回溯一日、暫存檔清理後即失效,且比對原始字串。
升級後首次產生 prompt 時會自動讀取既有報告檔回填帳本,因此升級當日的去重記憶不會中斷。
修正
- 晨報主題不再因模型設定失效而靜默消失:同步 cron 工作時會比對 OpenClaw 的模型允許清單,模型不被接受時改用預設模型並記錄原因。未設定或空的允許清單仍視為不限制。
onwatch/模板編輯器等下拉選單的群組標題不再顯示為白色空白列:<option>與<optgroup>於多數瀏覽器由作業系統繪製並忽略 CSS class,改以行內樣式指定顏色。- RSS 內容解析修正:不再於中文標題與摘要插入多餘空白;補上數字字元參考(如
’)的解碼。 - 來源抓取限定公開網路位址:預覽、抓取與儲存來源時皆會解析並拒絕私有網段、迴環位址與雲端中繼資料端點,轉址逐跳重新驗證。
2026.7.1-2-v0.3.71
修正
-
晨報主題不再因為模型設定失效而靜默消失:若某個主題(或全域
cronModel)指向的模型不在 OpenClaw 的agents.defaults.models允許清單內——例如該 provider 已從openclaw.json移除——OpenClaw 會直接拒絕整個 cron job。該次執行在排定的當秒失敗且完全沒有進行任何工作,該主題於報告中僅留下「⚠️ 此段落尚未生成」,而報告與 Podcast 仍照常產出,因此除非有人實際閱讀該頁面,否則不會察覺。現在於同步 cron job 時即會比對允許清單,模型不被接受時改用 OpenClaw 的預設模型並記錄替換原因。未設定或空的允許清單仍視為「不限制」(若解讀為「全部禁止」,將導致從未設定允許清單的環境所有工作被改寫);且僅在替代模型本身也通過驗證時才替換,避免將問題轉移到另一個同樣無法執行的模型。
-
主題未產出時會主動通知:
finalize會將未產出的主題推送至儀表板通知(以日期去重)並透過 OpenClaw 推播至操作者頻道。兩者皆為 best-effort,且在報告發布之後才執行,因此通知失敗不會影響已完成的報告。此機制不經由 finalize 排程工作的通知範本,故已自訂該範本的環境同樣能收到。
2026.7.1-2-v0.3.70
修正
-
「OpenClaw 可更新」提示不再對已是最新版的機器誤報:偵測已安裝版本時,用來擷取版號的樣式是
/OpenClaw\s+([\d.]+)/,而[\d.]這個字元類不含連字號。openclaw --version輸出OpenClaw 2026.7.1-2 (…)時,比對在連字號處中止,擷取到的是被截斷的2026.7.1。由於是否有更新是以
installed !== latest字串比對判定,截斷後的版號永遠不等於 npm 上的2026.7.1-2,導致標頭的「OpenClaw 可更新」提示在已經是最新版的機器上持續顯示,按下更新也只是重新安裝同一版本。build suffix 是 OpenClaw 發行版的常態(
-2即目前穩定版),因此所有已升級到帶 suffix 版本的環境都會受影響。現改為保留完整版號(含-2、-beta.3等後綴)。同源問題一併修正:
/api/upgrade/openclaw-check先前回報的已安裝版本同樣被截斷;OpenCLI 偵測器也帶有相同的潛在問題(prerelease 標籤會觸發)。