All notable changes to Producer Player are documented in this file.
This project follows a date-based release cadence with semantic version labels.
- Auto-update: "Recheck" button next to "Restart & Update" so a newer release landing between download and restart can be fetched without restarting first
- Mastering: "Show AI recommendations" toggle + "Regenerate" button in the fullscreen overlay (Phase 3a); light-blue per-metric AI recommendation captions under each stat card and Mastering Checklist row (hidden until the v3.33 auto-run lands)
- Site: remove Windows "security warning" help expandable from the landing page
- Platform Normalization Preview: large applied-reduction readout in fullscreen bubbles
- Platform Normalization + Mastering Checklist: amber "Using Reference" indicator in reference mode
- Listening-device strip: full-width split (input | saved tags), single-row by default, flex-wrap
- Cmd+R reserved for Mix/Reference toggle — no longer reloads the Electron window
- Checklist row hover outline no longer clips on the left edge of the scroll region
- Site: Windows download help note explaining SmartScreen extract-and-run steps
- Inline Mix/Ref toggle on EQ row, AI EQ applies to selected bands only
- Enforce two-part version format (x.y), prevent non-zero patch
- Accurate Spotify comparison tip, click-free song/reference switching
- Fix volume matching tip, clean graph labels, add global Cmd+R shortcut
- Add level match and referencing workflow guidance to help dialog
- Fix AssemblyAI voice transcription in agent chat
- File picker remembers last-used directory
- Move EQ snapshots/state to unified file, add data storage rules to AGENTS.md
- Rewrite README with better focus and website-quality copy
- Add comment explaining level match, platform normalization, and reference interaction
- Fix Cmd+R event propagation, immediate EQ snapshot save
- Cmd+R reference toggle, custom shortcuts, song switcher stays open, remove duplicate text, verify AI EQ
- Enable HMR for faster dev, bypass EQ for reference tracks, apply platform normalization to reference, migrate EQ snapshots
- Spectrum hover shows Hz and dB values, full per-track EQ state, R key shortcut for reference toggle, richer AI prompt context, help dialog update, reverse snapshot order
- Agent notification badge, AI EQ UX improvements, per-track AI recommendations
- Properly disable Swift extension, rename Package.swift
- Add VS Code settings to disable Swift LSP for this workspace
- Revert custom hot reload, restore default dev workflow
- Make localStorage migration robust with logging and retry on failure
- Migrate localStorage user data to unified state on first load
- Enable auto-generated release notes from commits
- Folder-based export/import with localStorage dump
- Unified user state file with migration, full import/export, iCloud backup
- Auto-update toggle, dismissible banner, consistent version format
- Prevent app freeze on quit by adding SIGKILL escalation and force-exit timeouts
- Replace safeStorage/keychain with obfuscated file storage for API keys
- Version comparison handles two-part format and equal versions
- Auto-update via electron-updater (download + install without browser)
- Defer safeStorage keychain access to first mic interaction
- AI-recommended EQ curve + reference difference EQ overlay
- EQ snapshots stored per-track instead of globally
- Per-source EQ state for A/B, fix tonal balance bar accuracy
- EQ'd tonal balance preview toggle
- Hot reload dev workflow with Vite HMR + esbuild watch
- Song switcher plays on click, add EQ on/off toggle
- Smooth combined EQ curve, EQ snapshots (save/load/restore)
- Update README with new screenshots matching website
- Add using-reference labels to all sections, horizontal EQ sliders
- Per-band EQ gain sliders on spectrum analyzer
- A/B toggle bottom-left inline, song switcher as floating panel bottom-right
- Floating Mix/Reference A/B toggle in mastering fullscreen
- Add quick song-switcher panel in mastering fullscreen
- Change album checklist to text button matching Organize/Export style
- Add global album checklist button next to Rescan
- Add minus sign to Applied reduction value
- Version tracking → version management in hero subtitle
- Mid/side monitoring + visualizations during reference playback
- Center and enlarge screenshot hover expand icon
- Smoother fades, longer slide duration (5s per scene)
- Improve lightbox hover UX, add expand icon on screenshots
- Album art fullscreen preview on hover
- Revert to simple fades, consistent titles, reorder scenes, rename album view
- Remove build metadata from displayed version
- Display version as two-part (2.16), fix album art color profile
- Voice input UX overhaul + app logging system
- Switch to two-part versioning (x.y), tighten screenshot gap
- One window → one app
- Update wording, add AI mention to tutorials caption
- Tighten caption gap, add screenshot lightbox
- Re-research and upgrade all tutorial video links
- Wacky transitions, new screenshots, reordered scenes, authentic tutorials
- Add tutorials screenshot, equal grid layout
- Remove card backgrounds from download section, update gallery heading
- Restore original PNGs with transparency, revert dark bg flatten
- Flatten screenshots onto dark bg, new hero image
- Compress audio to MP3, remove duplicate hero screenshot
- Reorder scenes, add soundtrack, remove album art, rename to Built-in Tutorials
- Replace all site screenshots with 6 new PNGs and update gallery layout
- Show feature commit message in workflow run titles instead of version bump
- Force transparent backgrounds on all screenshot elements
- Add async sample rate metadata to inspector version cards
- Enforce pre-push and CI version bump checks
- Restructure layout — video first, feature cards with screenshots, remove borders
- Relicense project to PolyForm Noncommercial 1.0.0
- Use time jumping wording in checklist Shift+Tab hint
- Remove white border from screenshot images
- New screenshots gallery, updated explainer video, Remotion source
- Restore checklist shift-tab focus loop and widen song row title
- Align transport skips and restore version/help checklist UX
- Land evening feedback sweep and v2 release prep
- Normalize fixture paths for windows
- Unblock main and windows tests
- Land producer player recovery pass
- Rename agent back to Produciboi
- Refine Producey Boy UI + safe assistant settings reset
- Wrap compact panel title rows with drag/chat controls
- Allow steer-send while streaming
- Make settings panel scroll instead of clipping
- Ignore stdin EPIPE after stop/interrupt
- Seek playback when typing captures timestamp
- Fix checklist transport focus loop keyboard behavior
- Stop playback-time bottom scroll bounce
- Center open project clear button
- Fix K-meter and crest-factor preview state regressions
- Fix fullscreen loudness/peaks panel alignment
- Prevent header controls overlap with wrapping
- Update branding copy to Produciboi Agent
- Add panel-level Ask AI actions across mastering views
- Restore Ask AI panel metadata and typing in mastering UI
- Wire panel drag controls to Ask AI mastering prompts
- Move mastering drag handles into panel headers
- Fade checklist visibility by remaining todos
- Move drag handles to header row
- Clean up normalization copy and remove gain policy cards
- Fix mastering graph hover Y readouts to sample real data values
- Add one-time first-launch auto-open onboarding for agent panel
- Add draggable persisted mastering panel layouts
- Fix agent thinking/history session wiring and persistence coverage
- Refine Produceboi assistant help/history UX and empty-state guidance
- Improve agent streaming handling and add focused streaming e2e tests
- Add compact recent saved reference quick picks
- Always render all mastering fullscreen graphs
- Polish Produceboi panel UI and fix voice affordance state sync
- Refine per-song project controls to set/open/clear
- Add per-song project file links
- Improve status card help paths
- Capture checklist item version numbers in history
- Move checklist composer above mini-player
- Stop checklist typing from rewinding playback
- Add full-access system prompt to agent panel
- Scale reorder date opacity by song age
- Align mini level meter width with mini spectrum
- Add status card help tooltip with path guidance
- Blur checklist item textarea on Enter
- Restore and harden agent chat integration
- Remove checklist scroll hijacking and playback-coupled auto-scroll
- Support band isolation from mini spectrum analyzer
- Audit: tighten help tooltip tutorial relevance
- Clarify reorder header help icon grouping
- Fix help icon alignment
- Fix checklist Shift+Tab navigation and reset stale focus state
- Fix help icon alignment
- Add beginner-to-pro website help copy
- Improve website feature card UX
- Gate agent features behind default-off flag
- Add full agent chat panel with Claude CLI integration
- Add comprehensive mastering agent design document
- Add comprehensive agent chat panel design document
- Fix YouTube thumbnails in help modals: replace hallucinated video IDs with real ones
- Add 4 advanced mastering visualizations to fullscreen overlay
- Persist reference tracks per song, add recent references, resize album art, and click-to-seek on charts
- Unified header help button and move Shift+Tab hint to checklist footer
- Replace checklist trash icon with red X and fix metrics toggle persistence
- Clarify help tooltip copy
- Fix Space key on checklist transport buttons and Shift+Tab default focus
- Fix checklist hint text/position, platform preview tooltip, and crosshair y-label clipping
- Add Shift+click to exclude spectrum bands and PSD album art support
- Fix Shift+Tab on all checklist transport buttons, CSP img-src for thumbnails, and add ±1s mastering skip buttons
- Revert website video to previous version (before mastering features rebuild)
- Fix four UI issues: persist metrics toggle, align visualizations, compact folder help, resize album art
- Add interactive crosshair with axis value display to all charts
- Add platform normalization preview indicator icon in mastering headers
- Fix playback and mastering regression: add producer-media: to CSP
- Add blue active state for A/B buttons and half-width Quick A/B / Level Match cards
- Add global left/right arrow key shortcuts for 5-second seek
- Add skip/jump buttons to fullscreen mastering overlay transport
- Separate level meter help tooltip from spectrum analyzer
- Increase fullscreen spectrum analyzer and level meter resolution
- Fix YouTube thumbnails and external link opening in help modals
- Fix checklist modal Escape key: blur focused input before closing
- Fix checklist scroll glitching during audio playback
- Move Shift+Tab hint text from header to above checklist input
- Add album art upload and editable album title to main panel header
- Fix mastering side pane: extra metrics toggle and add missing normalization cards
- Replace help icon hover tooltips with click-to-open modal dialogs
- Fix tab navigation from -10s button going backward to input instead of forward to -5s
- Exclude PLAN.md from version bump requirement
- Add development log (PLAN.md) — cleaned for public viewing
- Remove PLAN.md from tracking and add to .gitignore
- Rewrite normalization and tonal balance tooltips with beginner-friendly per-platform explanations
- Add HelpTooltips for all non-mastering production features
- Rewrite visualization HelpTooltip text with rich, beginner-friendly explanations
- Label and source tonal/spectrum panels for reference mode
- Assert fullscreen spectrum resolution and bump version
- Add "Learn more" YouTube tutorial links to all HelpTooltips
- Fix HelpTooltip "?" icons wrapping to new line instead of staying inline
- Add hover tooltips (title attributes) to all buttons in App.tsx
- Re-add PLAN.md to repo (reviewed, no sensitive content)
- Increase checklist dialog max-height for more vertical space
- Polish mastering fullscreen UI: section headers, inline layout, pro diagnostics
- Add click-to-show HelpTooltip component to all mastering metrics
- Add proper axis labels to all analysis visualizations
- Add (Reference) indicators to all metric cards and visualization headers when playing reference track
- Update site with all new mastering features
- Add playback controls to mastering fullscreen overlay header
- Add saved reference tracks feature to mastering overlay
- Add loading UX for Quick A/B reference track loading
- Update README to highlight full mastering analysis suite
- Reinitialize checklist modal on mini-player track changes
- Rebuild Remotion promo video with mastering features
- Cover checklist overlay hover scroll behavior
- Add lean quick/core/full validation ladder
- Add comprehensive mastering analysis features
- Expose canonical state via per-folder symlink sidecar
- Redesign checklist capture flow and streamline mastering pane
- Add error boundary component for improved error handling
- Disable hot reload by default in dev
- Simplify checklist remove action affordance
- Add checklist mini player and typing capture polish
- Polish checklist and normalization workflow UX
- Add PLAN.md to .gitignore and untrack
- Remove PLAN.md and add to .gitignore
- Bump Producer Player to 1.0.1 and enforce version bumps
- Show parsed timestamps in migration preview checklist items
- Change migrate button icon from import tray to old man emoji
- Change migrate button icon from clipboard to import tray emoji
- Add Shift+click developer mode to Delete All button
- Populate timestampSeconds in LLM migration and add Delete All button to checklist
- Unify version source to package.json and release 1.0.0
- Add 48x48 favicon for crawler compatibility
- Improve Pages branding metadata and favicon assets
- Restore checklist textarea styling and composer UX
- Cover recent checklist UX + shared-state gaps
- Add in-app update checks and download flow
- Make checklist item fields auto-grow
- Confirm clearing completed checklist items
- Update landing page headline copy
- Repair release workflow version bump logic
- Auto-bump app version on releases
- Disable dependabot updates
- Simplify lower download section to GitHub releases button
- Remove internal download note from landing page
- Finish checklist and download backlog
- Site: use single universal mac download button
- Improve landing downloads with stable latest URLs
- Fix normalization card layout overflow in mastering pane
- Refine landing page download fallback and nav branding
- Fix landing page download asset selection
- Tweak landing page header logo size and alignment
- Fix landing page download CTA flash and remove note
- Cover dev-to-packaged ratings state persistence
- Rename bottom download CTA to GitHub
- Add MAS preflight and App Store submission tooling/docs
- Tighten MAS preflight workflow and docs
- Remove OS detection from landing page download CTA
- Avoid duplicate platform download button on landing page
- Site: make lower download CTA direct too
- Ship universal mac desktop build and single mac download
- Add direct platform download buttons with latest-release auto-linking
- Remove full stop from website title
- Site: remove top nav links
- Update website subtitle to mention more
- Update website title to finish records the right way
- Fix shared ratings/checklists persistence across dev and packaged app
- Fix sample-rate fallback when ffprobe is unavailable
- Update video section heading copy
- Use Node-invoked Playwright CLI for cross-platform CI
- Fix Windows runtime smoke runner command resolution
- Fix cross-platform smoke test filtering in CI
- Fix Linux CI Electron launch for runtime smoke tests
- Add Windows and Linux runtime smoke tests in CI
- Update website footer copyright year to 2026
- Update website card copy to files
- Update explainer video copy to files
- Add empty-state Add Folder CTA and refresh screenshots/video
- Correct misleading 'unsigned' log message in build-mac.mjs
- Add macOS code signing & notarization infrastructure
- Add vitest devDependency and resolve type errors
- Add psychedelic purple kaleidoscope background + simplify feature copy
- Add AGENTS.md with project rules (screenshot/video refresh, deploy, etc.)
- Spectrum/meter UX — toggle band solo, freeze on stop, volume width
- Add LLM-powered note migration modal
- Add 'Show' button to reveal iCloud backup folder in Finder
- Add tooltips to mastering metrics to clarify static vs real-time values
- Add iCloud Drive backup for checklists, ratings, and preferences
- Make checklist items multi-line textareas that expand to show full text
- Add real-time spectrum analyzer, level meter, and interactive band soloing
- Change ±10s skip to ±5s, add ±1s skip buttons
- V6 explainer video — psychedelic purple + 60fps
- Add -10s/+10s skip buttons to checklist dialog
- V5: add background music (thedrums.mp3), update checklist UI mockup, compress for web
- Add play/pause button to checklist dialog
- Replace repeat button text with standard repeat icon
- Add checklist button to transport bar + 'Set now' timestamp capture button
- Replace explainer video with tasteful v4 — minimal, dark, restrained
- Add 'by 3000 AD' branding behind feature flag (OFF by default)
- Make checklist timestamp preview clickable to seek
- Show timestamp preview next to checklist input
- Add +10s / -10s skip buttons above transport prev/next controls
- Update explainer video v3 — add timestamp checklist feature showcase
- Reverse checklist item order (newest first)
- Add time-stamped notes feature card
- Add playback-position timestamps to checklist items
- Add 'by 3000 AD' branding in nav top-left
- Checklist click-outside-close, remove dup close btn, export ordering JSON, search shows all versions, e2e tests
- Replace placeholder video with polished text-based explainer
- Replace explainer video with diverse scene-based version
- Rebuild explainer video with higher quality and more scenes
- Add explainer video and embed it on the landing page
- Move screenshot to hero, add video explainer placeholder and script
- Release: publish real snapshot versions and add MIT license
- Add full expanded mastering/reference workspace
- Add ordered latest-version export utility
- Improve public landing page, add Reddit outreach shortlist, and enforce version-suffix filtering
- Ship producer-player catch-up fixes and salvage pass
- Ship mastering phase 2 recovery with platform normalization preview
- Add mastering preview phase 1 shell
- Add macOS App Store build scripts and docs
- Add playlist order export/import JSON flow
- Ship follow-up UX polish for playback, drag/drop, and sidebar
- Audit PLAN chat coverage and add transcript reconciliation workflow
- Add Producer Player app icon direction and macOS icon assets
- Add README app screenshot with active and archived files
- Improve pages SEO and run desktop release matrix on push
- Polish tracks UX, player dock, and folder/version behavior
- Add prominent naming guidance under folder picker
- Add playback, actual-song UX, ordering, and organize workflow
- Ship real macOS prebuilt release pipeline and publish docs
- Add public landing page and GitHub Actions packaging workflows
- Clean up release versioning and bump to v0.2.0
- Remove A/B mastering card from features
- Hide folder path in screenshots, fix screenshot script to use IPC for folder linking
- Remove path-linker from production UI, truncate sidebar folder paths
- Hide paste-folder-path in screenshots, retake with clean UI
- Screenshots with active spectrum analyzer & 5-version history
- Ensure video section is visible and prominent
- UX copy — improve import tooltip wording
- Spotify normalization policy + UX copy pass
- External URL allowlist + round checklist timestamps to whole seconds
- Use web-compressed video (1.4MB) for faster loading
- Mastering panel flex layout + retake screenshots at 1440×900
- Use video frame as poster, improve video quality (CRF 23, 657KB)
- Resize screenshots to sensible 1600x1268 (was absurdly tall 1968)
- Increase screenshot height to 1600×2000 to eliminate sidebar cutoff
- Timestamp preview shows whenever audio is loaded
- Title branding links to GitHub Pages site instead of Actions
- Fix A/B playhead boundary condition, stabilize naming guidance test, deduplicate tests
- Wire 3000 AD link to Linkfire URL
- Restore empty styles.css for deploy validation
- Require explicit playback switch after row selection
- Show loading state before track scan completes
- Clear legacy service workers that can trap stale loading state
- Restore mix playhead after reference audition
- Preserve playback fidelity for AIFF cache + row title casing
- Audit and harden Producer Player LUFS analysis
- Reject root/top-level folder paths in linkFolder to prevent chokidar hang
- Fix near-end playhead restore on track switch
- Fix playback UX and old-folder album leakage
- Scope tracks to selected watch folder
- Restore reliable default open-in-finder behavior
- Harden album reorder playback state and refresh UX docs
- Fix playback runtime and harden order persistence durability
- Complete phase1 checklist pass and harden playback + unlink
- Restore desktop mac release script wiring
- Build shared packages before domain/app typechecks
- Build shared packages before app typechecks in CI
- Run CI workspace commands by path
- Track TS packages so CI can resolve workspaces
- Make CI workspace checks path-based
- Match screenshot data to Ethan's real app (version counts, ratings, song names)
- Use real song names from Ethan's library for screenshots
- Reorder features: version tracking → tracklist → timestamped notes → normalization → A/B
- Kaleidoscope: balance visuals between perf and beauty
- Optimize kaleidoscope background animation
- Reduce feature cards from 7 to 4 core fundamentals
- Video: re-render explainer with latest feature copy and screenshots
- Rewrite feature cards with compelling, producer-focused copy
- Refresh screenshots and re-render explainer video with latest UI
- Video: v6 psychedelic purple explainer — 60fps 1080p CRF 18
- Move Set Now button and timestamp preview to right of checklist input
- Move play/pause button from bottom actions to checklist modal header
- Compress explainer video 4MB→466KB for faster loading
- Retake screenshots with bigger window (1600x1100)
- Update app screenshots with real running app
- Update README with current features, badges, and website link
- Site: rewrite homepage from scratch
- Refresh public GitHub page copy and status
- Expand producer-player E2E coverage and stabilize UI workflows
- Assert path-linker disabled banner stays hidden in test mode
- Deepen checklist, support-link, and mastering reference coverage
- Polish top-left Producer Player branding header
- Publish rolling snapshot releases on main pushes
- Restore GitHub release notes category config
- Remove add-folder helper copy
- Polish production playback UI and messaging
- Design: apply Queue Halo app icon
- Polish public landing page and repo hygiene
- Archive legacy swift mvp
- Polish pages seo metadata and sitemap
- Harden folder-structure e2e and domain integration coverage
- Publish repo and wire live Pages/demo links