Files
iptvnator/docs/maintenance/agent-context-map.md
26ca8e2cb0 perf(ui): make the libs/ui Eager components OnPush (#1818)
* docs(performance): inventory the zoneless change-detection migration

Plan item C6 step 2. docs/architecture/zoneless-migration.md lists the 66
production files (67 components) that still set
ChangeDetectionStrategy.Eager, the ten places where a template-read plain
field is written outside an Angular event, the NgZone and
ChangeDetectorRef calls to remove at the flip, and the IPC, player,
observer, timer and dialog paths checked as signal-safe.

On Angular 22 an unset changeDetection already means OnPush, so only the
explicit Eager components re-render on every tick.

zoneless-migration.spec.ts in the performance harness compares the
checklist with the code: a new Eager component, or a converted one left
unticked, fails it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* perf(ui): make the libs/ui Eager components OnPush

Plan item C6 step 3 for libs/ui/components and libs/ui/epg: eleven
components (twelve with the EPG trust dialog) set
ChangeDetectionStrategy.Eager and were checked on every tick, among them
the always-mounted EPG progress panel the idle audit found re-rendering
on every idle tick. Their template state is already signals, signal
inputs, immutable dialog data or fields written from template events, so
they switch to OnPush without other changes.

The epg-item-description spec mutated dialog data after creation and
marked only the fixture's host view; it now marks the component's own
view, which OnPush requires. The libs/ui playback and remote-control
components stay Eager for their own PRs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: 4gray <fourgray@proton.me>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 16:44:40 +02:00

8.3 KiB

Agent context map

Read the row for your task before editing. For a cross-domain change, read each affected contract. This is navigation, not a request to load every linked file. Common constraints remain in AGENTS.md; Claude imports it. Repository skill frontmatter defines triggers. If your client does not discover a listed skill automatically, read its SKILL.md directly. Optional global tools are not prerequisites for reading repository contracts.

Development and maintenance

Area / code ownership Canonical documents Repository skill
Bootstrap, project placement, dependencies, aliases and lint configuration; root Nx config and project-local project.json files Nx boundaries, security overrides Nx architecture
Angular conventions; docs and skills maintenance; local review before a pull request Agent workflow Use the area's skill below
Unit, E2E, lint and coverage; tools/coverage, tools/typecheck Validation map Use the area's validation section
Performance journeys, counters, benchmark probes and the CI ratchet; apps/electron-backend-e2e/src/journeys, apps/electron-backend-e2e/src/performance, tools/performance Performance journeys Read the contract directly
Zoneless change detection, ChangeDetectionStrategy.Eager components, NgZone usage Zoneless migration Read the checklist directly
Electron entry/events/preload and CDP; apps/electron-backend Debugging and trace flags, Electron security Use the available global electron skill for automation
Releases, notes, screenshots, native assets, Linux manager metadata; tools/release Release pipeline, note format Release notes, release cut

Data, sources and networking

Area / code ownership Required contracts Repository skill
SQLite schema/startup; libs/shared/database; Electron DB events/workers/operations DB worker, migration ownership and tests SQLite worker
M3U import/state/player, XMLTV, source lifecycle, startup readiness and OS file opening; libs/m3u-state, libs/playlist, libs/epg M3U module, adding sources across layers Read both contracts when adding a source
Xtream API/store/data sources and routed views; libs/portal/xtream Xtream compatibility, category management, detail navigation Xtream
Stalker/Ministra protocol, identity, sessions and routed views; libs/portal/stalker Stalker portal, Stalker EPG for EPG work, store API baseline for store API changes Stalker
Browser runtime, HTTP proxies, redirects and backend networking; apps/web-backend, libs/shared/host-health PWA/self-hosting, connectivity guard, Electron security for desktop boundary changes Read the affected runtime contract
Source health and selective cleanup; portal shared data access Desktop source health, subscription expiry Read the affected provider skill
Backup and restore; playlist persistence Backup/restore, database migrations Read the affected persistence skill

Playback, navigation and UI

Area / code ownership Required contracts Repository skill
Web engines, controls, tracks, PiP, radio and display sleep; libs/ui/playback Player controls, inline playback/diagnostics/recovery Read the contract directly
Embedded MPV, platform engines, addon, pinned runtime and packaging; Electron native services, tools/embedded-mpv Native MPV, runtime build and licensing Read the contract directly
Live panels, keyboard focus, grid/layout conventions; shared UI and portal views UI guidelines, detail navigation UI design, theme/style
Workspace routes, title bar, switcher, collections and dashboard; libs/workspace Workspace shell, dashboard, collection/detail navigation UI/theme skills for visible changes
Remote control, playback queue, channel return and shortcuts; libs/ui/remote-control, apps/remote-control-web Remote control Provider skill when queue ownership changes
Parental lock: PIN, per-category locks, worker-side filtering; libs/services/src/lib/parental-lock, category/group dialogs, apps/electron-backend/src/app/database/parental-lock-state.ts Parental lock, affected provider contract Read the affected provider skill
Downloads, offline details, catch-up and file availability; libs/portal/downloads Download manager, provider contract for URL resolution Read the affected provider skill
VOD source discovery, factual metadata and failover; libs/portal/shared/data-access VOD multi-source Xtream
TMDB enrichment, artwork, actors and recommendations; libs/services/src/lib/tmdb TMDB contracts, dashboard UI skill for rendering changes
Timezones, catch-up formatting and EPG display offsets Date handling, Xtream compatibility, M3U EPG Affected provider skill
Website, blog and download pages; apps/website Website README Use an available website skill
Mock servers and fictional release fixtures; apps/stalker-mock-server, apps/xtream-mock-server Stalker mock, Xtream mock, release screenshot contract Release-cut for release captures

Maintenance rules

Keep unique behavior contracts in the authoritative document, procedures in a skill or development guide, and universal constraints in AGENTS.md. Update this map when ownership or a canonical destination changes. Preserve release skill mirrors; do not create extra copies of other contracts for individual agents. Use normal Markdown links for document destinations so pnpm run agents:validate can check them. Do not add root imports for the linked documents.

The migration ledger explains how the original root instructions were accounted for. It is historical audit evidence, not another source of current runtime policy or required task context.