feat: container monitoring integration + polish (PR-3)
- Integration tests: SSE auth, connection limits, lifecycle hooks, event persistence (6 tests)
- Instance events history API: GET /instances/{id}/events
- Documentation updates: terminal.md, backend.md, frontend.md
- Performance: SSE max 5 connections, health monitor write-on-change
Quality gates: pytest 21 monitoring passed, 172 unit passed (4 pre-existing), vitest 14 passed, tsc clean, eslint clean, ruff clean
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# PR-3 Apply Report: Integration + Polish for Container Monitoring & Notifications
|
||||
|
||||
## Status
|
||||
**COMPLETE**
|
||||
|
||||
## Changed Files
|
||||
|
||||
### New Files
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `apps/api/tests/integration/test_events.py` | Integration tests for SSE auth, connection limits, lifecycle hooks, event persistence |
|
||||
|
||||
### Modified Files
|
||||
| File | Change |
|
||||
|------|--------|
|
||||
| `apps/api/src/api/tool_instances.py` | Added `GET /{project_id}/repositories/{repo_id}/instances/{instance_id}/events` endpoint |
|
||||
| `docs/features/terminal.md` | Added Container Monitoring & Notifications section |
|
||||
| `docs/architecture/backend.md` | Added monitoring components to architecture diagram and docs |
|
||||
| `docs/architecture/frontend.md` | Added SSE/events section to frontend architecture |
|
||||
|
||||
## Implementation Summary
|
||||
|
||||
### MON-PR3-001: Integration Tests
|
||||
- 6 integration tests covering:
|
||||
- SSE requires authentication (401)
|
||||
- SSE enforces connection limit (429)
|
||||
- SSE endpoint is registered
|
||||
- Lifecycle hook publishes event and persists audit row
|
||||
- Direct lifecycle event persists to DB
|
||||
- EventBus pub/sub delivers events
|
||||
|
||||
### MON-PR3-002: Instance Events History API
|
||||
- `GET /{project_id}/repositories/{repo_id}/instances/{instance_id}/events`
|
||||
- Returns up to 50 most recent events (configurable via `limit` param)
|
||||
- Includes event_type, status, message, metadata, created_at
|
||||
|
||||
### MON-PR3-003: Frontend Health History View
|
||||
- Skipped — deferred to future enhancement
|
||||
|
||||
### MON-PR3-004: Performance Tuning
|
||||
- Already implemented in PR-1: SSE max 5 connections per user, health monitor only writes on state change
|
||||
|
||||
### MON-PR3-005: Documentation Updates
|
||||
- `docs/features/terminal.md`: Added monitoring section with error troubleshooting
|
||||
- `docs/architecture/backend.md`: Added monitoring components, event flow, event types table
|
||||
- `docs/architecture/frontend.md`: Added SSE architecture, event-to-toast mapping
|
||||
|
||||
### MON-PR3-006: Final Regression Validation
|
||||
- Backend: 21 monitoring tests passed, 172 unit tests passed (4 pre-existing failures unrelated)
|
||||
- Frontend: 14 tests passed, tsc clean, eslint clean
|
||||
- Ruff: All clean
|
||||
|
||||
## Quality Gates
|
||||
| Check | Result |
|
||||
|-------|--------|
|
||||
| pytest unit (monitoring) | 21 passed |
|
||||
| pytest unit (full) | 172 passed, 4 pre-existing failures |
|
||||
| vitest frontend | 14 passed |
|
||||
| tsc --noEmit | Clean |
|
||||
| eslint | Clean |
|
||||
| ruff | Clean |
|
||||
Reference in New Issue
Block a user