mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
7a7a9f5e6b
111 of 122 top-level src/utils/ files move into 16 topic folders (audio, cache, cover, share, server, playback, playlist, deviceSync, waveform, mix, format, export, changelog, ui, perf, componentHelpers). True singletons with no cluster stay at the utils/ root. Pure file-move: a path-aware codemod rewrote 539 relative-import specifiers across 275 files; no logic touched. The hot-path coverage gate list (.github/frontend-hot-path-files.txt) is updated to the new paths for the 11 gated utils files — a mechanical consequence of the move, not a CI change. tsc is green.
50 lines
2.5 KiB
Plaintext
50 lines
2.5 KiB
Plaintext
# Hot-path source files for the per-file ≥70 % coverage gate (frontend).
|
||
#
|
||
# Mirrors `.github/hot-path-files.txt` for the Rust crates. Each entry is a
|
||
# workspace-relative path; the gate script (`scripts/check-frontend-hot-path-
|
||
# coverage.sh`) reads `coverage/coverage-summary.json` produced by
|
||
# `vitest run --coverage` and warns when a listed file drops below the floor.
|
||
#
|
||
# Soft today (warnings only — the workflow carries `continue-on-error: true`).
|
||
# Flip to a hard PR-blocker by removing `continue-on-error` from the
|
||
# `frontend-tests` workflow at the start of M4 in the pre-refactor testing
|
||
# plan (2026-05-11), once Phase 1–3 characterization tests have proven the
|
||
# gate stable on a handful of real PRs.
|
||
#
|
||
# Curation rule (mirrors the backend list): a file belongs here when its
|
||
# hot-path code dominates the file and ≥70 % is a reasonable floor. Files
|
||
# that are partially covered today but contain large untested surface area
|
||
# (e.g. `playerStore.ts`, the unfinished half of `previewStore.ts`) live
|
||
# OUTSIDE the gate until their tests grow. Add them as Phase 1–4 coverage
|
||
# work lands.
|
||
#
|
||
# Deferred from the gate, with current coverage shown for reference:
|
||
# - src/store/playerStore.ts (40 % — F1 closed under the 50 % floor; further coverage TBD)
|
||
# - src/store/authStore.ts (79 % — F2 cleared 60 % floor; staying out one or two PRs to verify stability)
|
||
# - src/api/subsonic.ts (13 % — F3 covered the URL-builder + parser surface; async API endpoints need axios mocking, deferred)
|
||
|
||
# ── utils (already at or above threshold) ────────────────────────────
|
||
src/utils/cover/coverArtRegisteredSizes.ts
|
||
src/utils/server/serverDisplayName.ts
|
||
src/utils/server/serverMagicString.ts
|
||
src/utils/share/shareLink.ts
|
||
src/utils/ui/dynamicColors.ts
|
||
src/utils/playback/resolvePlaybackUrl.ts
|
||
src/utils/share/copyEntityShareLink.ts
|
||
|
||
# ── M0: pure helpers extracted from playerStore.ts (2026-05-12) ──────
|
||
src/utils/playback/shuffleArray.ts
|
||
src/utils/audio/resolveReplayGainDb.ts
|
||
src/utils/playback/songToTrack.ts
|
||
src/utils/playback/buildInfiniteQueueCandidates.ts
|
||
|
||
# ── Phase B.1: pre-React bootstrap + window-kind detector (2026-05-12) ──
|
||
src/app/windowKind.ts
|
||
src/app/bootstrap.ts
|
||
|
||
# ── Phase B.2: mini-player webview tree (2026-05-12) ─────────────────
|
||
src/app/MiniPlayerApp.tsx
|
||
|
||
# ── stores (added as their tests grew past the floor) ────────────────
|
||
src/store/previewStore.ts
|