Skip to content

Wavecrate 19.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Jul 10:49
c373aa5

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

  • Add configurable rating decay (#633)
  • Add unlock action for keep-locked samples (#634)

🐛 Bug Fixes

  • Keep rating hotkeys on current sample (#631)

💼 Other

  • OPT-965 Remove sticky playmark resize slop (#630)
  • Rate samples copied to DAWs (#632)

[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.