
TheTechDad1027 Dictation — Portable whisper.cpp build
================================================

NO PYTHON / NO PIP / NO VENV / NO APT INSTALL REQUIRED

How it works
------------
On the first launch only, the PowerShell app downloads:
1. A portable Linux x64 whisper.cpp engine into ./Engine
2. The English Whisper base model into ./Models

Nothing is installed system-wide. No sudo is used.
After those files are present, transcription runs locally/offline.

Start it
--------
pwsh -NoProfile -File ./TechDadDictation.ps1 -Browser Brave

First launch
------------
The first launch must have Internet access because the portable engine and
model need to be downloaded into this folder. The model is much larger than
the application itself, so the first startup may visibly spend time downloading.

After first launch
------------------
The application uses:
  Engine/   portable whisper.cpp runtime
  Models/   local speech model
  Data/     recent dictation history
  Temp/     temporary WAV/output files
  Logs/     application log

Workflow
--------
Start Dictation
  -> speak
  -> Stop Dictation
  -> browser creates a standard 16 kHz WAV file
  -> local whisper.cpp transcribes it
  -> result is copied to the clipboard
  -> right-click Paste wherever you want

Notes
-----
- Linux Mint / Ubuntu x64 first.
- Uses the ggml-base.en Whisper model for the first portable test.
- No automatic text injection and no hotkeys.
- No FFmpeg dependency: the browser creates WAV directly.

Fix in this build
-----------------
Corrected the Whisper base.en model download URL and added a fallback mirror.


Widget UI update
----------------
- Default app window reduced to approximately 430 x 520.
- Recent Dictation is collapsed by default.
- Engine Details is collapsed by default.
- Main dictation controls remain visible at all times.
- Sections can be expanded and collapsed as needed.


Forced window sizing update
---------------------------
- Requests a 500 x 560 app window at Brave launch.
- Requests a window position near the upper-left.
- The page also asks the app window to resize itself to 500 x 560 after loading.
- This is intended to override Brave's remembered/default app-window sizing.


Info + Settings update
----------------------
- Added Information icon beside Exit.
- Added Settings gear beside Exit.
- Information popup includes TechDad1027 information and third-party licensing notes.
- Added ThirdPartyNotices.txt.
- Settings popup includes microphone selection, auto-copy on/off, and history length.
- Settings are saved in Data/settings.json.


Branding update
---------------
- Added the standard TechDad1027 logo to the upper-left corner of the widget.
- Added thetechdad1027.com to the Information popup.
- Added the TechDad1027 Buy Me a Coffee support link.
- Logo asset is stored locally under Assets/techdad-logo.png.


v4.1 logo fix
-------------
- Fixed the broken TechDad1027 logo.
- The PowerShell local web server now serves files under /Assets/.
- Added a small cache-busting suffix to the logo URL so Brave does not reuse the broken-image cache.


v4.2 theme update
-----------------
- Added Light / Dark theme control to the Settings popup.
- Theme selection is saved in Data/settings.json.
- Dark theme follows the Enhanced Bookmarks TechDad palette:
  background #08111f / #050912 / #0d1d33
  panel #111f35
  text #eef6ff
  muted #a9b9cc
  accent #6ea8fe
- The selected theme is restored on the next launch.


v5 compact tabbed layout
------------------------
- Removed Engine Details from the main window.
- Engine/licensing information remains in the Information popup.
- Added Dictate and Recent tabs.
- Recent Dictation now lives only on the Recent tab.
- Removed the main-window footer/status text to save vertical space.
- Reduced default window to approximately 500 x 430.
- Kept Info, Settings, Exit, branding, and persistent Light/Dark theme.


v5.1 bug fix
------------
- Fixed a JavaScript syntax error caused by an extra closing brace in v5.
  That error prevented all buttons and tabs from responding.
- Removed leftover references to the footer/clipboard-status element that was
  intentionally removed in the compact tab design.
- JavaScript syntax was validated with Node before packaging.


v5.2 compact/history update
---------------------------
- Reduced requested widget window to approximately 500 x 340.
- Reduced vertical padding and preview height.
- Recent tab uses an internal scrolling history area so the app window stays compact.
- Added an individual X delete button to each recent dictation.
- Kept Clear History for deleting all entries.
- WAV recordings remain temporary local files in Temp/ and are deleted after transcription.
- Added startup cleanup for stale dictation temp files left by interrupted/crashed prior runs.


v5.3 layout / branding update
-----------------------------
- Corrected user-facing branding to "The Tech Dad 1027".
- Tool title is now "The Tech Dad 1027 - Dictation".
- The application page itself no longer scrolls.
- On the Recent tab, only the Recent Dictation history list scrolls.
- This removes the browser/page scrollbar on the far right while preserving
  scrolling for long dictation history.


v5.4 Information / Log Viewer
-----------------------------
- Corrected title/branding to exactly: TheTechDad1027 Dictation
- Information popup now has About and Logs tabs.
- Logs tab displays the latest 250 application log lines.
- Added Refresh and Clear Log controls.
- Log file remains stored locally under Logs/TechDadDictation.log.
- Settings remain separate under the gear icon.


v5.5 pop-out windows
--------------------
- The compact main Dictation widget remains approximately 500 x 340.
- Information now opens in a separate larger app-mode window (about 760 x 700).
- Settings now opens in a separate larger app-mode window (about 700 x 650).
- Information pop-out contains About and Logs tabs.
- Settings pop-out contains Theme, Microphone, Auto-Copy, and History settings.
- Theme changes made in the Settings window are picked up by the main widget automatically.


v5.6 information/manual update
------------------------------
- Info and Settings pop-out window dimensions are now forced both at browser launch and again by their pages.
- Information window redesigned to match the Enhanced Bookmarks dark glass / gradient visual style.
- Information now has About, Help & Information, and Logs tabs.
- Help & Information includes an Open Manual button.
- Added a separate Manual app-mode window, approximately 1000 x 800.
- Manual covers dictation, recent history, settings, logs, temporary WAV handling, file layout, troubleshooting, licensing, and TheTechDad1027 links.


v5.7 synchronized pop-out themes
--------------------------------
- Information pop-out now reads the same saved theme as the main widget.
- Light theme uses the existing light TechDad styling.
- Dark theme uses the Enhanced Bookmarks-inspired dark glass / gradient styling.
- Manual pop-out now follows the same current theme as well.
- Information and Manual periodically re-check the saved theme while open, so a theme change can update them without reopening.


v5.8 header consistency update
------------------------------
- Information pop-out header now matches the Settings/main app header:
  full-width navy bar, logo on left, title and subtitle beside it.
- Removed the rounded/glass card treatment from the Information header.
- Information content remains themed light/dark below the header.
- Manual now uses the same full-width branded header for consistency.


Build 5.9
---------
- Added clearer status/progress states for Listening, Transcribing, Copied, and engine preparation.
- First-run engine/model preparation is now visible in the main GUI instead of relying only on terminal output.
- Added speech model selection in Settings:
  Fast (Tiny English), Balanced (Base English), Accurate (Small English).
- Added Audio Privacy information.
- Added visible Build 5.9 information instead of calling this Version 1.0.
- New models remain stored locally under Models/.


Build 5.10
----------
- Added compact, customer-friendly guidance below the speech model selector.
- The description changes automatically for Fast, Balanced, and Accurate models.
- Simplified Build Information wording to be customer-facing.


Build 5.11 - Widget sizing
--------------------------
- Main Dictation tool defaults to Small Widget: 420 x 450.
- Added Window Size settings:
  Small Widget 420 x 450
  Medium Widget 520 x 560
  Large Widget 640 x 680
  Classic Tool 900 x 700
  Custom width x height
- Main window size is saved and reapplied automatically.
- Information, Settings, and Manual pop-outs use Classic Tool size: 900 x 700.
- Main widget header/layout was compacted for the Small Widget preset.
- Model choice is now preserved correctly when Settings is saved.


Build 5.11 Fix
--------------
- Corrected a PowerShell parsing/runtime issue in Get-SelectedModel where
  window-size defaults were accidentally inserted into the model fallback.
- Engine/model preparation now uses the proper model fallback again.


Build 5.12 - Information window alignment
-----------------------------------------
- Reworked the Dictation Information window to match the TechDad Authenticator
  information-window layout and visual structure.
- Uses compact horizontal tabs, one main content panel, build badge, and Close button.
- Dictation-specific tabs:
  Overview, Directions, Speech models, Privacy & storage,
  TheTechDad1027, License, and Logs.
- Information content is designed to fit within the 900 x 700 Classic window,
  with scrolling contained inside the main content panel when needed.
- Light/dark theme sync and Manual launch are preserved.


Build 5.13 - Settings tabs
--------------------------
- Reworked the Settings window to use the same compact horizontal-tab design
  as the Information window.
- Tabs: Appearance, Window Size, Dictation, and History.
- Uses one main content panel and a fixed bottom footer with Close / Save Settings.
- Preserves theme selection, model selection and guidance, microphone selection,
  auto-copy, history limit, window presets, and custom sizing.
- Settings window remains 900 x 700.


Build 5.14 - Zoom
-----------------
- Added Zoom control under Settings > Appearance.
- Zoom range: 75% to 150% in 5% steps.
- Added minus/plus buttons and Reset to 100%.
- Saved zoom applies across the main widget, Information, Settings, and Manual windows.
- Theme and zoom remain synchronized while auxiliary windows are open.


Build 5.15 - Portable Setup
---------------------------
- Added Setup.ps1 using the extracted application folder dynamically.
- Creates Dictation.desktop inside the app folder.
- Registers a menu symlink at ~/.local/share/applications/Dictation.desktop.
- Optionally creates ~/Desktop/Dictation.desktop as a symlink.
- No sudo required.
- Added START HERE.txt.
- Added Dictation.png as the launcher icon.
- Runtime files and data remain under the app folder.
