OoO
|
d8f93df4ec
|
fix(metrics): 輸出 AI 自動化 baseline 指標
CD Pipeline / deploy (push) Successful in 1m35s
|
2026-04-30 10:32:43 +08:00 |
|
OoO
|
e73cd6e6a3
|
fix(stability): 補強 scheduler 例外記錄
CD Pipeline / deploy (push) Successful in 1m36s
|
2026-04-30 10:28:37 +08:00 |
|
OoO
|
72fa166729
|
fix(ai): 遷移 Ollama embedding 至 api embed
CD Pipeline / deploy (push) Successful in 1m46s
|
2026-04-30 10:24:15 +08:00 |
|
OoO
|
74d64092bc
|
fix(db): 收斂 DatabaseManager PostgreSQL 連線池
CD Pipeline / deploy (push) Successful in 1m35s
|
2026-04-30 10:08:31 +08:00 |
|
OoO
|
91ad98e621
|
feat(ai): 強化 ElephantAlpha NIM fallback
CD Pipeline / deploy (push) Successful in 1m48s
|
2026-04-30 09:33:39 +08:00 |
|
OoO
|
3193f1979d
|
縮短 CD rebuild 切換停機窗口
CD Pipeline / deploy (push) Failing after 1m6s
|
2026-04-30 09:25:49 +08:00 |
|
OoO
|
73561efa7a
|
強化 CD Gunicorn 掛載與 metrics 降噪
CD Pipeline / deploy (push) Successful in 9m26s
|
2026-04-30 09:13:36 +08:00 |
|
OoO
|
5a569d1e05
|
強化 CD 健康檢查重試
CD Pipeline / deploy (push) Successful in 1m32s
|
2026-04-30 08:58:22 +08:00 |
|
OoO
|
9dd5986077
|
修復 AI 自動化 Prometheus scrape
CD Pipeline / deploy (push) Successful in 1m26s
|
2026-04-30 00:24:40 +08:00 |
|
OoO
|
5a61c020e3
|
新增 AI 自動化 Grafana 儀表板
CD Pipeline / deploy (push) Has been cancelled
|
2026-04-30 00:06:24 +08:00 |
|
OoO
|
d5f4fd7198
|
加入 AI Smoke 每日摘要推播
CD Pipeline / deploy (push) Successful in 1m15s
|
2026-04-29 23:57:36 +08:00 |
|
OoO
|
10bbd55f5b
|
補齊 AI Smoke 趨勢管理
CD Pipeline / deploy (push) Successful in 1m13s
|
2026-04-29 23:54:23 +08:00 |
|
OoO
|
81159b5b3d
|
保存 AI Smoke 趨勢紀錄
CD Pipeline / deploy (push) Successful in 1m14s
|
2026-04-29 23:50:44 +08:00 |
|
OoO
|
cde8b0cd3e
|
新增 AI 自動化 Smoke Dashboard
CD Pipeline / deploy (push) Successful in 1m16s
|
2026-04-29 23:46:48 +08:00 |
|
OoO
|
e6a1c9d09f
|
補齊 AI 自動化可觀測性指標
CD Pipeline / deploy (push) Successful in 1m15s
|
2026-04-29 23:41:03 +08:00 |
|
OoO
|
d58e4d0d11
|
同步四 Agent AI 自動化治理紀錄
CD Pipeline / deploy (push) Successful in 1m10s
|
2026-04-29 23:36:23 +08:00 |
|
OoO
|
779b27f676
|
修復 P0 告警自癒鏈與測試收集
CD Pipeline / deploy (push) Successful in 9m39s
|
2026-04-29 22:37:20 +08:00 |
|
OoO
|
2550ab45b1
|
refactor(routes): 刪除模組化死碼開關
ADR-017 Phase 3f-1 dead-switch sprint;改為直接註冊 Blueprint,移除 USE_MODULAR_ROUTES/register_blueprints,並加入重複路由啟動自檢。
|
2026-04-29 21:26:58 +08:00 |
|
OoO
|
8b51d2d94f
|
fix(post-3.5c): config.py 新增 EMBEDDING_HOST 常數(C-2 部分達成)
餘震 C-2 局部完成:
- config.py 新增 EMBEDDING_HOST 常數(env: EMBEDDING_HOST → fallback HERMES_URL)
- 原計畫同步修 services/ollama_service.py:515,520 的 hardcoded fallback,
但 origin/main 4349db2 (feat: AiderHeal) 已主動移除整個
generate_embedding() 方法 — rebase 衝突解決時採納 origin 決定(--ours),
不重新引入已被刪除的方法
- IP 殘留 fix 自動隨方法刪除而消失;EMBEDDING_HOST 常數保留於 config 以
供未來若恢復 embedding 路徑時集中化使用
ADR-008 集中化原則仍然完整:所有殘留的 IP 硬編碼已都改為 config 讀取
(services/nemoton_dispatcher_service.py:287 已於前個 commit 處理)。
|
2026-04-28 12:15:59 +08:00 |
|
OoO
|
5340475570
|
fix(post-3.5c): hermes timeout 雙標統一 + 補 keep_alive
餘震 A — 昨天 Hermes timeout 真因(incident 核心):
- services/hermes_analyst_service.py:158 硬編碼 timeout=10,與 :406 用
HERMES_TIMEOUT=120 雙標;payload 也沒帶 keep_alive,被別模型擠下後
冷啟動 30+s 必中 timeout
- HERMES_TIMEOUT 從檔內常數提升至 config.py 集中管理(ADR-008)
- 兩個 payload (intent/batch) 都補 keep_alive=24h(ADR-012)
- intent 路徑 timeout 從 10s 改用 HERMES_TIMEOUT;keep_alive 確保熱駐留時
實測仍 < 10s,不會撐到 120s 上限
檔案:
- config.py: 新增 HERMES_TIMEOUT 常數
- services/hermes_analyst_service.py: 移除檔內 HERMES_TIMEOUT、新增
HERMES_KEEP_ALIVE、補 payload keep_alive、line 158 timeout 統一
|
2026-04-28 12:15:59 +08:00 |
|
ogt
|
b9fe98f591
|
refactor: centralize config — HERMES_URL, SSH params, validate_critical_config()
- config.py: add HERMES_URL (default 192.168.0.111:11434), SSH jump params, validate_critical_config()
- services/hermes_analyst_service.py: remove hardcoded HERMES_URL, import from config
- app.py: call validate_critical_config() on startup, log warnings for optional missing vars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-27 21:27:47 +08:00 |
|
ogt
|
f59b23f969
|
security: P0 修復 S1-S5 — 移除所有硬編碼密碼與 SQL Injection 漏洞
S1: config.py — LOGIN_PASSWORD 移除硬編碼預設值 0936223270,改 fail-fast
S2: config.py — SECRET_KEY 移除弱預設值,無值或預設值時 sys.exit(1)
S3: services/user_service.py — create_initial_admin 改讀 INITIAL_ADMIN_PASSWORD env
S4: app.py — 匯入流程 table_name 正規表達式白名單驗證,date_list 格式驗證
S5: database/manager.py — ALLOWED_SALES_TABLES frozenset 白名單,日期改參數化查詢
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-27 20:34:15 +08:00 |
|
ogt
|
dc6597d36b
|
[V10.4-D] 環境變數修復:POSTGRES_PASSWORD 注入 + fail-fast 守衛
CD Pipeline / deploy (push) Failing after 1m6s
修復 H7(排程器/Telegram Bot 容器中 POSTGRES_PASSWORD 為空):
- docker-compose.yml: 移除 scheduler/telegram-bot 的 \${POSTGRES_*} environment
插值行,僅保留 env_file: .env(與 188 主機已上線版本同步)
- config.py: USE_POSTGRESQL=true 時,POSTGRES_PASSWORD 空值立即 raise ValueError,
避免無聲連線失敗(原本只在執行期出現 auth error)
- .env.example: 新增 GEMINI_API_KEY / GEMINI_MODEL / OPENCLAW_MODEL,
附 Gemini 2.0 Flash EOL 2026-06-01 警告
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-25 01:43:43 +08:00 |
|
ogt
|
0099543c05
|
fix(security): 全域健檢 — 40 項安全/Bug/品質修復
CD Pipeline / deploy (push) Failing after 5m18s
🔴 Critical
- auto_heal_service: 補 import re + sqlalchemy.text + 修正 orchestrator 變數名
+ autoheal_playbook→playbooks 表名 + _alert_and_store cooldown 修復
- aider_heal_executor: shell injection 改 shell=False + list 參數
- docker-compose: DISABLE_LOGIN 改 env var + 移除密碼 fallback + POSTGRES_HOST 修正
- app.py: /api/backup /api/run_task 等 6 個管理 API 加 @login_required
- config.py + pg_sync + e2e_test: 移除 wooo_pg_2026 hardcoded 密碼 fallback
- pg_backup.sh: 移除 TELEGRAM_TOKEN= 中間變數,直接用 $TELEGRAM_BOT_TOKEN
- migration 014: trigger_pattern→match_pattern + 補 error_type NOT NULL 欄位
🟡 High
- telegram_bot_service: str(e) 改通用訊息 + session try/finally + 移除 pa:/pr: 舊 callback
- run_scheduler: ElephantAlpha thread 死亡監控 + 自動重啟 + Telegram 告警
+ agent_context 03:30 TTL 定時清理任務
- openclaw_learning_service: build_rag_context 兩路徑加 .limit(200)
- hooks: commit-quality + momo-prod-guard 空 catch 改 stderr+exit(1)
- scripts/code_review: auto_yes 預設改 false
- db_backup_service: PGPASSWORD 透過 env dict 傳遞
📦 Migrations
- 013_autoheal: 修正建表順序 playbooks→incidents(外鍵前向引用)
- 018_add_missing_indexes: heal_logs/incidents 外鍵索引 + cleanup_expired_agent_context()
🟢 Infrastructure
- requirements.txt: 加版本下界 Flask>=2.3 SQLAlchemy>=1.4 等
- cd.yaml: 新增 run_scheduler.py + run_telegram_bot.py 監聽路徑
- .gitignore: insert_playbook_local.py 加入忽略
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-22 01:12:23 +08:00 |
|
ogt
|
1b4f3a7bbe
|
feat: EwoooC 初始化 — 完整專案推版至 Gitea
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml)
- 部署模式: rsync Python 檔案至 188 → docker restart (volume mount)
- Dockerfile/requirements 變動時自動重建 Docker image
- 部署通知: Telegram (開始/成功/失敗)
- 健康檢查: https://mo.wooo.work/health (最多 5 次重試)
- 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-19 01:21:13 +08:00 |
|