Sync upstream 2026-06-05#31
Merged
Merged
Conversation
- @opendaw/lab@0.0.146 - @opendaw/nam-test@0.0.15 - @opendaw/app-studio@0.0.146 - @opendaw/typescript-config@0.0.32 - @opendaw/lib-box@0.0.86 - @opendaw/lib-box-forge@0.0.88 - @opendaw/lib-dawproject@0.0.70 - @opendaw/lib-dom@0.0.83 - @opendaw/lib-dsp@0.0.84 - @opendaw/lib-fusion@0.0.94 - @opendaw/lib-inference@0.0.4 - @opendaw/lib-jsx@0.0.83 - @opendaw/lib-midi@0.0.66 - @opendaw/lib-runtime@0.0.79 - @opendaw/lib-std@0.0.78 - @opendaw/lib-xml@0.0.64 - @opendaw/studio-adapters@0.0.110 - @opendaw/studio-boxes@0.0.91 - @opendaw/studio-core@0.0.146 - @opendaw/studio-core-processors@0.0.116 - @opendaw/studio-core-workers@0.0.105 - @opendaw/studio-enums@0.0.75 - @opendaw/studio-forge-boxes@0.0.91 - @opendaw/studio-p2p@0.0.12 - @opendaw/studio-scripting@0.0.63 - @opendaw/studio-sdk@0.0.148
- @opendaw/lab@0.0.147 - @opendaw/app-studio@0.0.147 - @opendaw/studio-adapters@0.0.111 - @opendaw/studio-core@0.0.147 - @opendaw/studio-core-processors@0.0.117 - @opendaw/studio-core-workers@0.0.106 - @opendaw/studio-p2p@0.0.13 - @opendaw/studio-scripting@0.0.64 - @opendaw/studio-sdk@0.0.149
- @opendaw/lab@0.0.148 - @opendaw/app-studio@0.0.148 - @opendaw/studio-adapters@0.0.112 - @opendaw/studio-core@0.0.148 - @opendaw/studio-core-processors@0.0.118 - @opendaw/studio-core-workers@0.0.107 - @opendaw/studio-p2p@0.0.14 - @opendaw/studio-scripting@0.0.65 - @opendaw/studio-sdk@0.0.150
- @opendaw/lab@0.0.146 - @opendaw/nam-test@0.0.15 - @opendaw/app-studio@0.0.146 - @opendaw/typescript-config@0.0.32 - @opendaw/lib-box@0.0.86 - @opendaw/lib-box-forge@0.0.88 - @opendaw/lib-dawproject@0.0.70 - @opendaw/lib-dom@0.0.83 - @opendaw/lib-dsp@0.0.84 - @opendaw/lib-fusion@0.0.94 - @opendaw/lib-inference@0.0.4 - @opendaw/lib-jsx@0.0.83 - @opendaw/lib-midi@0.0.66 - @opendaw/lib-runtime@0.0.79 - @opendaw/lib-std@0.0.78 - @opendaw/lib-xml@0.0.64 - @opendaw/studio-adapters@0.0.110 - @opendaw/studio-boxes@0.0.91 - @opendaw/studio-core@0.0.146 - @opendaw/studio-core-processors@0.0.116 - @opendaw/studio-core-workers@0.0.105 - @opendaw/studio-enums@0.0.75 - @opendaw/studio-forge-boxes@0.0.91 - @opendaw/studio-p2p@0.0.12 - @opendaw/studio-scripting@0.0.63 - @opendaw/studio-sdk@0.0.148
- @opendaw/lab@0.0.147 - @opendaw/app-studio@0.0.147 - @opendaw/studio-adapters@0.0.111 - @opendaw/studio-core@0.0.147 - @opendaw/studio-core-processors@0.0.117 - @opendaw/studio-core-workers@0.0.106 - @opendaw/studio-p2p@0.0.13 - @opendaw/studio-scripting@0.0.64 - @opendaw/studio-sdk@0.0.149
- @opendaw/lab@0.0.148 - @opendaw/app-studio@0.0.148 - @opendaw/studio-adapters@0.0.112 - @opendaw/studio-core@0.0.148 - @opendaw/studio-core-processors@0.0.118 - @opendaw/studio-core-workers@0.0.107 - @opendaw/studio-p2p@0.0.14 - @opendaw/studio-scripting@0.0.65 - @opendaw/studio-sdk@0.0.150
ArchitectureCanvas dereferenced model.config.layers unconditionally, which is undefined for non-WaveNet architectures (LSTM, ConvNet, …) and crashed the NAM properties dialog. Guard with isDefined and reuse the "No layers" empty state. Upgrade @opendaw/nam-wasm to ^1.1.0, which makes NamModelConfig.layers optional so this class of access is now enforced by the type checker. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RegionClipResolver.validateTrack asserted duration > 0 and panicked, but it runs after the edit is already committed (RegionOverlapResolver.apply, clip mode) — so the panic only crashed the session without undoing the bad state. A region that reached duration 0 upstream therefore took down the whole app. Log a NON_POSITIVE_DURATION diagnostic and continue instead, mirroring the existing non-fatal overlap branch in the same function. Where 0-duration regions are created is still open (tracked separately); the new console breadcrumb is there to catch it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
56 unresolved reports grouped into 33 signatures with occurrence counts, source locations, status (RESOLVED-in-source vs OPEN), and a phased strategy to address them one by one. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ruled out the interactive resize modifiers (all clamp positive); identified the recording path (RecordAudio take regions) as the strong suspect. No fix shipped — root cause unproven and the recording latency logic is delicate, so documenting findings rather than band-aiding the validators. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This reverts commit b7e33d8. Softening validateTrack to non-fatal was a band-aid: it hid the 0-duration corruption and removed the production signal needed to find its origin. Restore the panic so reports keep surfacing until the real cause (suspected: RecordAudio take regions) is fixed. See the investigation log in errors/error-triage.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
error-triage.md becomes a slim index linking to a file per error-group (P1/P2/P3/ENV/RESOLVED). Consolidates the 0-duration family (#933/#982/#998) into one file with the root-cause investigation log. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Identified the desync mechanism: IndexedBoxAdapterCollection adds an adapter to #entries before notifying listeners, so if the core Mixer's onAdd throws for a unit (suspected: a migrated AudioUnitBox missing a mute/solo named parameter), the unit stays in the collection but never enters Mixer.#states, and a later registerChannelStrip panics. Exact trigger unproven without the offending project; no fix shipped (no band-aids). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds an investigation (root cause, evidence, recommended fix) to every remaining triaged error-group file: box-graph integrity, automation double-assign, Checkbox/memoizeAsync, Monaco, Option.unwrap, mixdown OOM, storage/OPFS, network/deploy/audio/external, and confirms the two RESOLVED groups. No band-aids — concrete fixes or diagnostic-first next steps. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The two RESOLVED groups were band-aids, not fixes: overlap-after-clipping (panic -> console.error in d3343f0; clip resolver still leaves overlaps) and region-split zero-duration (#667, panic merely reworded). Reclassify both as OPEN P2; remove the RESOLVED section and Phase 0; do not mark anything fixed=1 until a root cause is actually fixed. Also correct #811: the delete-mid-drag hypothesis was disproven interactively; the unmessaged unwrap is in a TrackRegions change-notifier subscriber, not the modifier. Needs reproduction; no fix shipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion)
An automation (Value) lane targeting an aux-send level (AuxSendBox.sendGain)
crashes paste: copyAudioUnit excludes AuxSendBox, so the send isn't copied,
but the lane's mandatory TrackBox.target still points at it -> endTransaction
panics "Pointer {…TrackBox… (target) …/2 requires an edge." Verified RED with
the exact production error.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… a unit
copyAudioUnit excludes routing/global boxes (aux-send, bus, MIDI-controller,
root), but an automation TrackBox whose mandatory `target` pointed into one of
them was still copied — leaving target unwired on paste and panicking at
endTransaction ("requires an edge"). Now also exclude such orphan lanes from
the copy, so they are not pasted. Local lanes (targeting in-unit devices/the
unit itself) are kept and rewired as before.
Extract the dependency collection into an exported collectDependencies() so the
tests exercise the real exclusion logic. Turns the #983 repro test green; adds
a test proving a device-parameter lane survives while the aux-send lane drops.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- @opendaw/lab@0.0.151 - @opendaw/nam-test@0.0.16 - @opendaw/app-studio@0.0.151 - @opendaw/studio-adapters@0.0.115 - @opendaw/studio-boxes@0.0.93 - @opendaw/studio-core@0.0.151 - @opendaw/studio-core-processors@0.0.121 - @opendaw/studio-core-workers@0.0.110 - @opendaw/studio-enums@0.0.77 - @opendaw/studio-forge-boxes@0.0.93 - @opendaw/studio-p2p@0.0.17 - @opendaw/studio-scripting@0.0.68 - @opendaw/studio-sdk@0.0.153
- @opendaw/lab@0.0.152 - @opendaw/app-studio@0.0.152 - @opendaw/studio-adapters@0.0.116 - @opendaw/studio-boxes@0.0.94 - @opendaw/studio-core@0.0.152 - @opendaw/studio-core-processors@0.0.122 - @opendaw/studio-core-workers@0.0.111 - @opendaw/studio-forge-boxes@0.0.94 - @opendaw/studio-p2p@0.0.18 - @opendaw/studio-scripting@0.0.69 - @opendaw/studio-sdk@0.0.154
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
upstream/main(andremichelle/openDAW) into our fork@opendaw→@moises-aiscope transform viascripts/transform-scope.jspackage-lock.json;node scripts/verify-scope.jspassesNotable upstream changes
studio-sdkbumped to0.0.154upstream#983: drop automation lanes targeting excluded boxes when copying a unitConflict resolution
git checkout --theirsperdocs/PUBLISHING.mdTest plan
node scripts/verify-scope.jspassesnpm run build— 24/24 tasks ✓npm test— 42/42 tasks ✓ (146/146 instudio-core)