mirror of
https://github.com/azaion/ai-training.git
synced 2026-04-22 22:46:35 +00:00
Refactor task management structure and update documentation
- Changed the directory structure for task specifications to include a dedicated `todo/` folder within `_docs/02_tasks/` for tasks ready for implementation. - Updated references in various skills and documentation to reflect the new task lifecycle, including changes in the `implementer` and `decompose` skills. - Enhanced the README and flow documentation to clarify the new task organization and its implications for the implementation process. These updates improve task management clarity and streamline the implementation workflow.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# Async Detection & SSE Streaming Tests
|
||||
|
||||
**Task**: AZ-142_test_async_sse
|
||||
**Name**: Async Detection & SSE Streaming Tests
|
||||
**Description**: Implement E2E tests verifying async media detection initiation, SSE event streaming, and duplicate media_id rejection
|
||||
**Complexity**: 3 points
|
||||
**Dependencies**: AZ-138_test_infrastructure
|
||||
**Component**: Integration Tests
|
||||
**Jira**: AZ-142
|
||||
**Epic**: AZ-137
|
||||
|
||||
## Problem
|
||||
|
||||
Async media detection via POST /detect/{media_id} must return immediately with "started" status while processing continues in background. SSE streaming must deliver real-time detection events to connected clients. Duplicate media_id submissions must be rejected with 409.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Async detection returns immediately without waiting for processing
|
||||
- SSE connection receives detection events during processing
|
||||
- Final SSE event signals completion with mediaStatus "AIProcessed"
|
||||
- Duplicate media_id correctly rejected with 409 Conflict
|
||||
|
||||
## Scope
|
||||
|
||||
### Included
|
||||
- FT-P-08: Async media detection returns "started" immediately
|
||||
- FT-P-09: SSE streaming delivers detection events during async processing
|
||||
- FT-N-04: Duplicate media_id returns 409
|
||||
|
||||
### Excluded
|
||||
- Video frame sampling details (covered in video tests)
|
||||
- SSE queue overflow behavior (covered in resource limit tests)
|
||||
- Annotations service interaction (covered in resilience tests)
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
**AC-1: Immediate async response**
|
||||
Given an initialized engine
|
||||
When POST /detect/{media_id} is called with config and auth headers
|
||||
Then response arrives within 1s with {"status": "started"}
|
||||
|
||||
**AC-2: SSE event delivery**
|
||||
Given an SSE client connected to GET /detect/stream
|
||||
When async detection is triggered via POST /detect/{media_id}
|
||||
Then SSE events are received with detection data and mediaStatus "AIProcessing"
|
||||
And a final event with mediaStatus "AIProcessed" and percent 100 arrives
|
||||
|
||||
**AC-3: Duplicate media_id rejection**
|
||||
Given an async detection is already in progress for a media_id
|
||||
When POST /detect/{media_id} is called again with the same ID
|
||||
Then response is 409 Conflict
|
||||
|
||||
## Non-Functional Requirements
|
||||
|
||||
**Performance**
|
||||
- Async initiation response within 1s
|
||||
- SSE events delivered within 120s total processing time
|
||||
|
||||
## Integration Tests
|
||||
|
||||
| AC Ref | Initial Data/Conditions | What to Test | Expected Behavior | NFR References |
|
||||
|--------|------------------------|-------------|-------------------|----------------|
|
||||
| AC-1 | Engine warm, test-video, JWT token | POST /detect/{media_id} | Response < 1s, status "started" | Max 2s |
|
||||
| AC-2 | Engine warm, SSE connected, test-video | Listen SSE during async detection | Events received, final AIProcessed | Max 120s |
|
||||
| AC-3 | Active detection in progress | Second POST with same media_id | 409 Conflict | Max 5s |
|
||||
|
||||
## Constraints
|
||||
|
||||
- SSE client must connect before triggering async detection
|
||||
- JWT token required for async detection endpoint
|
||||
- Test video must be accessible via configured paths
|
||||
|
||||
## Risks & Mitigation
|
||||
|
||||
**Risk 1: SSE connection timing**
|
||||
- *Risk*: SSE connection may not be established before detection starts
|
||||
- *Mitigation*: Add small delay between SSE connect and detection trigger; verify connection established
|
||||
Reference in New Issue
Block a user