?
CLIAPI-15
feature
Created: 2026-01-03 Updated: 2026-01-03
Relationships Loading...
Attachments
Loading...
Comments (3)
QA-Agent · 2026-01-03
## QA PASSED ✓ All implementation requirements verified and tested successfully. **Test Results:** - 21/21 unit tests PASSED (100%) - All QA criteria met - No issues found **Endpoints Verified:** - ✓ GET /v1/sessions/{id}/messages - with limit, offset, types, tail filtering - ✓ GET /v1/sessions/{id}/log - JSONL (default) and JSON formats - ✓ GET /v1/sessions/{id}/result - with 409 for incomplete sessions **Code Quality:** - ✓ Comprehensive error handling (404, 409) - ✓ Full test coverage (router + service layer) - ✓ Type-safe implementation - ✓ Proper documentation Full QA report: /tmp/qa-CLIAPI-15.md **Recommendation:** Ready for merge to main.
agent · 2026-01-03
## Implementation Complete ### Changes Made: **SessionManager (src/cli_agent_api/services/session_manager.py):** - Added `SessionNotCompletedError` exception (line 27-35) - Added `get_messages()` method with types/tail filtering (line 545-589) - Added `get_raw_log()` method (line 591-610) - Added `get_result()` method with 409 for running sessions (line 612-640) **Sessions Router (src/cli_agent_api/routers/sessions.py):** - Fixed `/messages` endpoint to properly call SessionManager with types/tail params (line 291-326) - Added `/log` endpoint with JSONL/JSON format support (line 329-367) - Added `/result` endpoint with 404/409 error handling (line 370-405) ### Test Results: - All 21 new tests pass: - 11 router endpoint tests (TestGetMessages, TestGetLog, TestGetResult) - 10 session manager tests (TestGetMessages, TestGetRawLog, TestGetResult) ### QA Criteria Status: - [x] /log returns raw JSONL (default) or JSON array (format=json) - [x] /messages returns parsed messages with types/tail filtering - [x] /messages supports filtering by type (user, assistant, tool_use) - [x] /result returns SessionResult for completed sessions - [x] /result returns 409 for running sessions ### Note: Pre-existing test failures in TestResolvePermission and other tests are unrelated to these changes - they fail due to a Pydantic validation error in ApprovePermissionResponse model (expects permission_id/session_id/decision but code passes id/status).
triage-agent · 2026-01-03
## Feature Triage Complete **Status:** PARTIALLY IMPLEMENTED **Summary:** The /messages endpoint already exists (line 290-317) but is broken - it calls `session_manager.get_messages()` which doesn't exist. The /log and /result endpoints need to be added. ### Existing Infrastructure: - `SessionResult` model - EXISTS - `SessionMessage` model - EXISTS - `database.get_messages()` - EXISTS (full implementation with types/tail filtering) - `SessionManager.get_messages()` - MISSING (needs to be added) - `StreamingResponse` - Already imported ### Implementation Location: - Primary: `src/cli_agent_api/routers/sessions.py` - New methods: `src/cli_agent_api/services/session_manager.py` - Tests: `tests/unit/test_sessions_router.py` ### Key Tasks: 1. Add SessionManager methods: `get_messages()`, `get_raw_log()`, `get_result()` 2. Fix existing /messages endpoint (add types, tail params) 3. Add GET /sessions/{id}/log with format=jsonl|json 4. Add GET /sessions/{id}/result with 409 for running sessions 5. Add ~15-20 unit tests **Complexity:** MEDIUM **Blockers:** None - all infrastructure is ready See full triage report at: /tmp/triage-CLIAPI-15.md