diff --git a/README.md b/README.md index a6129e3..e2f1239 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,7 @@
-[![Demo](./assets/demo-poster.jpg)](https://github.com/user-attachments/assets/9235a554-ea51-4284-b14b-7bbf3defaf58) - -_Click to watch the demo_ +[![SubMiner demo (GIF preview)](./assets/minecard.gif)](./assets/minecard.mp4)
diff --git a/assets/card-mine.mkv b/assets/card-mine.mkv deleted file mode 100644 index c5d398f..0000000 Binary files a/assets/card-mine.mkv and /dev/null differ diff --git a/assets/demo-poster.jpg b/assets/demo-poster.jpg deleted file mode 100644 index ad030fd..0000000 Binary files a/assets/demo-poster.jpg and /dev/null differ diff --git a/assets/kiku-integration.mkv b/assets/kiku-integration.mkv deleted file mode 100644 index 3f8a513..0000000 Binary files a/assets/kiku-integration.mkv and /dev/null differ diff --git a/docs/public/assets/card-mine.webm b/assets/minecard.gif similarity index 50% rename from docs/public/assets/card-mine.webm rename to assets/minecard.gif index a6c9472..4823bb6 100644 Binary files a/docs/public/assets/card-mine.webm and b/assets/minecard.gif differ diff --git a/assets/minecard.mp4 b/assets/minecard.mp4 new file mode 100644 index 0000000..889a615 Binary files /dev/null and b/assets/minecard.mp4 differ diff --git a/assets/minecard.png b/assets/minecard.png new file mode 100644 index 0000000..3d8c767 Binary files /dev/null and b/assets/minecard.png differ diff --git a/assets/minecard.webm b/assets/minecard.webm new file mode 100644 index 0000000..d23c971 Binary files /dev/null and b/assets/minecard.webm differ diff --git a/backlog/tasks/task-91 - Add-config-toggle-to-preserve-visible-overlay-subtitle-line-breaks.md b/backlog/tasks/task-91 - Add-config-toggle-to-preserve-visible-overlay-subtitle-line-breaks.md index 9571455..fc79f2f 100644 --- a/backlog/tasks/task-91 - Add-config-toggle-to-preserve-visible-overlay-subtitle-line-breaks.md +++ b/backlog/tasks/task-91 - Add-config-toggle-to-preserve-visible-overlay-subtitle-line-breaks.md @@ -4,7 +4,7 @@ title: Add config toggle to preserve visible overlay subtitle line breaks status: Done assignee: [] created_date: '2026-02-20 06:35' -updated_date: '2026-02-20 06:42' +updated_date: '2026-02-20 11:10' labels: [] dependencies: [] priority: medium @@ -33,4 +33,8 @@ Renderer now supports line-break-preserving token output via `alignTokensToSourc Validation: - `bun run build && node --test dist/config/config.test.js dist/renderer/subtitle-render.test.js` + +Follow-up (2026-02-20): when `preserveLineBreaks=false`, token render path now flattens token `CR/LF` to spaces to avoid accidental `
` insertion from token surfaces. Regression coverage added in `src/renderer/subtitle-render.test.ts`. + +Follow-up (2026-02-20, second pass): non-preserve renderer now aligns tokens to normalized source text and skips unmatched overlap/tail tokens to prevent duplicated phrase rendering (observed with multiline token + duplicated second-line token payload). diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 3171944..84f2c71 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -38,6 +38,7 @@ export default { appearance: 'dark', cleanUrls: true, lastUpdated: true, + srcExclude: ['subagents/**'], markdown: { theme: { light: 'catppuccin-latte', diff --git a/docs/index.md b/docs/index.md index 46001a0..096d224 100644 --- a/docs/index.md +++ b/docs/index.md @@ -195,8 +195,11 @@ features: ## See It in Action diff --git a/assets/card-mine.webm b/docs/public/assets/minecard.gif similarity index 50% rename from assets/card-mine.webm rename to docs/public/assets/minecard.gif index a6c9472..4823bb6 100644 Binary files a/assets/card-mine.webm and b/docs/public/assets/minecard.gif differ diff --git a/docs/public/assets/minecard.mp4 b/docs/public/assets/minecard.mp4 new file mode 100644 index 0000000..889a615 Binary files /dev/null and b/docs/public/assets/minecard.mp4 differ diff --git a/docs/public/assets/minecard.webm b/docs/public/assets/minecard.webm new file mode 100644 index 0000000..d23c971 Binary files /dev/null and b/docs/public/assets/minecard.webm differ diff --git a/docs/subagents/INDEX.md b/docs/subagents/INDEX.md index eb30b57..5aacb19 100644 --- a/docs/subagents/INDEX.md +++ b/docs/subagents/INDEX.md @@ -4,6 +4,7 @@ Read first. Keep concise. | agent_id | alias | mission | status | file | last_update_utc | | ------------ | -------------- | ---------------------------------------------------- | --------- | ------------------------------------- | ---------------------- | +| `codex-generate-minecard-image-20260220T112900Z-vsxr` | `codex-generate-minecard-image` | `Generate media fallbacks (GIF) from assets/minecard.webm and wire README/docs fallback markup` | `done` | `docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md` | `2026-02-20T11:35:30Z` | | `codex-main` | `planner-exec` | `Fix frequency/N+1 regression in plugin --start flow` | `in_progress` | `docs/subagents/agents/codex-main.md` | `2026-02-19T19:36:46Z` | | `codex-config-validation-20260219T172015Z-iiyf` | `codex-config-validation` | `Find root cause of config validation error for ~/.config/SubMiner/config.jsonc` | `completed` | `docs/subagents/agents/codex-config-validation-20260219T172015Z-iiyf.md` | `2026-02-19T17:26:17Z` | | `codex-task85-20260219T233711Z-46hc` | `codex-task85` | `Resume TASK-85 maintainability refactor from latest handoff point` | `in_progress` | `docs/subagents/agents/codex-task85-20260219T233711Z-46hc.md` | `2026-02-20T02:56:34Z` | diff --git a/docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md b/docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md new file mode 100644 index 0000000..2eb1597 --- /dev/null +++ b/docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md @@ -0,0 +1,37 @@ +# Agent: `codex-generate-minecard-image-20260220T112900Z-vsxr` + +- alias: `codex-generate-minecard-image` +- mission: `Generate media fallbacks (GIF) from assets/minecard.webm and wire README/docs fallback markup` +- status: `done` +- branch: `main` +- started_at: `2026-02-20T11:29:09Z` +- heartbeat_minutes: `5` + +## Current Work (newest first) +- [2026-02-20T11:35:13Z] handoff: switched `README.md` demo embed to GitHub-mobile-safe GIF-first pattern (linked image + explicit WebM/MP4 links). +- [2026-02-20T11:34:27Z] handoff: generated `assets/minecard.gif` (960x540 @ 12fps) and mirrored to `docs/public/assets/minecard.gif`; updated `README.md` + `docs/index.md` video sections to embed GIF fallback when video unsupported. +- [2026-02-20T11:34:27Z] test: verified media files exist and fallback refs present via `rg`; GIF dimensions/fps validated with `ffprobe`. +- [2026-02-20T11:33:36Z] intent: create GIF fallback from `assets/minecard.webm`; update `README.md` + `docs/index.md` video sections to include fallback content for unsupported video. +- [2026-02-20T11:29:35Z] handoff: created `assets/minecard-image-1.png` from `assets/minecard.webm` at `00:00:10`; verified `1920x1080`. +- [2026-02-20T11:29:35Z] test: confirmed output file exists and dimensions via `ffprobe`. +- [2026-02-20T11:29:09Z] progress: updated subagent index/own record for this session. +- [2026-02-20T11:29:09Z] intent: extract a new still image from `assets/minecard.webm`; keep change minimal. + +## Files Touched +- `README.md` +- `docs/index.md` +- `docs/public/assets/minecard.gif` +- `assets/minecard.gif` +- `assets/minecard-image-1.png` +- `docs/subagents/INDEX.md` +- `docs/subagents/agents/codex-generate-minecard-image-20260220T112900Z-vsxr.md` + +## Assumptions +- User wants a still frame image generated from the video source. +- User now wants GIF fallback available where WebM playback may fail (README/docs). + +## Open Questions / Blockers +- none currently + +## Next Step +- Await user review; tune GIF size/quality if needed. diff --git a/docs/subagents/agents/codex-preserve-linebreak-display-20260220T110436Z-r8f1.md b/docs/subagents/agents/codex-preserve-linebreak-display-20260220T110436Z-r8f1.md new file mode 100644 index 0000000..5869649 --- /dev/null +++ b/docs/subagents/agents/codex-preserve-linebreak-display-20260220T110436Z-r8f1.md @@ -0,0 +1,29 @@ +# Agent: `codex-preserve-linebreak-display-20260220T110436Z-r8f1` + +- alias: `codex-preserve-linebreak-display` +- mission: `Fix visible overlay display artifact when subtitleStyle.preserveLineBreaks is disabled.` +- status: `done` +- branch: `main` +- started_at: `2026-02-20T11:04:36Z` +- heartbeat_minutes: `5` +- backlog_ticket: `TASK-91` + +## Current Work (newest first) +- [2026-02-20T11:10:51Z] follow-up: switched non-preserve token rendering to source-aligned inline segments; skip unmatched overlap tokens that caused duplicate phrase rendering; added regression test for two-line + duplicate-tail token payload. +- [2026-02-20T11:07:29Z] handoff: patched non-preserve token render path to flatten CR/LF into spaces (no `
` insertion); added regression test for formatter helper; build + renderer test pass. +- [2026-02-20T11:04:36Z] intent: investigate renderer regression reported when `subtitleStyle.preserveLineBreaks=false`; add targeted regression test + minimal fix. +- [2026-02-20T11:04:36Z] planned files: `src/renderer/subtitle-render.ts`, `src/renderer/subtitle-render.test.ts`, `docs/subagents/*`. +- [2026-02-20T11:04:36Z] assumptions: artifact originates in token render path for non-preserve mode, likely newline handling in token surfaces. + +## Files Touched +- `docs/subagents/INDEX.md` +- `docs/subagents/collaboration.md` +- `docs/subagents/agents/codex-preserve-linebreak-display-20260220T110436Z-r8f1.md` +- `src/renderer/subtitle-render.ts` +- `src/renderer/subtitle-render.test.ts` + +## Open Questions / Blockers +- none. + +## Next Step +- optional: capture one problematic payload from logs and extend formatter coverage if additional control chars appear. diff --git a/docs/subagents/agents/codex-vitepress-subagents-ignore-20260220T101755Z-k2m9.md b/docs/subagents/agents/codex-vitepress-subagents-ignore-20260220T101755Z-k2m9.md new file mode 100644 index 0000000..3fe2ade --- /dev/null +++ b/docs/subagents/agents/codex-vitepress-subagents-ignore-20260220T101755Z-k2m9.md @@ -0,0 +1,31 @@ +# Agent: codex-vitepress-subagents-ignore-20260220T101755Z-k2m9 + +- alias: codex-vitepress-subagents-ignore +- mission: Exclude docs/subagents from VitePress build +- status: completed +- branch: main +- started_at: 2026-02-20T10:17:55Z +- heartbeat_minutes: 5 + +## Current Work (newest first) + +- [2026-02-20T10:18:30Z] handoff: added `srcExclude: ['subagents/**']` in `docs/.vitepress/config.ts`; verified `bun run docs:build` passes and no `subagents` routes emitted. +- [2026-02-20T10:17:55Z] intent: answer whether VitePress can ignore `docs/subagents` and implement exclusion in config. + +## Files Touched + +- `docs/.vitepress/config.ts` +- `docs/subagents/INDEX.md` +- `docs/subagents/agents/codex-vitepress-subagents-ignore-20260220T101755Z-k2m9.md` + +## Assumptions + +- Excluding `docs/subagents/**` from docs routes is desired for both local dev and production docs builds. + +## Open Questions / Blockers + +- none + +## Next Step + +- none