# Changelog

All notable changes to vEdition. Format loosely follows [Keep a Changelog](https://keepachangelog.com/).
Versions cover **Studio** unless prefixed with **Recorder** (the C# Recorder, versioned independently).

---

## [Unreleased]

### Added
- Detailed root `README.md` documenting the monorepo (components, workflow, architecture, build/run, versions, licensing).
- This `CHANGELOG.md`.

---

## [Studio 2.8.0 / Recorder 1.3.0] — 2026-05-04 → 2026-05-05

Coordinated release that finalized the Quiz System and synced data models across Studio, the C# Recorder, and the Web Player.

### Added
- **Quiz System** — quiz items on the timeline with triggering and visualization, plus AI quiz generation.
- **LLM chat API** for narration and quiz generation across providers (OpenAI, DeepSeek, Groq, Ollama, custom).
- **Web Player** (Svelte 5 + Vite 6) aligned with Studio: multi-track timeline, event markers, auto-scroll, quiz triggering.
- **Portable session state** `studio_state.json` — narration, audio offsets/trims, video ranges, written into the session folder so edits survive moving a session between machines and reach the Web Player.
- Piper voice picker with "Download more voices…" (voice list expanded 24 → 34); voice list filtered by selected language.

### Changed
- Versions bumped: Studio → 2.8.0, C# Recorder → 1.3.0 (single source of truth in both `.csproj` `<Version>`), Web Player `package.json` → 1.1.0.
- AI tier label "Fully Offline" → **"Models"** (enum constant `AiTier.OFFLINE` preserved, no migration).
- Initial Studio window 1100×700 → **1500×700** dp so the toolbar fits.

### Fixed
- Cross-component model sync — `QuizItem`, `PlayerData`, `SessionLoader` extensions matched across Kotlin and C#; snake_case JSON normalization in the Web Player; audio loader fallback (`audio/<name>` then root).
- Modal layering — in-window modals call `ModalState.acquire/release`; the LicenseGate trial banner and the JavaFX `SwingPanel` video preview now hide while a modal is open (heavyweight AWT no longer punches through Compose).
- C# Recorder: region-mode coordinates now relative to the capture rectangle; DPI scale via Win32 `GetDpiForMonitor` (was a stub 1.0); version unified via `Assembly.GetName().Version`.

### Chore
- Gitignore local build logs (`*-build.log`, `*-msbuild.log`, `*-wix.log`).

---

## [Studio 2.7.24] — 2026-05-04

### Added
- v2.7.24 baseline of the Quiz System, the Svelte Web Player, the LLM chat API, and updated documentation.
- Documentation images and presentation materials.

---

## [Recorder 1.2.1] — 2026-04-07

### Fixed
- Auto-close the stop overlay on hotkey press.

## [Recorder 1.2.0] — 2026-04-07

### Added
- Configurable stop hotkey (default **F9**).

---

## [Studio 2.7.23] — 2026-04-07

### Changed
- UI improvements, audio fix, and site consistency update.

## [Studio 2.7.22] — 2026-04-07

### Fixed
- **Working MSI packaging** — JavaFX bundled as modules, no bootstrap relaunch. Concludes the v2.7.8–v2.7.11 packaging saga.

## [Studio 2.7.8 – 2.7.11] — 2026-04-06

JavaFX-on-MSI packaging iterations (many builds were broken):

### Fixed
- Restore all `javafx.graphics` `--add-opens` (2.7.11).
- Restore exact v2.7.6 `jvmArgs` format (2.7.10).
- Restore JavaFX bootstrap for video playback (2.7.9).
- Fix JVM launch, disable IMG/MUSIC tracks, add Recorder stop hotkey (2.7.8).
- Auto-bootstrap `javafx/` and relaunch with module-path; JavaFX loaded as modules so video playback works inside the MSI.

---

## [Studio 2.7.0 – 2.7.4] — 2026-04-06

### Added
- Background-music playback, colored tracks, clear-session, audio auto-duck (2.7.0).

### Fixed
- Track labels rendered via Compose `Text` (not Canvas `nativeCanvas`) (2.7.4).
- Track labels visible, background music stops on pause, brighter labels (2.7.3).
- Music duration/playback, brighter color, trim markers (2.7.2).
- Visible track colors + gray divider lines between tracks (2.7.1).
- Studio download links updated to v2.7.0 on the site.

---

## [Studio 2.6.0 – 2.6.1] — 2026-04-06

### Added
- Background-music track with vertical track labels.
- Music volume control + auto-duck under narration.
- Cursor glow + mouse-trail effects in the Recorder.

### Changed
- `MouseHighlight` rewritten on `DrawingVisual` for a brighter glow (perf).
- Site synced with v2.6.1 features; copy improved for conversion.

---

## [Studio 2.5.2 – 2.5.8] — 2026-04-06

Voice / language / TTS-tier consistency work.

### Added
- **Edge TTS via native Ktor WebSocket** — no Python required (2.5.8).

### Fixed
- Context menu shows region options only on empty area (2.5.8).
- Auto-migrate `ttsProvider` to match the AI tier (2.5.7).
- Corrected an archaic UI message referencing a non-existent button (2.5.6).
- Force offline TTS to Piper internally (2.5.5).
- Split UX error message for per-step TTS generation (2.5.4).
- UI sync for offline voice/language selection (2.5.3).
- Seven voice/model/language desync issues across all AI tiers; voice selector adapts to AI tier and `ttsProvider` saved correctly (2.5.2).

### Added (UX)
- Splash screen with product description; Pause button in `StopOverlay` with version/date display.
- Multiple Piper voices, expanded voice list, corrected download URLs.

---

## [Studio 2.4.0 – 2.4.1] — 2026-04-06

### Added
- Model selector shows installed models + download new (2.4.1).
- Progress indicators and size warnings in the AI setup wizard (2.4.0).

### Fixed
- Find Ollama in common install paths, not just `PATH`.
- Bundle JavaFX jars in a separate `javafx/` folder for the MSI; add `jdk.unsupported.desktop` module + `module-path=$APPDIR`.
- Clamp window bounds to screen to prevent a gdigrab I/O error.
- Studio auto-creates `javafx/` on first launch (no manual copy).
- `includeAllModules` experiment to drop module-path/JavaFX hacks (later reverted in the 2.7.x saga).

---

## [Studio 2.2.0] — 2026-04-06

### Added
- **Multi-tier AI providers** — OpenAI / Ollama / Edge TTS / Piper.
- **Custom LLM + ElevenLabs TTS** with provider presets.
- Image overlays, enhanced LLM prompts, license manager, watermark.
- Start Menu shortcuts, app icon, FFmpeg auto-install.

### Changed
- Comprehensive docs/site update for multi-provider AI and licensing.

---

## [Studio 2.0.0 – 2.1.1] — 2026-04-06

### Added
- **Licensing, API-key wizard, C# Recorder, site overhaul** — first commercial-shaped release.
- Centralized version in `gradle.properties`, shown in the UI; per-product subversions.
- Lemon Squeezy checkout wired to Buy buttons; thank-you page for post-purchase redirect; user-guide PDF (print-ready HTML).
- App icon for the C# Recorder; Recorder MSI added to the site with direct-download buttons.

---

## vEdition rebrand & website — 2026-04-05 → 2026-04-06

### Changed
- **Rebrand TutorFlow → vEdition** with the full Studio feature set.

### Added
- vedition.pro website package: pricing cards, Buy buttons, legal pages, favicon and logo assets.

---

## Kotlin port foundation — 2026-04-04

Initial port from the original C# project to Kotlin.

### Added
- Initial Kotlin project: Gradle setup + Core module (Phase 0+1).
- Recorder — JNA hooks + FFmpeg capture + Compose UI (Phase 2); RegionSelector, WindowPicker, FFmpeg stdin fix (Phase 2.5); full feature parity with the C# recorder.
- Studio — full port from C# (Phase 3–6): timeline interactions, waveform, render region.
- `PROJECT_STATUS.md` documenting the state of the Kotlin port.

### Fixed
- WindowPicker — click-through overlay with global mouse hook, no flicker (EnumWindows cache), bright-green highlight border.
