Files
Developer caadd59441 chore: archive 15 completed OpenSpec changes
Move the following audited-and-implemented changes into
openspec/changes/archive/2026-06-12-completed-changes-archive/:

- backend-frontend-refactoring
- config-profile-git-mounts
- config-profile-includes-ui
- config-profile-multi-repo-mounts
- container-monitoring-notifications
- git-mount-url-validation
- home-path-expansion
- mobile-terminal-ux
- mount-specificity-ordering
- notification-center
- persistent-terminal-sessions
- session-list-overhaul
- ssh-key-mounting
- terminal-fullscreen-unified-header
- tool-session-progress-and-updates

Also regenerated .pi-map*.md files for openspec/changes so the
remaining active changes (multi-session-terminal-ux, reorganize-long-files,
working-copies, workspace-first-ui) reflect the new layout.
2026-06-12 14:26:55 +00:00

2.3 KiB

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