feat(415): per-channel fault detection — server-derived health object + Problems filter #581

Merged
timothy merged 11 commits from feat/415-channel-health into main 2026-07-23 22:45:20 +02:00
11 Commits
Author SHA1 Message Date
timothyandClaude Opus 4.8 4f028120d3 fix(415): keep archived api.channel-health-signal rationale verbatim
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 11s
PR Gates / Docs update reminder (pull_request) Successful in 12s
PR Gates / decisions lifecycle (pull_request) Successful in 15s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 7m54s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 27s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 4m55s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 15m6s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
Build ErsatzTV Image / Functional E2E (curl contracts) (pull_request) Successful in 14m47s
The supersession appended a 'Why superseded' note to the archived #72 record, which
the diff-mode decisions validator (CI 'decisions lifecycle' job) flags as a rationale-prose
change requiring [decisions-edit]. The archive's own rule is rationale-kept-verbatim, and the
'why' is already carried by the superseded-by link, the Mechanics forwarding pointer, the
archive header, and the successor record api.channel-health-object. Drop the note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 22:18:18 +02:00
timothy 6c90e7caf7 fix(415): key on-demand suppression to owning channel (mirror-of-on-demand) + review cleanups
PR Gates / Docs update reminder (pull_request) Successful in 12s
PR Gates / CI image pin matches docker/ci (pull_request) Successful in 11s
PR Gates / decisions lifecycle (pull_request) Failing after 23s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 4m53s
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 8s
Build ErsatzTV Image / Functional E2E (curl contracts) (pull_request) Successful in 17m15s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 21m20s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 21m24s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
2026-07-23 22:05:09 +02:00
timothy 2ed1698bb2 docs(415): channel health taxonomy (supersede api.channel-health-signal + conventions) 2026-07-23 22:05:09 +02:00
timothy ee82797e45 feat(415): SPA Problems filter + per-fault channel badges 2026-07-23 22:04:07 +02:00
timothy 98ebb4df0b chore(415): regenerate OpenAPI + TS types for channel health 2026-07-23 22:04:07 +02:00
timothy 26ec5b5b0c feat(415): populate Health on channel list + detail DTOs
Thread the Task 2 upcoming-item aggregate through Mapper.ProjectToResponseModel
and ProjectToDetailResponseModel, add a trailing Health field to
ChannelResponseModel/ChannelDetailResponseModel, and update both API handlers
to fetch contributing-playout ids, call GetPlayoutUpcomingHealth, and pass the
result into the mapper. Regenerate the OpenAPI spec + fixture DTOs affected by
the additive field.
2026-07-23 22:04:07 +02:00
timothy c656f4db51 feat(415): upcoming-item aggregate query + BuildStatus includes 2026-07-23 22:04:07 +02:00
timothy b15a77ee74 feat(415): pure channel-health derivation + health DTO 2026-07-23 22:04:07 +02:00
timothyandClaude Opus 4.8 173cecfaa4 docs(415): correct plan test harness (ErsatzTV.Tests + InMemoryTvContext)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 22:04:07 +02:00
timothyandClaude Opus 4.8 524534573e docs(415): implementation plan + refine assessable gate (presence vs absence signals)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 22:04:07 +02:00
timothyandClaude Opus 4.8 99433876fd docs(415): design spec for per-channel fault detection (built-timeline approach)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 22:04:06 +02:00