OG T
|
ef54cf46c9
|
fix(api): 修復 mypy 類型錯誤 - Incident 欄位補齊
|
2026-03-24 10:48:15 +08:00 |
|
OG T
|
ec7e45d538
|
fix(api): 修復 Incident-Approval 狀態同步 BUG
🔴 P0 核心功能修復:
問題: 審核後頁面重整,Y/n 按鈕重複出現
根因: resolve_incident_after_approval 在 Redis 缺失時靜默跳過
修復:
1. proposal_service.py - 處理 Redis 缺失情況
2. approvals.py - 添加詳細日誌追蹤
3. 設定 resolved_at 時間戳
防禦性增強:
- 日誌記錄 metadata 內容
- 記錄 resolve 成功/失敗狀態
- 警告無 incident_id 的情況
長期規範:
- 新增 feedback_incident_approval_sync.md 記憶
- 更新 HARD_RULES.md API 路徑規範
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-24 10:39:22 +08:00 |
|
OG T
|
6f049877fc
|
fix(lint): ruff auto-fix + lewooogo-core src 加入 git
- Python: ruff --fix 修復 280 個 lint 錯誤
- lewooogo-core: src/ 目錄未追蹤,導致 CI eslint 失敗
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 23:51:37 +08:00 |
|
OG T
|
f78aab8b2a
|
fix(api): DecisionToken 狀態同步 (Y/n 持久化修復)
根本原因:
- resolve_incident_after_approval 只更新 Incident.decision.state
- 沒有更新獨立儲存的 DecisionToken (decision:{token} key)
- 導致下次 poll 時 get_or_create_decision 返回 READY 狀態的舊 token
- 前端繼續顯示 Y/n 按鈕
修復:
- 在 resolve_incident_after_approval 中同時更新 DecisionToken 狀態為 COMPLETED
- 確保整個決策鏈路狀態一致
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 23:46:21 +08:00 |
|
OG T
|
c8558cda9e
|
fix(api): resolve 時 DB 記錄不存在視為成功
根因: Incident 可能因 DB 寫入失敗只存在於 Redis
修復: 只要 Redis 更新成功就算成功 (API 只讀 Redis)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 23:09:46 +08:00 |
|
OG T
|
d60cb54c08
|
fix(api): resolve_incident_after_approval 使用直接更新邏輯
原因: 透過 _persist_incident 間接更新失敗
修復: 改用直接 Redis + DB 更新 (與 debug endpoint 相同邏輯)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 22:31:18 +08:00 |
|
OG T
|
03ca124967
|
fix(api): _persist_incident 新增顯式 commit + 追蹤日誌
根因: DB 變更未被 commit,導致 Incident 狀態更新不持久化
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 22:02:00 +08:00 |
|
OG T
|
ac3bf97920
|
fix(api): 簽核後更新 Incident 狀態為 RESOLVED
根因: 簽核成功後 Incident.status 未更新,導致刷新頁面後 Y/n 按鈕重現
修復:
- proposal_service.py: 新增 resolve_incident_after_approval() 方法
- approvals.py: sign_approval 成功後呼叫更新 Incident 狀態
- 使用 metadata.incident_id 反查關聯的 Incident
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 21:37:50 +08:00 |
|
OG T
|
7478dc0254
|
feat(phase6-9): Complete modular architecture and Agent Teams
Phase 6.4 - Modular Architecture:
- Add lewooogo-brain adapters for LLM providers
- Add lewooogo-data dual memory (Redis + PostgreSQL)
- Implement consensus engine for multi-agent decisions
- Add incident memory service for historical context
Phase 9 - Agent Teams (Claude Agent SDK):
- Add base agent class with Claude Sonnet 4 integration
- Implement action planner, blast radius, and security agents
- Add agent API endpoints and proposal workflow
- Integrate ADR-009 OpenClaw Agent Teams architecture
DevOps & CI/CD:
- Add GitHub Actions CI/CD workflows (ci.yaml, cd.yaml)
- Add pre-commit hooks and secrets baseline
- Add docker-compose for local development
- Update Kubernetes network policies
Frontend Improvements:
- Add auto-healing error boundary component
- Update i18n messages for agent features
- Enhance dual-state incident card with execution feedback
Documentation:
- Add 7 ADRs covering MCP, design system, architecture decisions
- Update ARCHITECTURE_MEMORY.md with modular design
- Add GLOBAL_RULES.md and SOUL.md for project identity
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 18:40:36 +08:00 |
|
OG T
|
141df533cc
|
feat(api): Phase 6.4 LLM-based proposal generation with cache
- Add _call_with_cache wrapper in OpenClaw (Redis-based LLM cache)
- Add generate_incident_proposal method for incident analysis
- Integrate ProposalService with OpenClaw LLM
- Fallback to template-based proposals if LLM fails
- Include LLM metadata (provider, confidence, cache status) in proposals
憲法條款: 必須使用快取保護算力資源,嚴禁無快取裸奔調用
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2026-03-23 01:33:46 +08:00 |
|
OG T
|
196d269b92
|
feat: add all application source code
- apps/api: FastAPI backend with Dockerfile
- apps/web: Next.js frontend with Dockerfile
- apps/sensor: Signal collection agent
- packages: shared packages
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-03-22 18:57:44 +08:00 |
|