Repository navigation
Wavecrate 19.1.0
Release Metadata
- Channel: Stable
- Version: 19.1.0
- Target branch: release/19.1
- Commit: c373aa5
- Build date: 2026-07-04
- Promoted from: v19.1.0-rc.3
- Previous release boundary: v19.0.0
Artifacts
- macos / aarch64:
wavecrate-19.1.0-macos-aarch64.zip - macos / x86_64:
wavecrate-19.1.0-macos-x86_64.zip - windows / x86_64:
wavecrate-19.1.0-windows-x86_64.zip
Checksums
- Checksums:
checksums-19.1.0.txt - Signature:
checksums-19.1.0.txt.sig
Manual Notes
Wavecrate 19.1.0 stable release promoted from v19.1.0-rc.3.
Generated Changes
[19.1.0-rc.3] - 2026-07-04
🐛 Bug Fixes
- Keep GitHub release body out of release assets (#719)
💼 Other
- Preserve legacy nightly changelog sections (#720)
[19.1.0-rc.2] - 2026-07-04
💼 Other
- Bound RC and stable GitHub release bodies (#718)
[19.1.0-rc.1] - 2026-07-04
🚀 Features
- Add lightweight playback descriptor cache
- Use display-only waveform loads after instant audition
- Use metadata-only display for large instant WAV loads
- Add macOS external file drag support (#713)
🐛 Bug Fixes
- Avoid sample identity fingerprinting during normal navigation
- Avoid navigation stalls from last played updates
- Keep navigation load handoff off blocking IO
- Keep automatic prep off browsing path
- Avoid source-switch and browser projection stalls
- Avoid source DB reopen during metadata delta refresh
- Avoid recursive folder projection warm on UI thread
- Avoid cloning source trees during source selection
- Cancel stale sample loads during rapid navigation
- Keep playback handoff frames active
- Keep cache indicator probes sidecar-only
- Prioritize playback frame drains during navigation
- Fix Ubuntu release validation ALSA deps (#709)
- Fix staged PortalSurfer changelog assembly (#712)
- Fix Windows release archive root layout
💼 Other
- OPT-1002 Preserve focus across filtered samples
- OPT-1008 Verify release checksum signing keys before publish
- OPT-1009 Publish PortalSurfer releases via staged commit
- OPT-1010 Gate nightly publish on validation
- OPT-1011 Instrument release workflow publishes
- Ignore stale sample load handoffs during navigation
- Coalesce autoplay during rapid sample navigation
- Lengthen sample autoplay debounce during navigation
- Start cached navigation playback immediately
- Reduce navigation queue and progress poller stalls
- Reduce browsing IO churn during sample navigation
- Start persisted cache playback before waveform hydration
- Start playback-ready audio before waveform completion
- Profile slow UI navigation frames
- Load source metadata tags off the UI thread
- Demote waveform load after descriptor audition
- Start large WAV playback before cache migration
- Skip large WAV sidecar reads during instant audition
- Defer last-played persistence during playback
- Flush stale redraws during navigation bursts
- Flush pending redraws during navigation routes
- OPT-1012 Enforce release archive layout
- OPT-1021 Reduce protected playmark copy stalls
- OPT-1020 Preserve bit depth during WAV extraction
- Harden nightly release validation lane (#710)
- Allow protected-source drag-out to source roots (#711)
- Accept nightly SemVer release log headers (#714)
- Handle normalized release zip manifest paths
- Ignore release zip directory entries in verifier
[19.1.0-nightly.20260702+981f180e] - 2026-07-02
🚀 Features
- Add playmark drag ghost preview (#698)
💼 Other
- OPT-988 move map projection contracts (#688)
- OPT-989 move dirty graph contracts into app core (#689)
- OPT-990 own browser source state contracts in app core (#690)
- OPT-991 own projection state contracts in app core (#691)
- OPT-992 shrink app-core controller bridge
Retire the app_core app_api controller bridge export and move the retained controller seams behind focused app-core adapters.
- Prompt for protected extraction target sources (#693)
- OPT-1006 show protected source block flashes
Show a visible red error flash across protected source rows, files, waveform feedback, and the protected source lock icon when blocked destructive actions are attempted.
- OPT-1005 render playmark resize handles above boundaries
Paint waveform selection handles above boundary and marker lines so playmark and editmark resize handles remain visually prominent.
- OPT-978 keep beat guides visible while sliding selections
Render beat guides from live playmark and editmark slide previews so guides remain visible and aligned during selection moves.
- OPT-977 show beat guides while painting selections
Render beat guides from live playmark and editmark creation previews so rhythmic feedback appears immediately while painting selections.
- Harden nightly release promotion ordering (#699)
[19.1.0-nightly.20260702+961b0315] - 2026-07-02
💼 Other
- Verify PortalSurfer downloads through gate (#687)
[19.1.0-nightly.20260702+b0d0b330] - 2026-07-02
🐛 Bug Fixes
- Fix PortalSurfer release timestamp verification (#686)
💼 Other
- OPT-987 move browser projection cache contracts (#685)
[19.1.0-nightly.20260702+5e5f4198] - 2026-07-02
🚀 Features
- Use path-safe PortalSurfer nightly build ids
[19.1.0-nightly.20260702+1427ce7c] - 2026-07-02
🚀 Features
- Add browser context menu shortcut hints
- Add release train preparation workflow (#679)
💼 Other
- Align context menu labels and shortcut hints
- Point Radiant submodule at merged menu commit
- Align nightly release asset names (#677)
- Generate structured RC and stable release logs (#678)
- Factor shared release workflow helpers
- Validate promoted RC release artifacts before stable
- Publish RC and stable releases to PortalSurfer
- Verify published release artifacts
⚙️ Miscellaneous Tasks
- Update Radiant menu label width handling
- Update Radiant compact menu width
[19.1.0-nightly.20260702+30c443a8] - 2026-07-01
🐛 Bug Fixes
- Keep collection markers inside their column
- Keep compact column decorations inside cells
- Keep sample labels left of column dividers
💼 Other
- Align collection markers left of header divider
- OPT-959 Align W context menus to pointer anchors (#675)
-
Align shortcut context menus with pointer anchors
-
Use runtime pointer snapshots for shortcut menus
-
Use live pointer for playmark shortcut menus
-
Toggle context menus with W shortcut
-
Point Radiant submodule at merged OPT-959 commit
[19.1.0-nightly.20260701+4774e3eb] - 2026-07-01
💼 Other
- Reject symlinked source database paths (#652)
- OPT-961: contain delete recovery journal paths
Harden delete recovery journal path handling before restore, purge, rollback, and retained restore operations.
- OPT-942: constrain public release catalog matching
Limit public release catalog matching to active Wavecrate download targets and keep historical Linux entries ineligible for current downloads.
- Set up Wavecrate 19.1 release pipeline
Set up 19.1 release metadata, nightly/RC/stable workflows, updater channels, and release contracts.
- Plan app-core legacy boundary migration
Close OPT-949 by documenting the current app-core legacy boundary inventory and creating scoped Linear follow-up issues.
- Clarify doctor Linux diagnostics
Close OPT-953 by labeling Linux/WSL doctor paths as developer tooling only and preserving supported app install messaging for Windows/macOS.
- Clarify README Linux tooling scope
Closes OPT-946
- Clarify manual usage platform docs
Closes OPT-947
- Clarify startup perf calibration policy
Squashed OPT-952 implementation.
- Clarify public docs supported storage paths
Squashed OPT-945 implementation.
- Clarify updater apply test platform fixtures
Squashed OPT-954 implementation.
- Advance Radiant submodule after OPT-952 merge
Radiant stack was merged upstream with merge commits; this advances the Wavecrate submodule pointer to Radiant main.
- OPT-941 align updater asset platforms with release contract (#668)
- OPT-940 disable unsupported Linux update identities (#669)
- OPT-951 document headless ALSA validation tooling (#670)
- Flip context menus near bottom edge (#655)
- Synchronize shortcut help with registered bindings (#672)
- OPT-957: Align column drop marker with reorder boundary (#671)
-
OPT-957 align column drop marker with reorder boundary
-
Align column drop marker with divider handle
🚜 Refactor
- Rename installer branding to Wavecrate
Rename installer-visible identity from SemPal to Wavecrate while preserving explicit uninstall-only fallback support for legacy SemPal registry entries. Closes OPT-937.
- Remove stale drag position refresh path
Remove the unused compatibility drag-position refresh entrypoint and stale egui wording while preserving the active Radiant/native typed drag update path. Closes OPT-948.
- Remove unused Linux cross config
Close OPT-944 by removing unused Cross.toml Linux ARM64 cross-compilation config after verifying current release workflows are Windows/macOS only.
[nightly-b6195-5ca8e6fc] - 2026-06-30
🚀 Features
- Show extracted samples during playmark drags (#643)
🐛 Bug Fixes
- Fix normalized audition for long file-backed samples (#645)
-
Fix normalized audition for file-backed long samples
-
Uncap normalized signal preview gain
💼 Other
- Ignore cfg-test fixture blocks in native guardrail (#637)
- Route waveform gain normalization through playback runtime
- Harden sample identity after waveform edits (#642)
-
Invalidate persisted waveform cache after edits
-
Reload selected normalized sample after extraction edits
-
Focus protected extraction derivatives
-
Instrument sample identity transitions
-
Refollow refreshed selected sample rows
-
Add sample payload identity diagnostics
-
Log sample identity at standard level
-
Evict stale extraction waveform caches
- Limit keep bumps to whole-file handoffs (#644)
- Stop X sample selection toggle from advancing focus (#646)
- Redact issue gateway error bodies (#648)
- Clarify active release platform labels (#649)
- Route protected extraction outputs to primary (#650)
- Constrain manual download matching to supported platforms (#651)
🚜 Refactor
- Move folder drag-drop transaction I/O off UI path (#636)
- Remove default Assets source fallback
- Move duplicate file ops off native UI paths
- Move starmap layout DB reads off native UI path (#641)
- Rename installer Start Menu shortcut to Wavecrate (#647)
[nightly-b6178-bf9399b0] - 2026-06-30
🐛 Bug Fixes
- Fix release changelog binding
[nightly-b6176-02cd47eb] - 2026-06-29
🚀 Features
🐛 Bug Fixes
- Keep rating hotkeys on current sample (#631)
💼 Other
[nightly-b6171-68b3d994] - 2026-06-29
💼 Other
- OPT-932 Distinguish sample row focus
- OPT-931 Extract selected whole files with E
- OPT-921 slide playmark with arrow keys
- OPT-917 Add harvest done hotkey (#621)
- OPT-916: Switch active playback to looped mode immediately (#620)
-
OPT-916 retarget active playback on loop toggle
-
Handle pending loop playback progress handoff
- OPT-915 Keep focus after protected extraction (#619)
- OPT-906: Keep the playhead line behind the W context menu (#618)
-
Fix waveform context menu playhead layering
-
Hide stopped playhead behind waveform context menu
-
Clip stopped playhead around waveform context menu
- OPT-904 Remove starmap double-click zoom (#617)
- OPT-891 Gate harvest sample column (#616)
- OPT-890 Gate harvest context menu actions (#615)
- OPT-881 Suppress select all in starmap (#614)
- OPT-966 Activate default Harvest filter mode (#628)
- OPT-967 Gate Curation column by workflow state (#629)
⚙️ Miscellaneous Tasks
- Update README.md
- Update README with website and documentation links
Add project website and documentation links to README
- Update README.md
[nightly-b6152-3e3deee4] - 2026-06-29
💼 Other
- OPT-960 Enlarge help tooltip button
- OPT-955 Remove Shift-X silence zoom shortcut
- OPT-934 Apply harvest done to selected files
[nightly-b6146-d41a6373] - 2026-06-28
🚀 Features
- Add Wavecrate mdBook documentation
- Add quick user guide to Wavecrate docs
- Add Starmap to docs tour
- Add source button tooltip
- Add sidebar filter and tag tooltips
- Add forced normalized audition preview (#613)
🐛 Bug Fixes
- Fix sample rating shortcut docs
- Keep extracted waveform overlays during selection drags
Closes OPT-895
- Keep playmark resize overlays live (#612)
💼 Other
- Replace docs tour screenshots with current UI
- Default mdBook auto theme to light
- Restyle source list rows
Closes OPT-889
- Wavecrate: replace clipped filter row labels
Use readable sidebar filter row labels for OPT-886.
- Gate loaded sample drag tooltip behind help mode
🚜 Refactor
- Remove stale temporary sample mark shortcut
- Remove stale browser search and rename shortcuts
- Remove stale source item shortcut docs
- Remove Linux app support references
- Remove developer material from public docs
- Move common problems into FAQ
- Remove support-only FAQ entries
📚 Documentation
- Document advanced Wavecrate workflows
[nightly-b6121-fe8c1462] - 2026-06-28
🚀 Features
- Add M hotkey for waveform mute selection (#605)
🐛 Bug Fixes
- Fix editmark slide preview baseline
- Fix editmark resize undo transaction
OPT-900
💼 Other
- OPT-898: Add Command-Option sample slide gesture (#601)
-
Add command-option sample slide gesture
-
Preview sample slide waveform motion
- OPT-905 Rename similarity map terminology to Starmap
- Clear stale playhead visuals on playback restart
[nightly-b6112-54e59295] - 2026-06-28
🐛 Bug Fixes
- Fix nightly publish checkout
💼 Other
- OPT-887: Replace source role text badges with icons
-
Replace source role text badges with icons
-
Use white source role icons
- Replace beat guide steppers with count input
- Place beat guide count beside toggle
- OPT-897 add double-length sample duplicate action
- OPT-901 Make waveform fades undoable transactions (#598)
- OPT-899 Group editmark volume undo transactions (#599)
🚜 Refactor
- Remove redundant Harvest filter arrow
Signed off by user.
🎨 Styling
- Refine settings gear icon
[nightly-b6099-0ee25ccc] - 2026-06-28
🚀 Features
- Add crash recovery for staged folder deletes
- Use delete staging paths in rollback errors
- Add native map tab projection and update action bridge
- Feat(gui): wire radiant chrome projection for legacy parity
- Feat(gui): wire map/update chrome projection into native shell
- Feat(gui): increase native projection row window and scale tests
- Feat(gui): complete map/update projection labels for native parity
- Feat(gui): complete P2 native-shell parity closure and docs
- Use app_core prompt conversions in native bridge input handling
- Add migration boundary enforcement check to CI
- Use improved browser wheel handling in native Vello runtime
- Show averaged FPS in native status bar
- Add GUI performance benchmarking scaffolding
- Add src module map and submodule guidance in AGENTS
- Add docs/TEST.md suite inventory and map it in AGENTS
- Add startup crash instrumentation and logging hooks
- Add native bridge and profiling control instrumentation
- Add agent memory log and local CI freshness check
- Add quality-score drift enforcement for guardrails
- Add run contract manifest smoke checks for startup/runtime outcomes
- Feat(native-shell): wire radiant slot layout and volume actions
- Feat(playback): smooth volume slider drag and defer persistence
- Feat(gui-runtime): wire dirty segment incremental frame pipeline
- Feat(gui-runtime): integrate retained static segment pipeline
- Feat(perf): add frame-quality telemetry and guardrails
- Feat(perf): automate frame-quality threshold lock output
- Use set-based scan diff index removals
- Add hot-path lock and allocation telemetry probes
- Feat(waveform): supersample render width for higher detail
- Feat(waveform): raise supersampling for sharper native rendering
- Feat(browser): autoplay sample on focus navigation
- Feat(gui): adopt declarative radiant bridge flow
- Feat(waveform): support held up/down sample stepping
- Feat(native-shell): wire waveform option actions and triage controls
- Feat(gui): pull waveform hover cursor preview update
- Feat(waveform): restore edit-selection fade handles in native shell
- Feat(waveform): add loop toolbar toggle with selection loop bar
- Feat(theme): apply grayscale shell palette with vibrant focus accents
- Feat(theme): retune shell accents to orange cyan blue
- Feat(browser): wire source context menu actions
- Feat(gui): enable waveform wheel zoom on hover
- Feat(browser): show red missing-file marker in sample rows
- Add native PowerShell agent preflight and CI checks
- Use SVG icons for all waveform toolbar buttons
- Show hover tooltips for waveform toolbar icons
- Add deck backplate styling
- Add browser metadata tag chips
- Add waveform edit fade curve controls
- Use resize edge hover targets
- Improve browser search focus visuals
- Use fill for selected sample rows
- Add folder tree hover highlight
- Add source button hover feedback
- Add quick local development checks
- Add browser search hover feedback
- Highlight waveform toolbar icons on hover
- Highlight BPM snap state
- Highlight normalized audition state
- Highlight focused BPM input
- Add fine BPM arrow stepping
- Improve browser search text editing
- Strengthen waveform toolbar icon states
- Improve local build speed workflow
- Improve rating filter active state
- Add faster local release run profile
- Add locked keep browser filter
- Add inverted browser rating filters
- Add four-beat smart-scale BPM resize
- Add browser scrollbar dragging
- Use live transport progress for native playhead
- Add waveform beat grid lines
- Show sample job progress in status bar
- Improve fast playhead motion trail smoothness
- Feat: add gui test platform foundation
- Feat: add gui test cli
- Add GUI fixture packs and AIV smoke harness
- Feat(gui-test): add manifest-driven desktop AIV suite
- Feat(browser): restore random navigation mode
- Feat(scripts): add powershell cleanup audit helper
- Feat(gui-test): cover browser scrollbar automation nodes
- Add silence split waveform slicing tool
- Add transactional UI undo history
- Improve waveform slice detection and export
- Use exact action for waveform click playback
- Add waveform click tracing
- Feat(selection-export): flash immediately on submit
- Add retained folder delete recovery
- Add retained restore equal-timestamp recovery test
- Add browser similarity mode action
- Add source folder visibility toggle
- Improve browser drag handling and waveform grid controls
- Add playback drag snap override coverage
- Add rename prompt for folder drop conflicts
- Add Shift+E keep-2 waveform exports
- Add BPM exact duplicate waveform cleanup
- Add locked loop override modes
- Use playmark as duplicate cleanup anchor
- Show source scan progress in footer
- Add compare anchor playback workflow
- Add X selection toggle regression tests
- Add clipboard copy action for sample files
- Add browser duplicate cleanup mode
- Add waveform keyboard micro-slides
- Add session-scoped browser sample marks
- Add dual folder panes to the sidebar
- Feat: fill waveform and add transient glow
- Feat(scripts): add pull-and-run release wrapper
- Add audio engine status chip
- Add external drag instrumentation
- Feat(browser): show similarity strength bars in list
- Feat(browser): spread similarity bar fills by query
- Feat(browser): add sample auto rename
- Feat(browser): add auto rename fallbacks
- Feat(radiant): document the public widget model
- Feat(browser): harden selection and metadata refresh flows
- Feat(ui): pilot radiant status bar slice
- Feat: land waveform header surface migration
- Feat(gui): migrate waveform toolbar surfaces
- Feat(logging): extend debug diagnostics coverage
- Add idle analysis logging regression tests
- Add regression coverage for stereo loop spans
- Add auto rename churn regression
- Add scoped status ownership
- Add sample-frame selection coordinate contract
- Add tag sidebar auto rename
- Use explicit Radiant compatibility namespace
- Add source tag catalog schema
- Render auto-rename browser row states
- Use generic Radiant startup timing artifact
- Use neutral Radiant compat namespace
- Use Radiant virtual list window in browser rows
- Use Radiant retained vector in native DTOs
- Use Radiant automation primitives in native DTOs
- Use Radiant frame result in native DTOs
- Use Radiant normalized range in native DTOs
- Use Radiant chrome feedback primitives in native DTOs
- Use Radiant list primitives in native DTOs
- Use Radiant state primitives in native DTOs
- Use Radiant update panel in native DTOs
- Use Radiant confirm prompt in native DTOs
- Use Radiant form primitives in native DTOs
- Use Radiant recovery summary in native DTOs
- Use Radiant health state in native DTOs
- Use Radiant spatial point in native DTOs
- Use Radiant split pane slot in native DTOs
- Use Radiant channel view mode in native DTOs
- Use Radiant split pane row in native DTOs
- Use Radiant editable tree actions
- Use Radiant editable tree row
- Use Radiant spatial panel
- Use Radiant split pane tree panel
- Use Radiant pill editor panel
- Use Radiant recency list state
- Use Radiant content list rows
- Use Radiant timeline marker previews
- Use generic pill editor composition helpers
- Use generic Radiant SVG parser from Sempal icons
- Use Radiant normalized viewport projection
- Use Radiant rectangle geometry helpers
- Use Radiant rectangle helpers in layout adapters
- Use Radiant invalidation mask for native dirty segments
- Use Radiant split pane slot selection
- Use Radiant content list panel
- Use Radiant content list actions
- Use Radiant timeline viewport
- Use Radiant timeline edit preview
- Use Radiant signal raster preview
- Use Radiant signal chrome state
- Use Radiant signal tool state
- Use Radiant timeline transport state
- Use Radiant timeline feedback events
- Use Radiant timeline presentation state
- Use Radiant preference panel state
- Use Radiant retained segment mask
- Use Radiant retained segment revisions
- Use Radiant split pane sidebar state
- Use Radiant preference state for options surfaces
- Use Radiant timeline surface state
- Use Radiant timeline motion state
- Use generic motion state in waveform toolbar
- Use generic motion state in waveform overlays
- Use generic motion state in waveform header
- Use generic waveform hit-test projections
- Use generic waveform static projections
- Add Sempal-owned compatibility contract
- Use generic form target in audio picker helpers
- Use Radiant generic runtime options directly
- Use local shell automation snapshots
- Use local shell shot snapshots
- Use generic automation snapshot conversion
- Use Radiant compat runtime artifacts
- Use Radiant legacy native Vello compat
- Use generic Radiant bridge aliases
- Use local native shell model for snapshots
- Use Radiant gui runtime legacy Vello entrypoint
- Use app-core automation DTOs in compat contract
- Use deploy key for Radiant submodule CI
- Use Radiant deploy key during submodule fetch
- Add deferred maintenance DB telemetry
- Add sidebar filter dropdown controls
- Use static widget nodes in Sempal chrome surfaces
Summary:
- convert Sempal chrome composition surfaces to build static widget nodes directly for non-emitting leaves
- remove leftover none-mapper and boxed custom-widget paths from parent Sempal surface construction
Validation:
- cargo fmt
- cargo test -p sempal browser_chrome_surface --lib
- cargo test -p sempal sidebar_surface --lib
- cargo test -p sempal waveform_header_surface --lib
- cargo test -p sempal waveform_toolbar_surface --lib
- cargo test -p sempal top_bar_surface --lib
- cargo test -p sempal status_surface --lib
- cargo test -p sempal status_bar_progress --lib
- powershell -ExecutionPolicy Bypass -File scripts/ci.ps1 smoke
- Use default GUI theme in Sempal shell
Summary:
- remove Sempal's custom native-shell dark palette override
- derive shell visual tokens from the default GUI/Radiant theme via ThemeTokens::dark_for_tier
- derive remaining shell chrome colors from default theme tokens instead of custom Sempal constants
Validation:
- cargo fmt
- cargo test -p sempal style --lib
- cargo test -p sempal native_shell_runtime --lib
- cargo test -p sempal chrome_layout --lib
- powershell -ExecutionPolicy Bypass -File scripts/ci.ps1 smoke
- Use Radiant widget input in Sempal runtime bridge
Summary:
- remove Sempal's duplicate RetainedCanvasInput enum
- route retained canvas input as Radiant WidgetInput directly from CanvasMessage::Input
- keep Sempal-specific interpretation at the hit-testing/action boundary
Validation:
- cargo fmt
- cargo test -p sempal native_shell_runtime --lib
- rg scan found no RetainedCanvasInput, retained_input_from_widget_input, WidgetSpec, WidgetKind, WidgetMessageMapper, SurfaceNode::widget, custom_widget_box, or Box in Sempal src
- powershell -ExecutionPolicy Bypass -File scripts/ci.ps1 smoke
- Use Radiant primitives for GUI cleanup
- Use Radiant view API for Sempal chrome
- Use tighter Radiant layout defaults
- Use bundled Sempal UI font
- Use Radiant layout defaults in rebuild sample
- Add resizable rebuild folder pane
- Add default waveform view to rebuild UI
- Add folder tree to rebuild UI
- Add rebuild source selector
- Add source add control to rebuild UI
- Use fast raw waveform in rebuild UI
- Add rebuild folder rename hotkey
- Add rebuild audio file rename
- Add rebuild sample playback
- Add waveform click playback
- Add rebuild browser keyboard navigation
- Add waveform play start marker
- Add rebuild waveform play and edit selections
- Add rebuild waveform toolbar transport icons
- Render rebuild waveform selections above GPU surface
- Add GUI edit selection fade handles
- Use Radiant stack overlays for waveform fades
- Add default GUI debug logging
- Show waveform selection end markers
- Render sample list cells as text
- Add sortable resizable sample columns
- Use Radiant smooth hover animation cadence
- Add default GUI loop playback toggle
Adds the default GUI Loop toolbar control and wires it into playback.
- Improve default GUI waveform band separation
Improves default GUI waveform band extraction and updates Radiant to the sharper GPU signal shader.
- Use Radiant latest task helper for sample loads (#323)
- Use Radiant shortcut layer in GUI shortcuts (#324)
- Use Radiant index viewport for waveform navigation (#325)
- Use Radiant retained segment plans (#333)
- Feat: make audio config panel movable
- Use Radiant surface layout helper (#349)
- Use LayoutOutput clamped rect helper (#350)
- Use LayoutOutput clamped rects in adapters (#351)
- Use LayoutOutput clamped rects in control helpers (#352)
- Use LayoutOutput rect helpers in overlay adapters (#353)
- Use LayoutOutput rect helpers in sidebar header (#354)
- Add default GUI file copy shortcut (#364)
- Add Backspace delete shortcut (#366)
- Add default GUI browser context actions (#367)
-
Add loop playback shortcut
-
Add default GUI browser context actions
- Show waveform loading state in default GUI (#368)
- Show selected sample count in default status bar (#371)
- Add default job details popover (#373)
- Show indeterminate default scan progress (#374)
- Use global handoff staging directory
- Add persisted audio write format policy
- Show write format in destructive edit prompts
- Group waveform widget state into props
- Use source removal as source-add reversal
- Scope YOLO mode to audio edit warnings
- Show YOLO apply action on edit warnings
- Use command-specific destructive warning buttons
- Use command names in YOLO warning action
- Use native audio settings window (#444)
- Use overlay dropdown for audio backend
Replace the audio backend option grid with a Radiant dropdown rendered as an overlay.
Add click-outside and Escape dismissal, update context-menu dismiss regions, and advance vendor/radiant to the merged dropdown overlay support.
- Use dropdowns in audio settings window
- Use Radiant drag previews for folder browser
- Add waveform file drop feedback (#479)
- Add Wavecrate registration gate
Adds the Wavecrate server-registration launch gate, signed lease validation, GUI update messaging, and registered build tooling.
- Add internal Wavecrate build mode
Add an explicit internal build mode that skips registration only when requested and keeps registered release builds on the signed release path.
- Show sample rate in audio status pill
- Add waveform range drag extraction
- Preserve source focus after range extraction
- Show extracted waveform ranges
- Strengthen extracted range markers
- Add root internal run script
- Add source removal context action
- Add sidebar filter and metadata sections
- Add metadata tag input chips
- Add sample name view toggle
- Scope tag labels to selected sample
- Improve metadata tag panel
- Improve metadata tag entry workflow
- Add expanded tag library sidebar
- Show tag library in default GUI
- Toggle tags from GUI tag library
- Group GUI tag editor by target categories
- Add category step for new GUI tags
- Float GUI tag autocomplete upward
- Overlay tag autocomplete within metadata panel
- Use Radiant floating overlay for tag autocomplete
- Add sidebar click regressions and diagnostics
- Render tag autocomplete suffix inline
- Render tag autocomplete suffix as ghost text
- Seed playback type metadata tags
- Add selectable metadata tag chips
- Use Radiant release state for tag chips
- Add tag library category drag and lock styling
- Show playback metadata tags first
- Group metadata tags by target category
- Use neutral tag category headers
- Add tag editor delete context menu
- Improve Wavecrate sample workflow interactions
- Add sample collections sidebar
- Improve sample collections and waveform caching
- Add target pre-commit cleanup rule
- Use Radiant latest scheduling for sample load debounce
- Use Radiant idle priority for sample loads
- Use Radiant frame cadence diagnostics
- Use Radiant widget activation helper
- Use Radiant details column drag helpers
- Use Radiant pointer shield overlays
- Use Radiant feedback overlays
- Use Radiant progress bar in status bar
- Use Radiant drop shield for sample list
- Use Radiant muted text for sample rows
- Use Radiant color marker for collections
- Use Radiant marker run for ratings
- Use Radiant action rows for context menus
- Use Radiant text styling for tag completion
- Use Radiant row drop hover positions
- Use Radiant badge for audio pill
- Use Radiant pointer shield builders
- Use Radiant feedback overlay builder
- Use Radiant row builder for custom hit targets
- Use Radiant pointer shield event helpers
- Use Radiant filtered button helper for headers
- Use Radiant platform service for source picker
- Use Radiant context menu layer
- Use Radiant platform services for context actions
- Use Radiant dense row paint helpers
- Use Radiant text-sized drag previews
- Use Radiant progress snapshots
- Use Radiant progress update gate
- Use Radiant dismiss layer for audio dropdowns
- Use Radiant exclusive open state for audio dropdowns
- Use Radiant stack cursor for audio dropdown overlays
- Use Radiant panel sections in Wavecrate
- Use Radiant labeled controls in audio settings
- Use Radiant centered layer for audio settings
- Use Radiant anchored dropdown overlays
- Use Radiant utility window options
- Use Radiant list navigation helper
- Use Radiant virtual list window helpers
- Use Radiant shortcut stack
- Use Radiant compact details row
- Use Radiant flow packing for tag rows
- Use Radiant custom row hit target preset
- Use Radiant widget style constructors
- Use Radiant menu height helper
- Use Radiant badge sizing for metadata tags
- Use Radiant text sizing for tag inputs
- Use Radiant input overlays in GUI rows
- Use Radiant bounded list sizing
- Use Radiant anchored layer for job details
- Use Radiant floating layer anchors for tag completion
- Use Radiant cursor geometry for waveform paint
- Use Radiant geometry for waveform selection handles
- Use Radiant strip helpers for edit fade geometry
- Use Radiant text placement for folder rows
- Use Radiant point marker geometry for fade curves
- Use Radiant rect geometry in waveform paint
- Use Radiant revision counter for drag refresh
- Use Radiant geometry for waveform pointer ratios
- Use Radiant chrome helper for waveform widgets
- Use Radiant visible fill paint helper
- Use Radiant exclusive state for audio dropdowns
- Use Radiant dense row paint helpers
- Use Radiant horizontal value paint helpers
- Use Radiant virtual list controller for sample view
- Use Radiant details header helpers
- Use chainable Radiant stack cursors
- Use Radiant dense row visual projection
- Use Radiant canvas gestures for waveform input
- Use Radiant timeline edit geometry
- Use Radiant panel resize drag state
- Use Radiant index viewport projection
- Use Radiant selection handle geometry
- Use Radiant row message helpers
- Use Radiant row helpers in GUI overlays
- Use Radiant drag message helpers
- Use Radiant modal escape shortcut helper
- Use Radiant keyed file selection
- Use Radiant normalized range helpers
- Use Radiant list selection intents
- Use Radiant row drop target mode
- Use Radiant dropdown triggers
- Use Radiant embedded row helpers
- Use Radiant WidgetInput pointer helpers
- Use Radiant progress snapshot builder
- Use Radiant dropdown trigger overlay helper
- Use Radiant text input completion suffix
- Use Radiant anchored rating badge
- Use standard labeled audio backend control
- Use Radiant details header cell
- Use Radiant standard context menu sizing
- Use Radiant dense row label sizing
- Use Radiant labeled control anchor metrics
- Use Radiant panel resize updater
- Use Radiant details column drag updaters
- Use Radiant size modifier for tag pills
- Use Radiant panel section for job details
- Use Radiant polyline for fade curve trace
- Use exclusive dropdown snapshot in audio settings
- Use Radiant input underlay for composite rows
- Use Radiant range edge paint helpers
- Use Radiant trailing flow layout for tag input
- Use Radiant dismissible overlay for audio dropdowns
- Use Radiant property panel for folder filters
- Use Radiant bounded scroll column for tag completion
- Use Radiant status bar builder
- Use Radiant toolbar builder
- Use Radiant standard icon controls
- Use Radiant cyclic completion navigation
- Use Radiant compact option list for tag completion
- Use Radiant nested stack offsets for audio settings
- Use Radiant single activation helpers
- Use Radiant canvas pointer helpers
- Use Radiant paint text queries
- Use Radiant paint query helpers in GUI tests
- Use Radiant text input message helpers
- Use Radiant paint query helpers in GUI tests
- Use Radiant runtime click helper in GUI tests
- Use Radiant widget input constructors
- Use Radiant runtime event helpers
- Use Radiant rect center helpers in GUI tests
- Use Radiant paint query helpers in GUI tests
- Use Radiant frame size helpers in GUI tests
- Use Radiant frame helpers in remaining GUI tests
- Use Radiant text paint query accessors
- Use Radiant default-theme runtime frames
- Use Radiant declarative runtime constructors
- Use Radiant widget paint-plan queries
- Use Radiant double-activation helper
- Use Radiant drag session cleanup
- Use Radiant platform response helpers
- Use Radiant empty view builder
- Use Radiant conditional stack layers
- Use Radiant button message helpers
- Use Radiant widget paint capture helpers
- Use Radiant widget output helpers
- Use filtered Radiant row mapping
- Use Radiant view frame helpers
- Use Radiant drag position helpers
- Use Radiant view dispatch helpers
- Use Radiant row wrapper accessors
- Use labeled-control dropdown overlay helper
- Use Radiant interactive badge builder
- Use Radiant interactive row underlay
- Use passive badge terminal for pending tag
- Use passive icon and row underlay for tag categories
- Use Radiant dense row label helper
- Use Radiant dense row marker builders
- Use Radiant canvas selection geometry
- Use Radiant stacked dropdown overlay anchors
- Use Radiant combined external drag helper
- Use Radiant dense row fill helper
- Use Radiant compact option overlay helper
- Use Radiant sampled curve helper for waveform fades
- Use Radiant timeline edit regions for waveform fades
- Use Radiant normalized range edits for waveform selection
- Use Radiant cyclic completion cycle
- Use Radiant compact details cells
- Use Radiant flow groups for tag entry
- Use Radiant virtual list scroll helper
- Use Radiant drag phases in GUI reducers
- Use Radiant tinted SVG icon cache
- Use Radiant row underlay for source rows
- Use Radiant trailing toolbar controls
- Use Radiant timeline edit handle order
- Use Radiant shortcut multi-bind helper
- Use Radiant stable widget ids
- Use Radiant text input message parts
- Use Radiant drag session helper
- Use Radiant progress bar message helper
- Use Radiant repeated stack cursor advance
- Use Radiant scrollbar value helper
- Use Radiant drag phase labels
- Use numeric stable collection row IDs
- Use Radiant origin rect helper in GUI tests
- Use Radiant widget paint plan helpers
- Use Radiant paint plan helpers in GUI tests
- Use Radiant positioned Rect constructor
- Use Radiant closeable panel section
- Use typed Radiant dropdown options
- Use tracked Radiant drop targets
- Use tracked Radiant tag drop targets
- Use embedded Radiant row widget contract
- Use Radiant canvas selection paint helpers
- Use Radiant declarative runtime aliases
- Use Radiant throttled progress reporter
- Use Radiant progress phase helper
- Use Radiant tracked drop candidates
- Use Radiant viewport drag panning
- Use Radiant capped flow row height
- Use Radiant flow field metrics
- Use Radiant sort direction ordering
- Use Radiant timeline edit geometry builders
- Use Radiant selection control hit tests
- Use Radiant dropdown option constructor
- Use Radiant widget style prominence helpers
- Use Radiant platform result helpers
- Use Radiant text line builder
- Use Radiant row action routing
- Use Radiant cancellable latest task helper
- Use Radiant embedded row action routing
- Use Radiant value-based dropdown options
- Use Radiant trailing flow group packing
- Use Radiant canvas affordance hit testing
- Use Radiant timeline edit rect iterators
- Improve collections panel resizing
- Add sample column drag feedback
- Add metadata tag chip context menu
- Show tag category completions immediately
- Show no-audio audio engine pill state
- Render tag completions as root overlay
- Add sample header hover affordance
- Add random sample audition playback
- Add collection removal support
- Show all collection markers in sample rows
- Use Radiant local drop marker
- Use Radiant terminal drag helpers
- Use Radiant drag preview builder
- Use scoped Radiant viewport API
- Use collapsible Radiant panel resize helper
- Use Radiant flow field layout summary
- Use Radiant anchored option list overlay
- Use Radiant anchored panel section helper
- Use Radiant canvas selection affordance styles
- Use Radiant fixed row stack height
- Use Radiant anchored details cell helper
- Use data-driven Radiant stack cursor items
- Use Radiant paint text label queries
- Use Radiant priority widget anchor query
- Use Radiant embedded row action routing
- Add filter panel resize handle
- Use Radiant panel resize state
- Use Radiant timeline ramp previews
- Use Radiant configured GPU surface builder
- Use Radiant canvas affordance style
- Use Radiant autocomplete selection helpers
- Use Radiant canvas gesture event helpers
- Use Radiant virtual list projection API
- Use Radiant panel resize handle helper
- Add GUI transaction undo history
- Add tabbed settings window
- Add configurable trash moves
- Use Radiant dense row chrome helper
- Use Radiant property rows in filter section
- Use Radiant stack cursor helpers for settings dropdowns
- Use Radiant segmented text width estimates
- Use Radiant timeline edit preview fill helpers
- Use Radiant widget paint sink
- Use Radiant virtual list context follow helper
- Use widget contract in hit target tests
- Use Radiant widget state helpers
- Use Radiant paint plan queries
- Use Radiant drag message constructors
- Add file move conflict dialog
- Add random marked range audition
- Use Radiant exclusive state for browser drop targets
- Render folder tree guide lines across expanded groups
- Use Radiant ramp curve strokes for waveform fades
- Use keyed row drop actions for metadata tags
- Use Radiant tree guide primitive
- Use Radiant interactive row chrome helpers
- Use Radiant details column drag feedback
- Use Radiant typed viewport ranges
- Use keyed row actions in folder browser
- Use Radiant projection focus targets
- Use Radiant virtual list body builder
- Use Radiant tracked drag source rows
- Use tracked drag source badges
- Use tracked drop target row underlays
- Use retained drag source presets
- Use virtual list slice focus helper
- Use Radiant unit interval index helper
- Use Radiant canvas gesture extractors
- Use Radiant virtual tree list builder
- Use Radiant dense row labeled chrome
- Use shared row activation routing
- Use named Radiant panel resize constraints
- Use shared sample row activation routing
- Use shared row activation secondary routing
- Use shared row activation secondary routing
- Use direct custom widget routing in rows
- Use Radiant text input width policy
- Use Radiant panel content geometry
- Use Radiant auto-sized context menu
- Use Radiant panel geometry for collections
- Use Radiant form rows for filters
- Use stable Radiant row input IDs
- Use Radiant row paint policy
- Use Radiant dense row label emphasis
- Use conditional Radiant row chrome
- Use Radiant interaction fill builders
- Use Radiant cursor batch painting
- Use Radiant selection affordance painting
- Use Radiant conditional alpha helper
- Use Radiant timeline edit paint style
- Use Radiant canvas selection paint style
- Use Radiant viewport selection geometry
- Use inside-filtered Radiant gesture accessors
- Use Radiant fixed-edge range construction
- Improve folder browser refresh and file list caching
- Add source refresh context action
- Add targeted source sync for watcher changes
- Improve foreground sample audition latency
- Group native app modules by responsibility
- Group native app UI identifiers
- Group native app metadata modules
- Add native library browser view models
- Add waveform panel view model
- Add native app boundary guardrail
- Use Radiant layer host in app chrome
- Use Radiant scene for app chrome layers
- Add app scene waveform regression tests
- Use scene layer input policies
- Use Radiant overlay stack in app chrome
- Use Radiant reducer repaint policy
- Use declarative native file drop target
- Use Radiant repaint defaults in launch
- Use clearer app message handler API
- Add native waveform pointer regressions
- Add native app state test fixture builder
- Group native app root state domains
- Group top control bar sizing constants
- Add debug overlays run alias
- Use Radiant resizable sidebar
- Use overlay collections for center panel
- Use overlay collection for library pane
- Use declarative children for center panel
- Use typed overlay helpers
- Use Radiant capture policy for sample hover
- Use Radiant pointer targets for sample browser drag routing
- Use standard Radiant resize handle
- Use Radiant tree row for folder tree
- Add native sample similarity anchor mode
- Highlight active source rows
- Add waveform playback test scenario fixture
- Add UiAction compatibility adapter
- Add app-core projection test fixtures
- Add action catalog domain views
- Add tag input focus shortcut
- Group settings GUI messages
- Use composable row action routing
- Add Wavecrate facade guardrails
- Add typed playback intent routing
- Add advisory size hotspot report
- Use shared dense row visual tokens
- Group metadata GUI messages
- Use composable Radiant row actions
- Add Wavecrate facade boundary guardrails
- Add file selection model coverage
- Use typed file column descriptors in projections
- Use bounded waveform cache writer queue
- Add sample navigation responsiveness harness
- Show playback type in sample browser
- Add sample browser random navigation
- Add folder context new folder
- Add confirmed folder context delete
- Add folder multi selection
- Use Radiant business checkpoints for sample loads
- Use resource-keyed sample loading
- Use resource-keyed cache warmers
- Add playback start profiling diagnostics
- Add Reson playback command runtime
- Add normalization worker progress reporting
- Improve normalization failure reporting
- Show focused folder row feedback
- Show source cache warm progress
- Add file-backed large WAV cache path
- Improve large WAV decode playback path
- Improve file-backed WAV summary fallback
- Improve source cache progress feedback
- Add source cache activity indicator
- Add similarity aspect controls
- Show cache planning progress in status bar
- Add source processing context action
- Add recursive folder listing toggle
- Show audio output OFF on device errors
- Use fixed Radiant tooltip sizing
- Add source row left inset
- Add native rating filter toggles
- Show source folders in collection sample lists
- Add edit mark bottom resize handles
- Render edit fade S-curve lines
- Add folder tree empty folder toggle
- Show apply button for pending edit mark edits
- Use regular icon styling for source add button
- Add protected folder locks
- Add audio file cut paste
- Add playmark similar section toolbar scan
- Use Radiant progress fill helper
Refactor the waveform loading overlay onto Radiant's reusable progress paint helper and update the Radiant submodule pointer. Includes small current-toolchain Clippy cleanups in touched validation paths.
- Use Radiant clipboard platform service
- Use Radiant task completion helpers
- Use Radiant business priority query
- Use Radiant optional tooltip modifier
- Use Radiant dense row underlays
- Use Radiant underlay chrome for sample rows
- Use Radiant styled tree row chrome
- Use Radiant flow action reservation
- Use Radiant form rows for sidebar filters
- Use Radiant row underlay presets
- Use Radiant panel resize helpers
- Use Radiant SVG tint palettes
- Group Wavecrate scan and waveform inputs
- Add waveform selection zoom shortcuts
- Add playback type filter
- Add loaded waveform sample drag handle
- Add shift random listed sample audition
- Add playback history navigation
- Use Radiant flexible flow group packing
- Use Radiant virtual list window helpers
- Use Radiant keyed drop target actions
- Use conditional Radiant pointer targets
- Use paired Radiant row actions
- Use Radiant custom header panel sections
- Use Radiant fixed layout slots
- Use Radiant dialog panel preset
- Use Radiant conditional tooltips
- Use Radiant compact button rows
- Use Radiant toolbar layout
- Use Radiant controller runtime viewport state
- Use stable drag row identities
- Use Radiant dialog layer helpers
- Use Radiant resizable panel headers
- Use Radiant ramp strokes for fade curves
- Use Radiant stable header ids
- Use Radiant materialized virtual list rows
- Use Radiant windowed tree list builder
- Use Radiant virtual list window reconciliation
- Use Radiant fixed widget common constructor
- Use Radiant GPU surface capabilities helper
- Use derived details header identities
- Use dense Radiant form rows
- Use left-center status segments
- Use closeable Radiant panel chrome
- Use Radiant dialog layer parts
- Use Radiant visible-focus list follow policy
- Use selectable marker for rating filters
- Use Radiant stable row input ids
- Use passive progress bars for similarity cells
- Use dense form rows for filters
- Use native motion path in sample list target test
- Use stable underlay row identities
- Use single sample header identity
- Add beat-guide metronome playback
- Use stable folder tree row identity
- Use compact details anchored cell builder
- Add short edge fades to extractions and auditions
- Add zero crossing snap for waveform marks
- Show cut-pending sample rows
- Add source curation mode
- Add scoped curation filter modes
- Add playback type tag shortcuts
- Add waveform reverse shortcut
- Use gold marker for locked keep ratings
- Show waveform playhead during playback
- Add duplicate same sample context action
- Add synced sample map view
- Add sample map pan and zoom
- Add sample map search overlay
- Use similarity layout in sample map
- Show sample map layout status
- Add sample map viewport controls
- Show sample map hover labels
- Add sample map similarity legend
- Highlight active sample map audition
- Show focused sample in sample map
- Use distinct cluster colors in sample map legend
- Add sample map focus shortcut
- Show cold similarity map nodes
- Add transaction inspector shortcut
🐛 Bug Fixes
- Fix folder browser selection state flicker
- Fix delete recovery UI and restore path
- Fix folder tree search flicker from header refresh churn
- Fix: silence unused hotkey re-export warnings
- Fix: clean up hotkey exports to avoid unused-import warnings
- Fix associated-call scope for status-right motion overlay
- Fix dead_code in waveform signature projection tests
- Fix borrow conflicts in browser projection
- Fix startup crash by reverting waveform payload caching optimization
- Fix native shell borrow bug in browser projection
- Fix native_vello logging syntax in radiant submodule
- Fix panic hook thread name lifetime in logging
- Fix current_dir logging string conversion in startup metadata
- Fix mutable surface creation fallback closure in radiant
- Fix: close status bar helper function braces
- Fix(app-core): align waveform image cache invalidation with source presence
- Fix: repair taste invariant and file-size budget check scripts
- Fix: harden file size budget collection trace and fixture
- Fix(vendor): update radiant for live volume drag repaint
- Fix(runtime): unblock hidden startup window reveal
- Fix(runtime): harden windows startup window visibility
- Fix: repin vendor/radiant to radiant crate commit
- Stabilize startup perf thresholds with tracked lock file
- Fix native build regressions in waveform/audio paths
- Fix clippy/test regressions after syncing next
- Fix(waveform): preserve extrema in stepped envelope quantization
- Fix(waveform): avoid high-zoom cache quantization artifacts
- Fix(waveform): composite outlines without blotching thin bands
- Fix(browser): commit waveform reload on row selection
- Fix(waveform): unblock selection redraw by tightening load path
- Fix(native): wire top-bar options button action
- Fix(audio): unblock loading state via runtime repaint wakeups
- Fix(native-bridge): invalidate cached key after async revision updates
- Fix(waveform): play from click position on left release
- Fix(native-shell): always show waveform toolbar controls
- Fix(native-bridge): invalidate waveform projection on toolbar option toggles
- Fix(gui): update radiant for immediate toolbar highlight repaint
- Fix(ui): keep waveform option toggles synced with runtime UI state
- Fix(gui): pull radiant motion-overlay rebuild correction
- Fix(gui): pull brighter waveform hover cursor preview
- Fix(waveform): color play and edit marks in native view
- Fix(playback): bind spacebar replay and search focus actions
- Fix(native-ui): make folder tree clicks select rows
- Fix(playback): ignore zero-width click markers for seek spans
- Fix(gui): keep waveform cursor hover repaint active when idle
- Fix(ui): restore folder tree mouse selection hit-testing
- Fix(ui): keep browser row borders pixel-stable
- Smooth waveform playhead motion with high-precision overlay model
- Fix transient benchmark sources and source menu UX
- Fix browser row focus border highlight
- Fix status bar border seams
- Keep play icon while transport runs
- Keep browser key navigation lightweight
- Fix: ease browser click autoscroll threshold
- Fix: queue browser preview playback asynchronously
- Fix: remap transport hotkeys to spacebar
- Fix: clarify rating filter toggle highlights
- Fix: restore edited toolbar svg icons
- Fix: stop browser click recentering
- Fix sample browser viewport autoscroll
- Fix retained rating filter chip state
- Fix(vendor): update radiant title layout cleanup
- Fix(delete-recovery): qualify staging dir constant
- Fix browser wheel scrolling
- Fix browser edge autoscroll
- Fix browser rating filter rerender
- Fix filtered rating auto-advance
- Fix undo redo u hotkeys
- Fix N hotkey normalization
- Fix waveform trim and crop hotkeys
- Fix waveform fade handle tab geometry
- Fix BPM snapped waveform selection dragging
- Avoid accidental tiny waveform selections
- Smooth waveform playhead animation
- Keep browser focus visible while navigating
- Fix native options panel projection
- Fix waveform tail fade preview
- Fix: snap waveform selection anchor to bpm grid
- Fix: start playback selection from marked range
- Fix: smooth waveform marked area resizing
- Fix: soften playhead trail fade curve
- Fix: speed up smart scale bpm drag
- Fix: add z waveform zoom hotkey
- Fix: add waveform viewport scrollbar
- Fix: restore browser wheel scrolling
- Fix: improve browser scrollbar thumb drag hit area
- Fix: retain browser viewport state in native projection
- Fix: reduce playhead trail opacity
- Fix: align gui benchmark split with current action contract
- Fix: correct browser lower-edge autoscroll regression
- Fix: stabilize async decode and heartbeat timing
- Fix(gui): restore browser wheel viewport scroll
- Fix(gui): harden browser autoscroll sync
- Fix(browser): decouple click focus from playback
- Fix(browser): make click focus use preview semantics
- Fix(browser): invert rating filter by excluding clicked chip
- Fix(playback): honor normalized audition for full sample
- Fix(gui): guard narrow waveform selection gestures
- Fix(gui): show waveform loading placeholder
- Fix(browser): tighten rating filter toggles
- Fix(browser): separate locked keep filter level
- Fix(waveform): smooth native smart-scale bpm resize
- Fix(waveform): start stopped seek playback immediately
- Fix(waveform): snap selection slide to translated beat grid
- Fix(gui): pull waveform resize drag stability
- Fix(waveform): preserve exact selection anchor
- Fix(gui): clear waveform marks on outside click
- Fix(playback): defer loop retarget until drag release
- Fix(waveform): clear stale deferred loop retargets
- Fix(waveform): harden mixed mark clearing
- Fix(gui): create new waveform marks outside active selection
- Fix(gui): preserve exact waveform selection anchor
- Fix audio clear and monitor shutdown races
- Fix(scripts): make migration boundary failures actionable
- Fix(browser): align async search ordering
- Fix(windows): remove legacy external drag module file
- Fix(ci): restore rustfmt baseline
- Fix(ci): restore windows local parity
- Fix(audio): harden sanitized wav seek contract
- Fix(drag-drop): journal cross-source drop targets
- Fix(drag-drop): workerize drop target transfers
- Fix(scripts): harden windows cargo wrapper fallback
- Fix(waveform): stabilize marker resize while zooming
- Fix(waveform): sync resize drags with wheel zoom
- Fix(waveform): avoid eager drag refresh on wheel
- Fix(waveform): refresh stale view before panning
- Fix(waveform): preserve rendered scrollbar hits
- Fix(waveform): stop panning from snapping to playhead
- Fix(waveform): rebase stale scrollbar drag grips
- Fix(waveform): stop marker painting from reframing view
- Fix(waveform): inset waveform plot edges
- Fix(waveform): ignore gutter clicks for selection
- Stabilize waveform markers on playback start
- Stabilize play-start waveform selection redraw
- Fix(playback): preserve zoomed waveform view on restart
- Fix(waveform): preserve exact edit mark anchors
- Fix(waveform): restore immediate selection export input
- Fix waveform click play without phantom selection
- Fix(waveform): export narrow selections reliably
- Fix(waveform): restore click-to-play seek cleanup
- Fix waveform click playback outside selections
- Fix waveform click playback arming
- Fix(guardrails): cover nested radiant file budgets
- Fix(tagging): lock direct keep-three tagging
- Fix BPM grid alignment at waveform zoom
- Fix waveform view
- Fix random navigation toggle repaint
- Fix retained restore crash recovery replay
- Fix folder tree browser disclosure behavior
- Keep similarity refresh off the UI thread
- Fix browser delete failure handling
- Keep waveform playback seeks from recentering view
- Fix: harden quality score drift guardrail on windows
- Fix: include radiant in cleanup hotspot audit
- Fix: restore app_core migration boundary
- Fix: unify crop export history restore
- Fix: prune pending renames on hard rescan
- Fix(app-core): complete audit guardrail repairs
- Fix: align file-size guardrails with physical line counts
- Fix: tighten cleanup hotspot test-gap heuristic
- Fix: keep temporary mark review random under MARK mode
- Fix playback timing for mismatched output formats
- Fix waveform projection after random rating follow-up
- Fix: reject runtime-internal waveform shift actions
- Fix repeated mark preview navigation
- Fix(app-core): restore folder-pane migration boundary
- Fix(browser): stabilize playback-age filter invalidation
- Fix(browser): restore filtered focus fallback
- Fix(gui): harden browser focus and import recovery
- Fix: harden delete recovery and browser commit handling
- Fix: harden bug backlog recovery flows
- Fix: finish remaining focus and vendor test gaps
- Fix(gui-test): expose loading waveform label
- Fix(controller): harden browser reentry and delete recovery tests
- Keep folder actions on the native bridge fast path
- Fix(browser): avoid duplicate loaded similarity refresh
- Fix(recovery): defer ambiguous file-op journal replay
- Fix(recovery): harden folder delete restart recovery
- Fix(browser): keep hidden multi-selection action targets
- Fix(browser): keep hidden history navigation preview-only
- Fix(browser): keep delete follow-up on visible similarity rows
- Fix(controller): land source recovery and hydration follow-ups
- Fix(bench): restore perf guard compile parity
- Fix(gui): reconnect native external drag handoff
- Fix(gui): keep drag alive after external cancel
- Fix(audio): stop flagging output warnings as errors
- Fix(native-bridge): flush retained pull dirt
- Fix(browser): preserve multi-select during keyboard focus
- Fix(browser): make plain clicks focus-only
- Fix(browser): use live tags for auto rename
- Fix auto rename metadata tags
- Fix auto rename stem gating
- Fix(app_core): restore migration boundary aliases
- Fix(browser-search): invalidate sync scores on path reorder
- Fix browser label cache after same-length reloads
- Fix feature cache stale reorder reads
- Fix browser waveform transition handoff
- Fix browser tag sidebar projection invalidation
- Fix playback handoff after async waveform load
- Fix persistence profile isolation for automated runs
- Fix(scripts): restore powershell validation shims
- Fix(app-dirs): auto-isolate test app roots
- Fix startup repair for transient test sources
- Fix transport toggle pause behavior
- Fix analysis job path-based source queries
- Fix sample rename rollback on DB contention
- Fix auto rename controller DB contention
- Fix preview replay for loaded browser sample
- Fix pending rename metadata recovery
- Fix deferred undo sample removal failures
- Fix stale analysis progress snapshot reads
- Fix analysis claiming during selected-source quick edits
- Fix auto-rename metadata contention gating
- Fix loop crossfade looped metadata
- Fix rename follow-up browser deltas
- Fix waveform raster projection sync
- Fix waveform native action ordering
- Fix deep waveform zoom clamp drift
- Fix trash move partial DB removal refresh
- Fix export rollback on registration failure
- Fix folder rename rollback
- Fix folder sample move finalize rollback
- Fix selection edit metadata cache refresh
- Fix waveform copy rollback on registration failure
- Fix cross-source move finalization rollback
- Fix stale hashes after destructive waveform edits
- Fix PowerShell agent preflight checks
- Fix native shell DTO boundary guardrails
- Fix unsupported audio preview errors
- Fix strict-mode latest log platform detection
- Fix current-stamped pending rename migrations
- Fix auto-rename source DB busy windows
- Fix stale metadata jobs after browser rename
- Keep browser scrollbar beside tag sidebar
- Fix metadata remaps after browser rename
- Stabilize playback projection during auto rename
- Fix loop sidebar rollback under auto rename churn
- Fix auto rename loop metadata provenance
- Keep waveform stable across auto rename row churn
- Stabilize auto-rename provenance regression
- Fix CI Radiant submodule checkout
- Fix CI shell execution guardrails
- Fix CI lint compatibility
- Stabilize CI guardrails and async tests
- Fix remaining CI portability checks
- Fix remaining macOS Bash guardrails
- Fix Unix clippy dependency gaps
- Fix remaining cross-platform CI tests
- Fix Windows file budget report command (#218)
- Fix source-scoped metadata rollback
- Fix project CI guardrails
- Stabilize focus commit audio dispatch test
- Fix sidebar CI guardrails
- Fix retained input CI checks
- Fix generic runtime window reveal
- Fix stale waveform visual projection
- Fix waveform projection rendering
- Fix rebuild rename input focus
- Fix GUI playmark selection playback
- Keep fade crossfade handles stable during edge resize (#307)
- Keep fade silence handles pinned on collapse (#308)
- Keep fade silence handles stable from top handles (#309)
- Stabilize fade silence handle drags
- Fix: confirm selection deletes and folder rename f2
- Fix default GUI folder and waveform interactions (#313)
-
Fix default GUI folder delete key
-
Add playmark extraction and fix sample browser rendering
- Fix native sample list rendering
- Keep playhead visible during rapid restarts
- Keep edit fade waveform preview fast while dragging
Avoids per-pointer faded signal summary rebuilds during edit-fade drags.
- Fix retained audio engine panel (#363)
- Keep Wavecrate naming template config-only
- Keep browsing state out of global undo
- Keep settings out of global undo
- Keep hidden system files out of all-files view
- Keep hidden files out of browser counts
- Keep hidden-file delete warning generic
- Keep unsupported files out of sample records
- Keep Wavecrate source database hidden
- Keep source metadata out of diagnostics scope
- Keep source database details out of onboarding
- Keep embedded ID details out of onboarding
- Avoid second confirmation for YOLO apply
- Keep YOLO mode out of persistent main UI
- Keep batch edit warnings count-only
- Keep batch outcomes visible in YOLO mode
- Fix waveform loading progress overlay
- Fix audio backend fallback and selection labels (#446)
- Fix Radiant API build (#447)
- Fix ASIO output stream config fallback (#448)
- Fix folder tree drag drop refresh (#454)
- Fix sample browser column labels (#487)
- Fix sticky sample drag preview
Fix sample-browser file drag cancellation so rebuilt source rows still emit drag end, and include the pending internal run/relative portalsurfer script updates.
- Smooth sample drag preview (#536)
- Fix drag hover feedback and preview
- Fix folder context menu behavior and styling
Fix folder context menu sizing, dismissal, right-click behavior, and neutral/sample-style hover styling.
- Smooth volume slider updates
- Stabilize sample row hover highlight
- Fix transport toolbar icon colors
- Smooth folder hover and sidebar resizing
- Keep tag autocomplete from blocking sidebar
- Keep category input beside pending tag
- Fix metadata tag section hit targets
- Cancel tag entry when switching samples
- Fix waveform toolbar icon fills
- Fix sample row hover state
- Fix sample row hit testing
- Cancel stale uncached sample loads promptly
- Keep GUI boundary as Radiant reexports
- Fix outer edit fade handle hit testing
- Fix collection selection focus
- Fix collections section resize
- Fix persisted waveform cache selection
- Fix visible toolbar spacer border
- Keep tag category picker visible
- Fix sample column drag release
- Cancel pending metadata tag category selection
- Fix sample column drop marker position
- Cancel and align sample column drags
- Fix metadata panel collapse
- Fix random toolbar button interaction
- Fix metadata completion overlay placement
- Stabilize database contention rollback assertions
- Keep keyboard navigation responsive during sample loads
- Smooth keyboard browsing while samples load
- Keep sample selection off the UI load path
- Stabilize metadata autocomplete tests
- Keep loaded samples resident across rename
- Fix collection membership after F2 rename
- Fix sample drag folder drop state
- Stabilize folder drop highlight during file drags
- Fix folder drop target handoff
- Cancel internal sample drags on native re-drop
- Cancel same-origin native file drop hover
- Cancel browser drag when releasing on sample list
- Cancel same-folder native file drops
- Avoid cloning sample projection during scrolling
- Fix waveform click playback startup
- Fix cached waveform input handling
- Fix root debug overlay run aliases
- Fix latest log profile resolution
- Fix keyboard navigation sample load blocking
- Keep sample browser visible during drags
- Fix metadata category completion click
- Fix category selector full-row hover
- Fix remaining localized Clippy warnings
- Fix folder browser facade guardrail
- Fix app API state DTO follow-up inventory
- Stabilize sample row hover refresh
- Keep selected empty folders grey
- Keep expanded folders visible on activation
- Fix folder verify unchanged state pruning
- Keep folder keyboard navigation visible
- Fix windowed list blank scrolling
- Fix waveform hover cursor tracking
- Keep sample cache warmers off foreground playback
- Cancel cache warmers before sample loads
- Avoid disk writes during sample selection
- Keep foreground sample loads off persisted caches
- Cancel stale WAV waveform summaries
- Avoid cloning folder tree for metadata updates
- Fix PowerShell cargo package forwarding
- Keep sample list projection slots stable
- Smooth sample list window projection
- Fix sample browser fast scroll rendering
- Fix autoplay navigation last played history
- Prioritize normalization and skip duplicate requests
- Fix playback start during sample load
- Keep playing waveform visible while loading
- Fix source cache warm restart planning
- Keep cache progress visible during playback
- Fix cache warm helper build visibility
- Fix nightly asset cleanup repo context
- Fix similar section toolbar activation
- Stabilize Wavecrate validation lanes
- Keep source list stable after file moves
- Fix random listed audition region ordering
- Fix rapid sample tag assignment
- Fix native file open loading projection
- Fix quick tag pill toggles
- Keep bulk normalization off the UI lane
- Fix bottom list hover scroll jitter
- Keep settings overlay base controls interactive
- Keep settings projection tests off native test support
- Keep metadata tag drag motion runtime-local
- Fix tag category header toggles
- Fix playback type sample sorting
- Fix collection move missing cleanup
- Fix moved cached sample playback
- Keep rating advance aligned with visible samples
- Fix random navigation list reveal direction
- Fix rating advance browser reveal
- Stabilize curation history focus
- Stabilize curation history under rating filters
- Fix file operation regression expectations
- Keep sample list window synced with runtime scroll
- Fix cross-source cut paste moves
- Avoid harvest writes during live waveform drags
- Smooth playmark retargeting during drags
- Smooth live playmark selection previews
- Smooth playmark drag painting
- Smooth playmark drag hot path
- Avoid repeated blocked map prep
- Keep sample map drag auditioning across rerenders
- Smooth waveform selection dragging
- Smooth live playmark dragging
- Smooth live playmark selection snapping
- Keep sample map focused during navigation
- Smooth live waveform selection painting
- Smooth playmark drag previews
- Keep sample map audition selection focused
- Smooth live playmark selection painting
- Smooth playmark drag preview cadence
- Keep sample map pan separate from audition drag
- Smooth playmark drag previews
- Keep editmark drag preview lightweight
- Fix sample map wheel zoom redraw
- Keep sample map viewport during audition
- Stabilize sample map drag audition
- Fix undo redo for folder moves
- Fix folder drag cancel target
- Fix nightly changelog release grouping (#587)
- Fix harvest filter arrow dropdown (#589)
- Fix nightly tag ref lookup
Treat missing nightly GitHub refs as absent tags so release runs can create immutable nightly tags.
💼 Other
- Make playback and playhead timing frame-accurate
- Gate playback timing helpers to tests to satisfy dead_code
- Gate playback Duration import to tests
- Add gui foundation modules and decouple hotkey keys from egui
- Gui: move app entrypoints to shared winit+wgpu runtime
- Gui: decouple job repaint signaling from egui contexts
- Gui: add selectable backend routing and native vello preview
- Gui: add interactive native shell for vello backend
- Gui: split native shell pipeline and render text runs in vello
- Gui: vendor radiant as submodule and re-export runtime APIs
- Gui: remove in-tree runtime implementation after radiant extraction
- Audio: frame-align take_duration and fix duration regressions
- Gui: wire native radiant bridge into sempal main runtime
- Gui: project richer native model and bridge new runtime actions
- Gui: project browser rows and map native range-selection actions
- Gui: wire native waveform selection and zoom actions
- Gui: default to native_vello backend
- Gui: extract native projection core and harden duration regression
- Gui: adopt compact radiant native-shell sizing pass
- Gui: cut over main runtime to native_vello and tighten shell sizing
- Gui: lock radiant layout contract to shared style tokens
- Wire radiant overlays and browser actions through sempal bridge
- Project and route native folder actions in sempal bridge
- Wire native prompt/search text editing for folder workflows
- Finalize sidebar recovery visual polish migration tasks
- Advance migration parity tracking and radiant motion polish
- Expand native browser projection window to 200 rows
- Switch native shell toward classic browser table layout
- Advance native shell browser layout and visual contracts
- Advance native shell top-bar and browser visual parity
- Wire native visual hints into projection and parity docs
- Advance native-shell classic density parity and BPM bucket labels
- Retune native layout density toward classic shell baseline
- Migrate updater and installer UIs to native radiant runtime
- Migrate app_core sort and visible row state types
- Own app_core prompt state enums and bridge conversions
- Own destructive prompt state in app_core
- Own folder projection and recovery state in app_core
- Own drag target and map query bounds in app_core
- Route folder prompt confirmations through controller
- Centralize browser delete selection handling in controller
- Centralize active prompt flow in controller
- Delegate map focus/preview flow to controller
- Route updater and installer ui through app_core action aliases
- Route app_core native shell models through action aliases
- Clean migration docs and stale legacy runtime references
- Centralize app_core legacy state conversions via module alias
- Route app_core controller and view_model through legacy module aliases
- Move native-shell render caps into app_core ui constants
- Use app_core state aliases directly in native shell projection
- Reduce app_core state path qualifiers in native shell
- Centralize app_core legacy module aliases
- Split app_core legacy adapters into modules
- Route app_core legacy adapters through legacy_runtime
- Add legacy runtime feature scaffolding and removal checklist
- Add no-feature app_core fallbacks for legacy runtime gating
- Gui-migration: promote neutral App/AppController primary names
- Gui-migration: retire legacy egui layout doc and refresh blockers
- Gui-migration: switch to native-default and gate legacy-only helpers
- Migration: remove legacy-egui-runtime feature plumbing
- Migration: remove app_core legacy adapter layer
- Finish migration from egui point types to UiPoint in UI/state paths
- Migrate from egui to native gui runtime
- Refactor app_core to route legacy app references through migration boundary
- App_core: replace legacy shim with contracts migration boundary
- App_core: fix contracts re-export shape for legacy state/view-model
- Migrate app_core boundary to explicit legacy_bridge shim
- Wire native runtime DPI scaling for larger UI
- Link updated radiant UI scaling changes
- Tighten native shell sections with single-pixel separators
- Route mousewheel to native browser focus
- Optimize retained overlay redraw path for native gui
- Changes'
- Refactor app-core API boundary and clean migration usage
- Stabilize gui benchmark interaction steps under empty visibility
- Extract deterministic gui benchmark interaction step policy
- Update radiant submodule pointer for native shell render changes
- Plumb waveform raster image into waveform header model
- Refresh FPS counter from motion overlay every frame
- Speed up native redraw and motion signature updates
- Bump radiant submodule for layout borrow fix
- Cache projected waveform image and optimize browser projection
- Handle visible row enum when projecting browser rows
- Drop manual path prefix from AGENTS docs map
- Bump radiant submodule for tracing logging dependency
- Handle unsupported mailbox mode panics via AutoVsync fallback in radiant
- Native_shell: optimize browser selection lookup during projection
- Radiant: pull native_vello input coalescing changes
- Native: apply radiator motion-throttling optimization
- Native bridge: optimize animation-only prepare path
- Native: keep performance timing active during animation-only frames
- Refresh motion model during focus-animation frames
- Reduce native idle redraw and animation overhead
- Separate fps sampling from governor and track animation-only timing
- Simplify ANN path APIs and stabilize updater tests
Simplify nested path checks in ann_index builder by normalizing to Path and collapsing conditionals, and add a test-level synchronization lock to avoid flakey updater child-path tests mutating shared filesystem state in parallel.
- Clarify SEMPAL architecture boundaries in README
Add an explicit Architecture section describing radiant-owned GUI ownership, app runtime wiring, and rendering stack to keep repository documentation aligned with the migration goal.
- Simplify sqlite env flag parsing expression
What changed: replaced a clippy-triggering manual env-flag match and removed an unnecessary return from unix validation.
Why: keep clippy-cleaner style for sqlite extension helpers and match existing concise idioms without altering behavior.
- Derive Default for UpdateChannel
- Waveform: collapse decode cache guard for readability
Simplify nested cache-check condition in decode_from_bytes using a single conditional with && let.
- Waveform: document decode cache helpers
Add rustdoc comments to decode cache token helper and default cache constructor, and keep internal DecodeCache re-export explicit while preserving behavior. This improves public API clarity for waveform cache usage and prepares the module for broader doc coverage.
- Waveform: document decode caching and sampling internals
- Advance radiant submodule for progress key mapping coverage
- Advance radiant with browser row modifier pointer mapping test
- Clarify gui_runtime boundary contracts and conversion docs
Keep gui_runtime as a thin adapter by documenting the layer boundary and explicitly documenting conversion adapters to radiant.
Why: reinforce architectural ownership rules in code and improve public API clarity for runtime entrypoints.
- Selection: simplify drag snap edge fallback condition
Simplify nested range-boundary checks in SelectionState::update_drag_snapped.
This keeps existing clamp/snapping behavior while making the edge-case guard more explicit and readable.
Why: reduce branching noise and improve maintainability in selection drag calculations without altering behavior.
- Hotkeys: collapse nested random selection checks
Refactor nested optional-guard checks in waveform hotkey delete navigation.
Behavior is unchanged; chained with replaces nested blocks for clarity and keeps clippy-compatible branching style when available.
- Refactor simple test codepaths to avoid clippy-preventive patterns
- Harden agent harness scripts and source DB write safety
- Harden agent harness scripts and add run contract output
- Record phase 10 waveform-header slotization
- Record phase 11 browser-text slotization
- Security(updater): require signed windows artifacts and manual install flow
- Layout(native_shell): bump radiant slotized overlay milestone
- Refresh waveform rendering to stepped filled style
- Defer source DB maintenance off startup critical path
- Coalesce and cancel stale audio loader jobs
- Narrow non-segment projection refresh on app-key misses
- Reduce clone churn with shared search and audio payloads
- Batch visible-window BPM metadata lookups
- Adopt Arc-first audio and waveform payload pipeline
- Stream scan rename matching and defer deep hash work
- Bench: measure rebuild-cause attribution from projection probes
- Apply gradient outline and soft-fill waveform styling
- Bump radiant submodule for slightly larger UI scale
- Restore native waveform play/edit marking interactions
- Align app_core bridge/projection code with radiant v0.1 API
- Align native bridge projections with latest radiant models
- Switch native bridges to reduce_action runtime hook
- Implement project_motion_model bridge hook
- Wire native repaint signal into app controller
- Poll background jobs each frame and full-pull on zoom
- Anchor UI waveform zoom to cursor position
- Lock waveform zoom to pointer hover anchor
- Restore source-add path in native sidebar actions
- Switch waveform transport toolbar labels to SVG icons
- Wire waveform toolbar option actions in native controller
- Re-enable waveform edit resize and fade UI interactions
- Snap waveform edge resize to BPM and update radiant handles
- Wire waveform BPM toolbar actions through native bridge
- Wire editable waveform BPM input through native bridge
- Inline sample browser metadata tags
- Expose waveform fade grab handles
- Land waveform, browser, and Windows CI updates
- Shrink waveform resize handle height
- Resize edit fade bottom handles
- Preserve edit fades during resize
- Preserve collapsed edit fades during drag
- Refactor background job polling
- Sync cleanup handoff docs
- Simplify browser search toolbar
- Share browser row separators
- Export waveform selections via drag handle
- Slide waveform selections via bottom handles
- Snap slid waveform selections to beats
- Hide inactive fade tabs
- Limit waveform fade grabs to top tabs
- Route native navigation by focus context
- Save waveform selections on Enter
- Tighten shell section spacing
- Gate native window reveal on renderer startup
- Brighten browser hover highlight
- Tighten waveform panel seams
- Adopt nextest for CI test runs
- Tighten browser panel seams
- Adjust browser search host layout
- Tame browser list autoscroll
- Increase browser row hover contrast
- Tighten sidebar folder tree seams
- Unify waveform toggle accent colors
- Unify BPM text editing behavior
- Shrink browser search field width
- Wire native browser rating filters
- Adjust sample browser edge autoscroll
- Adjust sample browser edge autoscroll
- Scroll browser wheel without changing selection
- Invalidate projection cache for browser view scroll
- Expand build speed execution plan
- Browser projection
- Clarify Windows CI script usage
- Preserve active loop on browser autoplay
- Auto-trash samples past trash max
- Lock samples on fourth keep rating
- Reserve browser scrollbar gutter
- Clamp snapped waveform selection at view edge
- Align waveform grid with BPM beats
- Clear edit selection on outside right click
- Project browser manual viewport state
- Commit next filtered sample after rating
- Clamp browser viewport scroll to list bounds
- Restore similarity map points when source prefix lookup misses
- Freeze locked keep ratings after the fourth keep
- Harden live GUI AIV smoke artifacts
- Drain recorder samples before shutdown
- Clear workspace clippy warnings
- Build(workflow): add agent-safe validation lane
- Restore section focus aware hotkeys
- Vendor: update radiant locked-row accents
- Respect live loop selection updates
- Preserve precise waveform click seek targets
- Speed up async waveform selection exports
- Track waveform mark undo transactions
- Route waveform clicks through cursor playback
- Reduce native bridge log spam
- Record remaining waveform click follow-ups
- Make BPM waveform snap selection-relative
- Defer move recovery for offline sources
- Make folder deletes undoable
- Handle retained delete restore conflicts safely
- Clarify crash recovery undo scope
- Preserve locked metadata across move recovery
- Implement keyboard-first slice review
- Run retained delete recovery as async file op
- Restore sample list arrow navigation
- Make folder rows click to toggle expansion
- Make sample loading fully async
- Map browser similarity hotkey to S
- Wire folder tree arrow navigation
- Refresh folder create projection cache state
- Implement inline folder rename in sources tree
- Default folder tree to wav folders
- Refresh loop badges immediately in native projection
- Recompute similarity filters after browser deletes
- Finish waveform drag snap override integration
- Scan exact duplicate windows across the waveform
- Align duplicate cleanup to repeated waveform hits
- Implement near-duplicate waveform cleanup
- Prune missing sample rows immediately
- Restore native waveform circular slide bridge
- Track precise waveform view bounds in native shell
- Thread precise waveform view centers through sempal
- Default waveform exports to keep x1
- Queue preview playback after random rating advance
- Restore browser playback aging
- Refresh waveform after browser review advance
- Audit refactoring
- Wrap long test assertions for readability
- Refresh theme with ember accents
- Tune: strengthen waveform transient glow
- Soften theme accents against neutral surfaces
- Harden cargo wrappers and browser action contracts
- Consolidate browser preview focus ownership
- Implement fixed split sidebar source selectors
- Make source selection hydrate asynchronously
- Async folder tree projection
- Forward external drag through fixture bridge
- Cleanup(gui-action-catalog): drop duplicated kind ordering table
- Cleanup(scripts): consolidate script entrypoints
- Cleanup(scripts): shrink public script surface
- Cleanup(controller): split background job dto modules
- Cleanup
- Gui-test: clarify isolated startup fixture defaults
- Formalize persistence profiles across runtime and tooling
- Diag(logging): define debug logging contract
- Diag(logging): support launch-time debug flag
- Diagnostics: instrument controller and db seams
- Harden native startup perf guard summaries
- Refactor similarity resolve repository loaders
- Refactor browser metadata actions
- Extract source lane runtime state
- Reduce idle analysis claim log noise
- Retry browser sample rename after source DB locks
- Refactor waveform render controller modules
- Preserve transfer user tags and land current local cleanup
- Refactor folder delete journal internals
- Refactor app_core controller runtime shims
- Clean up app dirs and refresh radiant pointer
- Tighten default debug log budget
- Reformat import ordering and wrapped assertions
- Quiet idle analysis claim workers
- Reduce idle analysis claim churn
- Reorder imports and tidy formatting
- Make footer progress a shared busy contract
- Surface similarity prep degraded states
- Trim noisy analysis success-path log chatter
- Pause auto rename while metadata updates are pending
- Allow auto-rename during pending metadata writes
- Reduce rename lock noise and refresh churn
- Reduce auto-rename scan churn
- Make similarity read paths analysis-free
- Stop passive scans from cached wav loads
- Narrow analysis enqueueing to explicit triggers
- Reduce analysis runtime polling overhead
- Export native startup timing into run contracts
- Route destructive edits through analysis trigger
- Gate browser WAV-only destructive edits
- Apply local Sempal updates
- Ensure scans stay analysis-free
- Export native shutdown timing artifacts
- Preserve analysis artifacts across sample renames
- Bump Radiant text micro-layouts
- Consolidate manual reanalysis triggers
- Classify maintenance browser refresh outcomes
- Defer source maintenance during browser file ops
- Serialize repeated browser auto rename intents
- Classify source watch refresh causes
- Route waveform selections through precise native actions
- Cleanup: stop tracking training datasets
- Preserve restore playback metadata
- Cleanup: remove generated root artifacts
- Rationalize script command inventory
- Own native waveform DTO projection
- Own browser and map native DTOs
- Own native shell action DTOs
- Own browser map shell composition in Sempal
- Own sidebar source folder composition in Sempal
- Wire generic Radiant native runtime
- Record Radiant fixture guardrails
- Refresh browser rows after sample rename
- Trim browser scroll action log spam
- Route browser tags through normal tag assignments
- Replace sidebar custom tags with normal tag picker
- Preserve unified normal tags across metadata consumers
- Validate unified tag library UX
- Clear tag sidebar input after commit
- Track tag-named browser samples
- Route folder disclosure toggles directly
- Measure large browser tag rename batches
- Batch sidebar metadata mutations
- Stream auto-rename file-op progress
- Trigger auto rename when enabling tag sidebar option
- Log auto-rename metadata provenance
- Model active auto-rename batch state
- Reduce batch auto-rename DB open churn
- Suppress local cargo startup update checks
- Bound native close shutdown drain
- Own native bridge trait in app core
- Route native hotkeys through Sempal catalog
- Own native shutdown artifact in Sempal
- Own status bar automation coverage
- Own compat runtime adapter coverage
- Opt into Radiant legacy shell feature
- Check standalone Radiant in smoke lane
- Map audio picker through Radiant paired picker
- Map browser triage through Radiant target
- Map focus context through Radiant focus surface
- Map automation roles through Radiant primitives
- Map prompt kinds through Radiant intents
- Own Sempal browser default labels
- Map trash action to Radiant discard action
- Map loaded sample focus to Radiant content focus
- Map compare anchor to Radiant content action
- Map browser mark to Radiant content mark
- Map find-similar to Radiant content action
- Map normalize to Radiant content action
- Map random sample actions to Radiant content actions
- Map map focus to Radiant spatial content action
- Map browser sample drag to Radiant content item drag
- Map shared map focus helper to content naming
- Map waveform sample actions to Radiant content actions
- Map Sempal browser labels to Radiant item labels
- Map shared browser pills to Radiant aliases
- Map Sempal tag target to Radiant triage target
- Map Sempal tag action to Radiant triage mark
- Disable sccache by default
- Map Sempal tag sidebar input to Radiant pill editor
- Map Sempal tag sidebar toggle to Radiant pill editor
- Map Sempal tag sidebar model to Radiant pill editor
- Map Sempal tag capability to Radiant pill edits
- Map Sempal normal tag action to Radiant pill option
- Map Sempal tag-named filter to Radiant derived label
- Map Sempal tag-named filter to Radiant derived labels
- Adapt generic pill editor automation for Sempal
- Adapt Sempal audio actions to Radiant paired pickers
- Adapt Sempal audio model to Radiant paired device panel
- Track Radiant legacy shell compat relocation
- Track Radiant shell shot compat relocation
- Track Radiant native report compat relocation
- Track Radiant native entrypoint compat relocation
- Track Radiant automation snapshot compat relocation
- Track Radiant text entry compat relocation
- Track Radiant sidebar fixture guardrail
- Re-export Radiant SVG parser through Sempal GUI facade
- Consume generic timeline motion parts
- Consume generic waveform frame projections
- Check Radiant standalone example in smoke
- Guard Radiant example smoke check
- Gate agent validation on Radiant standalone tests
- Consume Radiant theme scale policy
- Track Radiant text layout ownership
- Track Radiant paint primitive ownership
- Track Radiant Vello paint imports
- Track shared Radiant paint text types
- Track Radiant paint facade cleanup
- Track Radiant fingerprint primitive
- Track Radiant paint shim removal
- Track Radiant text layout shim removal
- Track generic Radiant pixel snap naming
- Track Radiant sources panel alias removal
- Track Radiant preference alias removal
- Track Radiant waveform motion alias removal
- Track Radiant waveform surface alias removal
- Track Radiant waveform presentation alias removal
- Track Radiant waveform feedback alias removal
- Track Radiant waveform slice alias removal
- Track Radiant waveform viewport alias removal
- Track Radiant waveform transport alias removal
- Track Radiant waveform edit preview alias removal
- Track Radiant waveform image preview alias removal
- Track Radiant waveform chrome state alias removal
- Track Radiant waveform tool state alias removal
- Track Radiant waveform channel view alias removal
- Track Radiant browser row item truncation naming
- Track Radiant native shell wording cleanup
- Track Radiant browser tab item naming
- Track native shell generic wording cleanup
- Track Radiant playhead trail point naming
- Map Radiant items tab automation for Sempal
- Track Radiant legacy shell doc wording
- Track Radiant automation ownership guardrail
- Track Radiant missing content marker wording
- Own native text entry runtime composition
- Own native shell snapshot composition
- Track Radiant automation wrapper cleanup
- Track Radiant runtime artifact wrapper cleanup
- Track Radiant browser alias cleanup
- Track Radiant source alias cleanup
- Track Radiant dirty segment cleanup
- Track Radiant motion projection relocation
- Track Radiant waveform projection relocation
- Track Radiant shell projection relocation
- Track Radiant bridge contract relocation
- Track Radiant action catalog relocation
- Track Radiant native Vello facade relocation
- Track Radiant source panel relocation
- Track Radiant runtime artifact relocation
- Track Radiant dirty segment relocation
- Track Radiant legacy alias relocation
- Track Radiant legacy facade guardrail
- Confine Radiant legacy shell imports
- Track Radiant native font flag rename
- Isolate Radiant legacy shell runtime adapter
- Track Radiant Vello legacy entrypoint split
- Track Radiant legacy repaint signal move
- Track Radiant Vello split guardrail
- Track Radiant repaint coalescing move
- Track Radiant legacy runner state move
- Track Radiant legacy config move
- Track Radiant runtime helper split
- Track Radiant native Vello import split
- Track Radiant text entry include split
- Track Radiant Vello prelude import split
- Track Radiant compatibility artifact extraction
- Track Radiant legacy runner alias removal
- Track Radiant legacy preview removal
- Track Radiant audio wording cleanup
- Track Radiant virtual grid primitive
- Own native app model defaults in app core
- Map Sempal browser chrome labels into Radiant
- Tighten Radiant legacy-shell boundary guard
- Wire Sempal native shell scaffold
- Derive result-only Vello runner locally
- Confine Radiant compat imports to runtime boundary
- Inline Radiant legacy run report conversion
- Confine Radiant compat bridge import
- Guard Sempal Radiant compat boundary
- Guard Sempal compat artifact boundary
- Route native shell hotkeys through app API facade
- Reuse app-core dirty segment DTOs in compat contract
- Reuse app-core sources panel DTO in compat contract
- Reuse app-core waveform DTOs in compat contract
- Reuse app-core options DTO in compat contract
- Route compat primitive aliases through app-core DTOs
- Route composition DTO imports through compat contract
- Route frame composition DTOs through compat contract
- Route annotation DTO through compat contract
- Confine legacy shell bridge to GUI runtime
- Consume Radiant danger accent token
- Localize Radiant legacy shell adapter
- OPT-270 isolate legacy native runtime adapter
- OPT-270 host native runner in Sempal
- OPT-271 update Radiant retained list primitives
- OPT-273 update Radiant canvas timeline primitives
- OPT-272 route shell lists through Radiant primitives
- OPT-274 route waveform composition through timeline primitives
- OPT-275 pin Sempal native runtime glue locally
- OPT-277 detach Sempal from Radiant legacy shell feature
- OPT-278 update Radiant legacy shell removal
- Complete OPT-279 standalone boundary validation
- Fetch Radiant submodule over SSH in CI
- Restore executable bit for check script
- Harden Bash guardrail fixtures on Windows
- Make check scripts portable to macOS Bash
- Normalize run-contract artifact paths
- Declare sempal-library Unix libc dependency
- OPT-268 Radiant standalone extraction (#216)
-
Tighten Radiant legacy-shell boundary guard
-
Update Radiant profiling boundary
-
Update Radiant spatial profiling boundary
-
Update Radiant spatial focus boundary
-
Update Radiant spatial hit-testing boundary
-
Update Radiant neutral test fixtures
-
Update Radiant neutral header fixtures
-
Update Radiant neutral fixture boundary
-
Update Radiant text fixture boundary
-
Update Radiant input fixture boundary
-
Update Radiant options label boundary
-
Update Radiant waveform wording boundary
-
Update Radiant extraction inventory boundary
-
Update Radiant legacy boundary docs
-
Update Radiant compatibility namespace boundary
-
Update Radiant product-neutral guardrails
-
Update Radiant domain-neutral docs guard
-
Update Radiant app contract API
-
Update Radiant view element aliases
-
Update Radiant renderer context API
-
Update Radiant focus management API
-
Update Radiant native focus routing
-
Update Radiant event routing API
-
Update Radiant command followup API
-
Update Radiant sample action boundary
-
Update Radiant point terminology cleanup
-
Update Radiant declarative command bridge
-
Update Radiant generic repaint routing
-
Update Radiant declarative surface helpers
-
Update Radiant static widget helper
-
Update Radiant leaf constructors
-
Update Radiant form constructors
-
Update Radiant repaint coalescing
-
Update Radiant helper cleanup
-
Update Radiant leaf helpers
-
Update Radiant badge widget
-
Update Radiant card helper
-
Update Radiant list item invocation
-
Update Radiant image widget
-
Update Radiant selectable widget
-
Update Radiant scroll area helpers
-
Update Radiant grid helper
-
Update Radiant snapshot serialization
-
Update Radiant snapshot guardrail
-
Update Radiant virtual list scroll helper
-
Update Radiant virtual list scroll normalization
-
Update Radiant pointer coordinate helper
-
Update Radiant inline badge helper
-
Update Radiant fixed row layout helper
-
Update Radiant spatial point helper
-
Update Radiant progress fill helper
-
Update Radiant progress activity helper
-
Update Radiant meter fill helper
-
Update Radiant centered icon helper
-
Update Radiant centered icon reuse
-
Update Radiant stroke-aligned border helper
-
Update Radiant top-right overlay helper
-
Update Radiant border edge helper
-
Update Radiant anchored panel helper
-
Update Radiant rectangle union helper
-
Update Radiant rect clamp reuse
-
Update Radiant text baseline helper
-
Update Radiant inline indicator helper
-
Update Radiant grouped toolbar helper
-
Update Radiant fixed item sizing helper
-
Update Radiant progress track helper
-
Update Radiant horizontal inset helper
-
Update Radiant saturating inset helper
-
Update Radiant layout rect helper
-
Update Radiant layout rect reuse
-
Update Radiant uniform inset helper
-
Update Radiant rect center helper
-
Update Radiant layout rect lookup reuse
-
Update Radiant empty rect helper reuse
-
Update Radiant max corner empty rect helper
-
Update Radiant vertical inset helper
-
Update Radiant vertical split helper
-
Update Radiant waveform handle center reuse
-
Use Radiant generic runtime options directly
-
Update Radiant text renderer wording
-
Update Radiant wheel helper naming
-
Update Radiant content list drag state
-
Update Radiant content item drag naming
-
Update Radiant content list viewport helpers
-
Update Radiant content list scrollbar helpers
-
Update Radiant content list windowing helpers
-
Update Radiant content list row hit testing
-
Wire Sempal native shell scaffold
-
Use local shell automation snapshots
-
Use local shell shot snapshots
-
Update Radiant snapshot export cleanup
-
Derive result-only Vello runner locally
-
Update Radiant retired automation cleanup
-
Update Radiant automation scaffold cleanup
-
Use generic automation snapshot conversion
-
Move legacy runtime adapter into app core
-
Use Radiant compat runtime artifacts
-
Use Radiant legacy native Vello compat
-
Update Radiant compat namespace docs
-
Update Radiant native Vello guardrail
-
Use generic Radiant bridge aliases
-
Update Radiant generic prelude boundary
-
Update Radiant input boundary
-
Update Radiant generic range boundary
-
Update Radiant native shell boundary
-
Update Radiant runtime input boundary
-
Update Radiant browser row boundary
-
Update Radiant browser recency boundary
-
Update Radiant waveform range boundary
-
Update Radiant sidebar hit testing boundary
-
Update Radiant overlay focus boundary
-
Update Radiant sidebar frame build boundary
-
Update Radiant folder and map boundary
-
Update Radiant browser and options DTO boundary
-
Update Radiant icon naming boundary
-
Update Radiant row metadata boundary
-
Update Radiant row similarity boundary
-
Update Radiant row rating boundary
-
Update Radiant row marker boundary
-
Update Radiant row visual boundary
-
Update Radiant toolbar chip boundary
-
Update Radiant text field boundary
-
Update Radiant toolbar hit testing boundary
-
Update Radiant column chip boundary
-
Update Radiant recency icon boundary
-
Update Radiant pill editor boundary
-
Use local native shell model for snapshots
-
Confine Radiant compat imports to runtime boundary
-
Inline Radiant legacy run report conversion
-
Update Radiant legacy runtime artifacts
-
Update Radiant signal header surface
-
Update Radiant signal toolbar surface
-
Update Radiant content chrome surface
-
Update Radiant content chrome helper names
-
Update Radiant content chrome text layout names
-
Update Radiant content row text layout names
-
Update Radiant content tabs layout names
-
Update Radiant spatial map helper names
-
Update Radiant content toolbar layout names
-
Update Radiant content toolbar cache names
-
Update Radiant content toolbar helper module
-
Update Radiant content action cache names
-
Update Radiant content action signature names
-
Update Radiant content tabs sizing names
-
Update Radiant content footer sizing names
-
Update Radiant compat triage action names
-
Update Radiant content filter action names
-
Update Radiant content pill editor action names
-
Update Radiant content recency filter action
-
Update Radiant content search action names
-
Update Radiant content panel focus action
-
Update Radiant content row action names
-
Update Radiant duplicate cleanup action names
-
Update Radiant content history action names
-
Update Radiant content playback action names
-
Update Radiant content rename action names
-
Update Radiant waveform save action names
-
Update Radiant content drag hover field
-
Update Radiant action docs pointer
-
Use Radiant gui runtime legacy Vello entrypoint
-
Update Radiant content row helper pointer
-
Update Radiant content row cache pointer
-
Update Radiant content row wording pointer
-
Update Radiant content frame pointer
-
Update Radiant content hit testing pointer
-
Update Radiant private compat pointer
-
Update Radiant private compat guardrail pointer
-
Confine Radiant compat bridge import
-
Guard Sempal Radiant compat boundary
-
Update Radiant compat docs pointer
-
Update Radiant content band pointer
-
Update Radiant content band id pointer
-
Update Radiant content frame helper pointer
-
Update Radiant content row cache pointer
-
Update Radiant content row truncation pointer
-
Update Radiant content row geometry pointer
-
Update Radiant content row helper pointer
-
Update Radiant content text cache pointer
-
Update Radiant content row render pointer
-
Update Radiant content row key pointer
-
Update Radiant content drag wording pointer
-
Update Radiant content shell wording pointer
-
Update Radiant static segment pointer
-
Update Radiant windowing helper pointer
-
Update Radiant overlay fingerprint pointer
-
Update Radiant content hover pointer
-
Update Radiant content row hover pointer
-
Update Radiant content editor pointer
-
Update Radiant content text helper pointer
-
Update Radiant content context menu pointer
-
Update Radiant frame text helper pointer
-
Update Radiant content editor geometry pointer
-
Remove duplicate Sempal compat runtime artifacts
-
Guard Sempal compat artifact boundary
-
Update Radiant content pill editor pointer
-
Update Radiant content search pointer
-
Update Radiant content node pointer
-
Update Radiant content hit-testing pointer
-
Update Radiant content overlay pointer
-
Route native shell hotkeys through app API facade
-
Reuse app-core dirty segment DTOs in compat contract
-
Reuse app-core sources panel DTO in compat contract
-
Reuse app-core waveform DTOs in compat contract
-
Reuse app-core options DTO in compat contract
-
Route compat primitive aliases through app-core DTOs
-
Use app-core automation DTOs in compat contract
-
Route composition DTO imports through compat contract
-
Route frame composition DTOs through compat contract
-
Route annotation DTO through compat contract
-
Confine legacy shell bridge to GUI runtime
-
Remove brittle native snapshot source checks
-
Consume Radiant danger accent token
-
Update Radiant after guardrail cleanup
-
Update Radiant after legacy fixture cleanup
-
Update Radiant after legacy test trim
-
Localize Radiant legacy shell adapter
-
Update Radiant after text edit split
-
Update Radiant after tiered theme split
-
Update Radiant canvas input routing
-
Update Radiant hit testing order
-
Update Radiant hover routing
-
Update Radiant generic repaint runtime
-
Update Radiant generic exit artifacts
-
Update Radiant generic shortcut routing
-
OPT-270 isolate legacy native runtime adapter
-
OPT-270 host native runner in Sempal
-
OPT-271 update Radiant retained list primitives
-
OPT-273 update Radiant canvas timeline primitives
-
OPT-272 route shell lists through Radiant primitives
-
OPT-274 route waveform composition through timeline primitives
-
OPT-275 pin Sempal native runtime glue locally
-
OPT-277 detach Sempal from Radiant legacy shell feature
-
OPT-278 update Radiant legacy shell removal
-
Complete OPT-279 standalone boundary validation
-
Fix CI Radiant submodule checkout
-
Use deploy key for Radiant submodule CI
-
Fetch Radiant submodule over SSH in CI
-
Use Radiant deploy key during submodule fetch
-
Restore executable bit for check script
-
Harden Bash guardrail fixtures on Windows
-
Fix CI shell execution guardrails
-
Make check scripts portable to macOS Bash
-
Normalize run-contract artifact paths
-
Fix CI lint compatibility
-
Stabilize CI guardrails and async tests
-
Fix remaining CI portability checks
-
Declare sempal-library Unix libc dependency
-
Fix remaining macOS Bash guardrails
-
Fix Unix clippy dependency gaps
-
Fix remaining cross-platform CI tests
- Align repo branch policy with main
- OPT-280 overhaul CI validation lanes (#217)
-
Overhaul CI validation lanes
-
Keep advisory CI lanes diagnostic
-
Harden waveform load timing test
- Tighten similarity prep readiness checks
- Harden source metadata write policy
- Log analysis claim source failures
- Preserve browser search cache on read failures
- Report source removal persistence failures
- Guard native action compat conversion parity
- Align native shell theme with dark coral reference
- Implement Sempal Linear project reliability work (#219)
- Collapse source sidebar to one active browser
- Complete single-pane sidebar child issues
- Wire sidebar filter facets into browser search
- Cover sidebar filter row hit testing
- Finish Radiant standalone runtime cutover (#223)
-
Project retained surface metadata from Sempal bridge
-
Keep browser and timeline workflow DTOs Sempal-owned
-
Launch Sempal through Radiant generic runtime
-
Update Radiant structural guardrails
-
Delete local legacy native Vello runtime
-
Document compatibility browser DTO helpers
-
Document retained runtime glue
- Restore retained shell input routing
- Restore retained hover and keyboard routing
- Restore retained shell overlays
- Format native shell runtime boundary code
- Implement sidebar tag chip editor
- Restore retained GUI interaction responsiveness
- Clean up post-cutover runtime boundary residue
Implements OPT-365 with child issues OPT-366, OPT-367, and OPT-368.
- Restore retained GUI dynamic updates
- Restore retained GUI dynamic updates (#231)
Fixes OPT-376, OPT-377, OPT-378, OPT-379, OPT-380, and OPT-381.
- Speed up retained hover repaints
- Radiant ergonomic public API layer
Implements OPT-384 and child issues OPT-385 through OPT-391 by updating the Radiant submodule pointer to the nested Radiant ergonomic API commit.
Validated with Radiant focused tests, Radiant no-default tests, scripts/ci.ps1 smoke, and scripts/ci.ps1 agent.
- Radiant beginner API soft deprecation
Completes OPT-392 under OPT-384 by updating the Radiant submodule pointer to the nested soft-deprecation docs and guardrail commit.
Validated with Radiant guardrails, Radiant no-default tests, scripts/ci.ps1 smoke, and scripts/ci.ps1 agent.
- Attempted waveform fix
- Handle Radiant text edit input routing
- Clean up strict test clippy lints
- Centralize Sempal chrome widget node builders
Summary:
- add a composition-local widget node builder module for static text/button/toggle/input/canvas leaves
- update Sempal chrome surfaces to use the local node API instead of importing and wiring Radiant primitive structs directly
Validation:
- cargo fmt
- cargo test -p sempal browser_chrome_surface --lib
- cargo test -p sempal sidebar_surface --lib
- cargo test -p sempal waveform_toolbar_surface --lib
- cargo test -p sempal waveform_header_surface --lib
- cargo test -p sempal top_bar_surface --lib
- cargo test -p sempal status_surface --lib
- powershell -ExecutionPolicy Bypass -File scripts/ci.ps1 smoke
- Assert Sempal chrome widgets through generic nodes
Summary:
- remove remaining concrete Radiant primitive downcasts from Sempal chrome composition tests
- assert projected widgets through the generic UiSurface::find_widget / SurfaceWidget::id API instead
- keep concrete widget construction isolated to the composition/widget_nodes boundary
Validation:
- cargo fmt
- cargo test -p sempal browser_chrome_surface --lib
- cargo test -p sempal sidebar_surface --lib
- cargo test -p sempal status_surface --lib
- cargo test -p sempal waveform_header_surface --lib
- cargo test -p sempal top_bar_surface --lib
- cargo test -p sempal waveform_toolbar_surface --lib
- rg scan: concrete primitive constructors only remain in composition/widget_nodes.rs
- powershell -ExecutionPolicy Bypass -File scripts/ci.ps1 smoke
- Start Radiant rebuild app shell
- Sync Radiant waveform GPU updates
- Sync Radiant target audit updates (#251)
- Sync Radiant present split (#252)
- Sync Radiant GPU surface model split (#253)
- Sync Radiant focus controller split (#254)
- Sync Radiant pointer controller split (#255)
- Sync Radiant surface traversal split (#256)
- Sync Radiant layout builder split (#257)
- Sync Radiant editable list model split (#258)
- Sync Radiant virtual grid split (#259)
- Sync Radiant visualization canvas split (#260)
- Sync Radiant visualization spatial split (#261)
- Sync Radiant visualization timeline split (#262)
- Sync Radiant visualization signal split (#263)
- Sync Radiant virtual list split (#264)
- Sync Radiant control builder split (#265)
- Sync Radiant native runtime lifecycle split (#266)
- Sync Radiant surface widget model split (#267)
- Sync Radiant command executor split (#268)
- Sync Radiant keyboard routing split (#269)
- Sync Radiant GPU resource split (#270)
- Sync Radiant paint primitive split (#271)
- Sync Radiant target audit updates
- Sync Radiant target audit follow-ups
- Sync Radiant widget input boundary updates
- Sync Radiant badge model boundary update
- Sync Radiant selectable model boundary update (#279)
- Sync Radiant image model boundary update (#280)
- Sync Radiant scrollbar model boundary update (#281)
- Sync Radiant widget state contract (#282)
- Sync Radiant target alignment updates (#283)
- Sync Radiant text cache boundary
- Sync Radiant text helper API
- Sync Radiant text cache safety cleanup
- Sync Radiant text layout cache update (#287)
- Sync Radiant text cache capacity update (#288)
- Sync Radiant command refresh update (#289)
- Sync Radiant runtime queue recovery (#290)
- Sync Radiant command batch normalization (#291)
- Sync Radiant input routing update (#292)
- Sync Radiant subscription batch update (#293)
- Sync Radiant runtime policy split (#294)
- Sync Radiant paint contract split (#295)
- Sync Radiant resource module split (#296)
- Sync Radiant submodule with main
- Expose Radiant layout debug overlay
- Tighten Radiant rebuild panel spacing
- Populate rebuild sample list from folder
- Load selected rebuild sample into waveform
- Scan rebuild sources in background
- Flatten rebuild folder tree indentation
- Sharpen rebuild waveform detail
- Compact rebuild folder tree indentation
- Stream rebuild folder scan results
- Batch rebuild folder scan updates
- Feed rebuild waveform frequency bands
- Double rebuild waveform view height
- Left align rebuild folder tree labels
- Hide extensions while renaming samples
- Make Radiant GUI the default Sempal path
- Guard playmark selection spacebar playback
- Restore Wavecrate fade interaction stack (#306)
-
Preview edit fades in waveform GPU view
-
Apply edit fades during GUI playback
-
Add playmark range resize handles
-
Let edit fade handles push opposing fades
-
wc doc
-
Add edit fade crossfade handles
-
Refine waveform scrollbar and pan drag
-
Route edit fade apply through destructive edits
- Log folder rename targets
- Hide full waveform scrollbar
- Tune waveform scrollbar styling
- Record renamed sample metadata assets
- Delete temp files
- Add wav files to ignore
- Catch all wav files in ignore
- Mark extracted waveform ranges
- Tune waveform color grading and live fade preview (#319)
- Adopt Radiant app builder controls (#322)
- [codex] Align source audio support with WAV-first target (#355)
-
Refine Wavecrate target specification
-
Align source audio support with WAV-first target
- Block hard delete in default GUI (#356)
- Align source database filename with target (#357)
- Reject duplicate source aliases (#358)
- Reject nested source roots (#359)
- Block permanent trash deletion (#360)
- Explain nested source conflicts (#361)
- Route browser delete through configured trash
Route browser sample delete through Wavecrate's configured trash workflow instead of permanent file removal.
- Make audio settings a floating popup (#365)
- Clean up waveform loading overlay paint (#369)
- Guard browser context actions against missing paths (#370)
- Paint default status progress bar directly (#372)
- Extract default status bar module
- Update doc
- Extract default context menu module
- Expose rebuildable cache clearing in settings
- Extract default GUI audio and sample browser views
- Extract default GUI file actions
- Extract default GUI playback modules
- Block multichannel destructive edits
- Extract waveform interaction model
- Extract waveform audio file model
- Push latest doc
- Extract waveform signal widget module
- Extract waveform audio extraction module
- Extract audio engine pill widget
- Extract waveform interaction types
- Extract folder browser contract types
- Extract folder browser state types
- Extract folder tree widgets
- Extract folder browser path helpers
- Extract folder browser scanning module
- Extract folder browser view module
- Extract waveform selection paint helpers
- Extract waveform edit fade paint helpers
- Extract folder browser source management
- Extract folder browser file selection
- Extract folder browser drag drop
- Clarify Wavecrate destructive edit write format
- Clarify Wavecrate source onboarding writes
- Clarify Wavecrate embedded ID background writes
- Allow audition during duplicate ID conflicts
- Exclude Wavecrate search from global undo
- Clarify immediate Wavecrate settings commits
- Make duplicate ID repair forward-only
- Name Wavecrate source removal command
- Clarify Wavecrate all-files visibility
- Clarify all-files file operations
- Reset all-files visibility on restart
- Warn before deleting folders with hidden contents
- Clarify hidden files in folder copy
- Default folder copy to visible files
- Allow playback-only unsupported audio audition
- Clarify playback-only unsupported waveform state
- Exclude playback-only files from similarity views
- Block unsupported audio handoff
- Limit unsupported files to preview and file management
- Promote newly supported files on rescan
- Clarify Wavecrate target browser and unsupported-file behavior
Merged reviewed docs/TARGET.md clarifications.
- Extract folder browser rename workflow
- Exclude source database from in-app folder copy
- Disallow in-app source root moves
- Disallow in-app source root copy
- Reveal source folder for database diagnostics
- Extract waveform state interaction
- Rely on external source metadata backups
- Exclude source databases from diagnostic bundles
- Extract waveform widget
- Rely on non-YOLO destructive warnings
- Always warn when YOLO mode is off
- Make YOLO enable a secondary warning action
- Extract folder browser entry models
- Extract drag drop relocation
- Extract folder browser file columns
- Extract folder rename tree updates
- Extract playback loop control
- Extract edit fade resize rules
- Extract edit fade curve painting
- Extract waveform widget input
- Extract waveform visual bands
- Extract waveform viewport state
- Extract folder file entry metadata
- Extract folder tree state
- Extract file view window state
- Extract drag drop moves
- Extract status progress bar
- Apply command when enabling YOLO from warning
- Extract file rename workflow
- Extract file rename workflow
Move file-specific rename setup, view state, and commit behavior into a focused folder-browser module.
Validated with:
- cargo test rename --bin wavecrate
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract folder tree hit target
- Extract folder tree hit target
Move folder tree pointer hit testing, drag/drop routing, and hit target painting into a focused module.
Validated with:
- cargo test -p wavecrate browser_nodes_advertise_expected_action_ids
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract waveform paint primitives
- Extract waveform paint primitives
Move shared waveform fill, range, and cursor primitive helpers out of selection painting.
Validated with:
- cargo test -p wavecrate waveform_selection_shot_matches_fixture
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract edit fade geometry
- Extract edit fade geometry
Move edit-fade geometry and hit testing into a focused waveform module.
Validated with:
- cargo test -p wavecrate edit_fade
- cargo test -p wavecrate waveform_selection_shot_matches_fixture
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract waveform state selection helpers
- Extract waveform state selection helpers
Move waveform selection lookup and mutation helpers out of the interaction dispatch module.
Validated with:
- cargo test -p wavecrate gui_app::waveform
- cargo test --manifest-path vendor/radiant/Cargo.toml --test app_runtime_api lifecycle::app_startup_commands_use_full_runtime_dispatch --no-default-features -- --test-threads=1
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract audio settings popover
- Extract audio settings popover
Move audio settings popover layout and option construction into a focused module.
Validated with:
- cargo test -p wavecrate audio_settings
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract sample browser rows
- Extract sample browser rows
Move sample browser row and cell rendering into a focused module.
Validated with:
- cargo test -p wavecrate browser_nodes_advertise_expected_action_ids
- cargo test -p wavecrate browser_dense_shot_matches_fixture
- powershell -ExecutionPolicy Bypass -File scripts\ci.ps1 agent
- Extract playback progress polling (#435)
- Confirm only YOLO enablement in settings
- Apply settings YOLO changes to future actions
- Extract selected file id fallback (#436)
- Extract folder scan progress context (#437)
- Mention session undo in edit warning
- Extract audio engine option helpers (#438)
- Warn once for batch audio edits
- Extract edit fade band rect helpers (#439)
- Apply YOLO batch warning action immediately
- Name commands in destructive warnings
- Extract WAV normalization actions (#440)
- Extract scan discovery merge helpers (#441)
- Extract single file selection helper (#442)
- Codex/audio backend dropdown (#451)
-
Use overlay dropdown for audio backend
-
main merge (#450)
-
Use overlay dropdown for audio backend
Replace the audio backend option grid with a Radiant dropdown rendered as an overlay.
Add click-outside and Escape dismissal, update context-menu dismiss regions, and advance vendor/radiant to the merged dropdown overlay support.
-
Fix audio backend fallback and selection labels (#446)
-
Fix Radiant API build (#447)
-
Fix ASIO output stream config fallback (#448)
-
Refine the audio engine options panel (#449)
-
Fix ASIO output stream config fallback
-
Simplify audio engine options panel controls
- Clean assets
- Extract browser tag sidebar facade
- Restore required runtime assets
- Extract source metadata mutation executor
- Extract analysis metadata mutation executor
- Derive action kinds from catalog rows
- Clarify target status progress and filesystem actions
- Enable file drag out to the OS
- Accept native file
Full Release Log
This generated release log exceeded GitHub's release-body limit and was
shortened for the GitHub release page. The complete log is attached as
release-log.md and is published in the PortalSurfer release changelog.