Skip to content

feat: Sprint 3 — request_id in all responses, POST /qa, POST /diff, 22 pagination tests#67

Merged
hnshah merged 1 commit into
mainfrom
feat/sprint3-reqid-qa-api
Apr 4, 2026
Merged

feat: Sprint 3 — request_id in all responses, POST /qa, POST /diff, 22 pagination tests#67
hnshah merged 1 commit into
mainfrom
feat/sprint3-reqid-qa-api

Conversation

@hnshah
Copy link
Copy Markdown
Owner

@hnshah hnshah commented Apr 4, 2026

Sprint 3 changes: request_id in every response, POST /qa endpoint, POST /diff endpoint, baseline QA for no-effects recordings, 22 pagination tests.

…point, pagination tests

## Changes

### Request ID in every response
- ScreenMuseServer: added `currentReqID` property, set before each dispatch
- sendResponse() injects `"request_id"` into every JSON body automatically
- Zero callsite changes — threaded via single choke point

### POST /qa (new endpoint)
- Full QA analysis via HTTP API on any two video files
- Returns complete QAReport (5 checks, confidence score, before/after)
- Optional `save` param (default true) persists qa-report.json to disk
- Documented in OpenAPISpec + APITypes.swift (QARequest)

### POST /diff (new endpoint)
- Lightweight structural diff: metadata for file A + B + computed deltas
- Returns resolution_changed, fps_changed, codec_changed booleans
- No quality checks — faster than /qa when you just need the numbers
- Documented in OpenAPISpec + APITypes.swift (DiffRequest, DiffResponse)

### Baseline QA for no-effects recordings
- RecordViewModel: when recording without effects, ffprobe validity check
  runs in background; notifyError() called if output is corrupted

### Tests (22 new)
- RecordingsPaginationTests.swift: full coverage of limit/offset/sort/hasMore
  logic including edge cases and full multi-page traversal consistency test

### Docs
- CHANGELOG.md: Sprint 3 entry
- BACKLOG.md: pagination tests marked done
@hnshah hnshah merged commit 4e1fe86 into main Apr 4, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant