Commit Graph

16 Commits

Author SHA1 Message Date
Your Name
f3aa5f7937 Move and expand philosophy section 2026-02-19 12:58:55 +02:00
Your Name
1579e146b5 Replace fancy dashes and quotes with plain ASCII 2026-02-19 12:56:30 +02:00
Your Name
17b57dbab0 Fancy up README header with badges 2026-02-19 12:54:43 +02:00
Your Name
8860188055 Add emoji to README 2026-02-19 12:53:50 +02:00
Your Name
26ff5cd95b Add README 2026-02-19 12:52:21 +02:00
Your Name
9c8d7d94cd TutorialVault: complete Tauri v2 port with runtime fixes
Rename from TutorialDock to TutorialVault. Remove legacy Python app
and scripts. Fix video playback, subtitles, metadata display, window
state persistence, and auto-download of ffmpeg/ffprobe on first run.
Bundle fonts via npm instead of runtime download.
2026-02-19 12:44:57 +02:00
Your Name
a459efae45 feat: implement all frontend TypeScript modules
Create player.ts (video controls, seek, volume, speed, overlay),
playlist.ts (list rendering, tree SVG, drag-and-drop reorder, scrollbar),
subtitles.ts (subtitle menu, track management, sidecar/embedded),
ui.ts (zoom, splits, info panel, notes, toasts, recent menu),
tooltips.ts (zoom-aware tooltip system with delays),
store.ts (shared state and utility functions), and
main.ts (boot sequence, tick loop, keyboard shortcuts).

All modules compile with strict TypeScript. Vite build produces
34KB JS + 41KB CSS. 115 Rust tests pass.
2026-02-19 11:44:48 +02:00
Your Name
4e454084a8 feat: implement video_protocol.rs, commands.rs, wire up main.rs, and index.html
- video_protocol.rs: tutdock:// custom protocol with HTTP Range support
  for video streaming, subtitle/font serving with path traversal protection
- commands.rs: all 26 Tauri command handlers as thin wrappers
- main.rs: full Tauri bootstrap with state management, window restore,
  async font caching, and ffmpeg discovery
- index.html: complete HTML markup extracted from Python app
- lib.rs: updated with all module declarations and AppPaths struct
2026-02-19 11:23:37 +02:00
Your Name
9c8474d24f feat: implement library.rs, types.ts, api.ts, and extract CSS
- library.rs: full video library management (1948 lines, 10 tests)
  folder scanning, progress tracking, playlists, subtitle integration,
  background duration scanning
- types.ts: all TypeScript interfaces for Tauri command responses
- api.ts: typed wrappers for all 26 Tauri invoke commands
- 6 CSS files extracted from Python HTML into src/styles/
2026-02-19 02:08:23 +02:00
Your Name
4e91fe679f feat: implement ffmpeg.rs, subtitles.rs, and fonts.rs
- ffmpeg.rs: discovery, duration extraction, metadata probing, download
- subtitles.rs: SRT-to-VTT conversion, sidecar discovery, storage, extraction
- fonts.rs: Google Fonts and Font Awesome local caching
2026-02-19 01:59:21 +02:00
Your Name
3280d60f71 feat: implement recents.rs - recent folders management 2026-02-19 01:50:28 +02:00
Your Name
b95094c50f feat: implement prefs.rs - preferences with save/load/update 2026-02-19 01:50:20 +02:00
Your Name
6ecbeb9a9b feat: implement utils.rs and state.rs
utils.rs: natural sort, file fingerprinting, library ID computation,
pretty title formatting, path helpers, clamp, truthy (38 tests)

state.rs: atomic JSON persistence with backup rotation and
fallback loading (8 tests)
2026-02-19 01:47:37 +02:00
Your Name
40d7ce4291 fix: remove protocol-asset feature, add app icons for build 2026-02-19 01:29:50 +02:00
Your Name
24746bb33d feat: scaffold Tauri v2 + Vite + TypeScript project 2026-02-19 01:23:27 +02:00
Your Name
47d4409bcc initial: existing TutorialDock Python app + conversion design and plan 2026-02-19 01:16:17 +02:00