docs: scrub dangling references to deleted roadmap docs

The ROADMAP/ROADMAP-PINCHFLAT docs were removed; this drops the now-dead
"see ROADMAP-PINCHFLAT.md" breadcrumbs (and one "the roadmap" mention)
from source comments, preserving the surrounding Pinchflat-style context.
Comment-only; typecheck (node+web) green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 23:16:32 -04:00
parent ff9077989f
commit e29374dcfa
9 changed files with 19 additions and 20 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
/** /**
* Pure, dependency-free core for Source indexing (Pinchflat-style media manager; * Pure, dependency-free core for Source indexing (Pinchflat-style media
* see ROADMAP-PINCHFLAT.md). Like buildArgs.ts / validation.ts this module imports * manager). Like buildArgs.ts / validation.ts this module imports
* nothing from electron or the node runtime, so its URL-classification and * nothing from electron or the node runtime, so its URL-classification and
* item-merge logic can be unit-tested without spinning up Electron. * item-merge logic can be unit-tested without spinning up Electron.
* *
@@ -222,7 +222,7 @@ export function buildMediaItems(
/** /**
* Merge a freshly-enumerated item list with the previously-persisted one for the * Merge a freshly-enumerated item list with the previously-persisted one for the
* same source (incremental re-index; see ROADMAP-PINCHFLAT.md Phase I). The fresh * same source (incremental re-index). The fresh
* list defines the current membership/ordering, but any video already marked * list defines the current membership/ordering, but any video already marked
* downloaded keeps its `downloaded`/`downloadedAt`/`filePath` so a re-sync never * downloaded keeps its `downloaded`/`downloadedAt`/`filePath` so a re-sync never
* loses that state or re-downloads it. Videos that vanished from the source (now * loses that state or re-downloads it. Videos that vanished from the source (now
+2 -2
View File
@@ -1,6 +1,6 @@
/** /**
* Source indexing orchestration (Pinchflat-style media manager; see * Source indexing orchestration (Pinchflat-style media manager). Walks a
* ROADMAP-PINCHFLAT.md). Walks a channel (its /playlists + /videos tabs) or a * channel (its /playlists + /videos tabs) or a
* single playlist with `yt-dlp --flat-playlist`, merges the result into a deduped * single playlist with `yt-dlp --flat-playlist`, merges the result into a deduped
* MediaItem list, and persists it as a Source. The download step (Phase G+) then * MediaItem list, and persists it as a Source. The download step (Phase G+) then
* pulls from that persisted list rather than the live queue holding it all. * pulls from that persisted list rather than the live queue holding it all.
+1 -1
View File
@@ -251,7 +251,7 @@ export function registerIpcHandlers(getMainWindow: () => BrowserWindow | null):
return result return result
}) })
// --- Media-manager sources (Pinchflat-style index; see ROADMAP-PINCHFLAT.md) --- // --- Media-manager sources (Pinchflat-style index) ---
ipcMain.handle(IpcChannels.sourcesList, () => listSources()) ipcMain.handle(IpcChannels.sourcesList, () => listSources())
ipcMain.handle(IpcChannels.sourceItems, (_e, sourceId: string) => listMediaItems(sourceId)) ipcMain.handle(IpcChannels.sourceItems, (_e, sourceId: string) => listMediaItems(sourceId))
ipcMain.handle(IpcChannels.sourceRemove, (_e, id: string) => removeSource(id)) ipcMain.handle(IpcChannels.sourceRemove, (_e, id: string) => removeSource(id))
+2 -2
View File
@@ -1,6 +1,6 @@
/** /**
* Windows Task Scheduler integration for the daily watched-source sync * Windows Task Scheduler integration for the daily watched-source sync.
* (ROADMAP-PINCHFLAT.md Phase J). Registers a task that launches AeroFetch with * Registers a task that launches AeroFetch with
* `--sync` once a day; the app then runs its startup sync of watched sources. * `--sync` once a day; the app then runs its startup sync of watched sources.
* *
* NOTE: this is OS-level wiring and cannot be exercised in the Vite UI preview or * NOTE: this is OS-level wiring and cannot be exercised in the Vite UI preview or
+4 -5
View File
@@ -1,9 +1,8 @@
/** /**
* Persistence for the media-manager index (Pinchflat-style; see * Persistence for the media-manager index (Pinchflat-style). Two plain-JSON
* ROADMAP-PINCHFLAT.md). Two plain-JSON stores in userData, mirroring the * stores in userData, mirroring the history.ts pattern (and the same deliberate
* history.ts pattern (and the same deliberate choice to stay on JSON rather than * choice to stay on JSON rather than better-sqlite3 -- revisit if a user indexes
* better-sqlite3 -- revisit if a user indexes many large channels, see the * many large channels):
* Phase H risk note in the roadmap):
* *
* sources.json -- one Source record per added channel/playlist * sources.json -- one Source record per added channel/playlist
* media-items.json -- every MediaItem across all sources (queried by sourceId) * media-items.json -- every MediaItem across all sources (queried by sourceId)
+1 -1
View File
@@ -1,5 +1,5 @@
/** /**
* Watched-source sync (Pinchflat-style; ROADMAP-PINCHFLAT.md Phase J). Re-indexes * Watched-source sync (Pinchflat-style). Re-indexes
* every watched Source and reports the videos that are new since its last index. * every watched Source and reports the videos that are new since its last index.
* A YouTube RSS feed is used as a cheap pre-check so a source with no new uploads * A YouTube RSS feed is used as a cheap pre-check so a source with no new uploads
* is skipped before the (more expensive) full `yt-dlp` re-index. * is skipped before the (more expensive) full `yt-dlp` re-index.
+1 -1
View File
@@ -194,7 +194,7 @@ const api = {
return () => ipcRenderer.removeListener(IpcChannels.externalUrl, listener) return () => ipcRenderer.removeListener(IpcChannels.externalUrl, listener)
}, },
// --- Media-manager sources (Pinchflat-style; see ROADMAP-PINCHFLAT.md) --- // --- Media-manager sources (Pinchflat-style) ---
listSources: (): Promise<Source[]> => ipcRenderer.invoke(IpcChannels.sourcesList), listSources: (): Promise<Source[]> => ipcRenderer.invoke(IpcChannels.sourcesList),
@@ -42,7 +42,7 @@ const useStyles = makeStyles({
* target quality (from its profile or the global default). * target quality (from its profile or the global default).
* *
* The policy inputs are ephemeral (per-open) — this is an on-demand tidy, not a * The policy inputs are ephemeral (per-open) — this is an on-demand tidy, not a
* persisted schedule, matching the roadmap's "niche for a desktop app" scope. * persisted schedule, keeping retention to a desktop-app-sized scope.
*/ */
export function SourceRetention({ sourceId }: { sourceId: string }): React.JSX.Element { export function SourceRetention({ sourceId }: { sourceId: string }): React.JSX.Element {
const styles = useStyles() const styles = useStyles()
+4 -4
View File
@@ -70,7 +70,7 @@ export const IpcChannels = {
/** main → renderer push channel: a URL handed to AeroFetch from outside the app /** main → renderer push channel: a URL handed to AeroFetch from outside the app
* (the aerofetch:// protocol, or a .url file via Explorer's "Send to" menu) */ * (the aerofetch:// protocol, or a .url file via Explorer's "Send to" menu) */
externalUrl: 'app:external-url', externalUrl: 'app:external-url',
// --- Sources & media-manager indexing (Pinchflat-style, see ROADMAP-PINCHFLAT.md) --- // --- Sources & media-manager indexing (Pinchflat-style) ---
sourcesList: 'sources:list', sourcesList: 'sources:list',
sourceIndex: 'sources:index', sourceIndex: 'sources:index',
sourceReindex: 'sources:reindex', sourceReindex: 'sources:reindex',
@@ -433,8 +433,8 @@ export interface ProbeResult {
} }
/** /**
* Media-manager folder context for a collection download (see ROADMAP-PINCHFLAT.md * Media-manager folder context for a collection download. When present on a
* Phase G). When present on a StartDownloadOptions, the file is filed into * StartDownloadOptions, the file is filed into
* `<outputDir>/<channel>/<playlist>/<NNN> - <title>.<ext>` instead of the flat * `<outputDir>/<channel>/<playlist>/<NNN> - <title>.<ext>` instead of the flat
* filenameTemplate. The directory segments are sanitized for Windows at argv-build * filenameTemplate. The directory segments are sanitized for Windows at argv-build
* time, and `index` (the 1-based playlist position from the persisted MediaItem) * time, and `index` (the 1-based playlist position from the persisted MediaItem)
@@ -864,7 +864,7 @@ export interface BackupImportResult {
} }
// --- Sources & media-manager indexing (Pinchflat-style) --------------------- // --- Sources & media-manager indexing (Pinchflat-style) ---------------------
// See ROADMAP-PINCHFLAT.md. A Source (channel/playlist) is indexed once into a // A Source (channel/playlist) is indexed once into a
// persisted list of MediaItem records. When the user downloads pending items, // persisted list of MediaItem records. When the user downloads pending items,
// all selected entries are enqueued at once — add a batch cap here if large // all selected entries are enqueued at once — add a batch cap here if large
// channel queues (thousands of items) cause performance issues (M33). // channel queues (thousands of items) cause performance issues (M33).