docs: update DEVELOPMENT_LOG for v0.0.4 collector work

This commit is contained in:
Ripley 2026-05-10 20:16:42 -05:00
parent 3140dac7cd
commit 85e805c388
1 changed files with 30 additions and 0 deletions

View File

@ -14,6 +14,36 @@
## Completed Work ## Completed Work
### v0.0.4 — Gateway Data Collection Service
**Status:** ✅ COMPLETED
**Date:** 2026-05-11
**Agent:** Neo (build) + Ripley (fix/verify/commit)
**Files Created:**
- `src/backend/app/services/monitoring/__init__.py` — Package init, exports GatewayCollectorService
- `src/backend/app/services/monitoring/gateway_collector.py` — Background asyncio collector (544→510 lines after fixes)
- `src/backend/app/services/monitoring/models.py` — Pydantic schemas for RPC response parsing
**Files Modified:**
- `src/backend/app/main.py` — Added asyncio import, collector startup/shutdown in lifespan
- `src/backend/app/models/monitoring.py` — Fixed FK definitions (Column(UUID, ForeignKey) → Field(foreign_key=))
- `src/backend/app/models/alert_rules.py` — Fixed FK definitions, added missing gateway_id field
**Bugs Fixed by Ripley:**
- Duplicate `select` imports (sqlalchemy + sqlmodel)
- Removed OpenClawDBService inheritance (collector uses session factory pattern)
- Removed unused imports (datetime, timezone, UUID, TYPE_CHECKING)
- Fixed `Column(UUID, ForeignKey(...))` — Python uuid.UUID is not a SQLAlchemy type
- Added missing `gateway_id` field to AlertRule model
- Cleaned up runtime imports in lifespan (moved to module-level)
**Verification:**
- Docker build passes
- Backend starts successfully (logs `app.lifecycle.gateway_collector.no_gateways`)
- Collector class imports correctly in container
---
### v0.0.2 — Base Platform Setup ### v0.0.2 — Base Platform Setup
**Status:** ✅ COMPLETED **Status:** ✅ COMPLETED
**Date:** 2026-05-10 **Date:** 2026-05-10