OG T
29ceb786ca
feat(web): 全局戰情室顯示真實 AI 決策鏈
...
問題:
- ThinkingTerminal 使用 DEMO_DECISION_CHAIN 假數據
- 用戶無法看到 OpenClaw AI 的真實推理過程
修復:
- 新增 convertToDecisionChain() 轉換 API 格式
- 從 incident.decision.proposal_data 提取真實 AI 資料
- 顯示: 決策引擎來源、推理過程、建議動作、信心分數
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-23 23:17:52 +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
b0302329f4
fix(web): Pass decision prop to DualStateIncidentCard
...
Root cause: mapToDualState() was missing decision field,
causing Y/n buttons to be permanently disabled.
Now correctly passes incident.decision to the card component.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-23 13:54:42 +08:00
OG T
7db5108a1f
feat(web): Phase 7.0 minimalist 5-pillar navigation
...
- Refactor sidebar to Nothing.tech visual compliance
- Add defensive route stubs for /authorizations, /knowledge-base, /settings
- Dynamic badge for pending approvals count
- Ultra-minimal borders (0.5px), no shadows
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-23 13:02:21 +08:00
OG T
be8ed1f7ba
fix(web): resolve interface mismatch + add defensive null checks
...
- P0/P1/P2 now map to 'alert' status (was P0/P1 only)
- Tier mapping: P0=Tier3, P1=Tier2, P2=Tier1
- Added null/undefined guards in mapToDualState()
- Optional chaining on incidents array access
- Safe fallback for missing serviceName, message, timestamp
Fixes frontend warroom showing no cards despite API returning data.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-23 12:17:58 +08:00
OG T
cb5d0ecfe4
feat(phase-6.4g-6.5b): API Synaptic Integration + Dual-State WarRoom UI
...
Phase 6.4g (API 突觸對接):
- lewooogo-brain dependency binding in apps/api/pyproject.toml
- POST /api/v1/incidents/{id}/propose route (proposals.py)
- Guardrails integration (8/8 tests passed)
Phase 6.5a (視覺皮層建置):
- DualStateIncidentCard.tsx with Nothing.tech visual compliance
- Ping radar animation for alert state
- Tier-based decision layer UI (AI 執行中 / 等待親核)
Phase 6.5b (神經網路串接):
- Main warroom page integration (page.tsx)
- IncidentResponse → DualState mapper function
- Empty state: "系統穩定。0 活躍異常。"
Tests:
- test_guardrails.py (8/8)
- test_incident_engine.py (6/6)
- test_skill_loader.py (6/6)
- Frontend build: 0 errors
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-23 11:58:28 +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