Skip to content

Sync upstream 2026-06-05#31

Merged
naomiaro merged 83 commits into
mainfrom
sync-upstream-2026-06-05
Jun 5, 2026
Merged

Sync upstream 2026-06-05#31
naomiaro merged 83 commits into
mainfrom
sync-upstream-2026-06-05

Conversation

@naomiaro

@naomiaro naomiaro commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Merges 81 commits from upstream/main (andremichelle/openDAW) into our fork
  • Reapplies @opendaw@moises-ai scope transform via scripts/transform-scope.js
  • Regenerates package-lock.json; node scripts/verify-scope.js passes

Notable upstream changes

  • Latency compensation
  • Fixes Update Neural Amp Modeler (NAM) to Architecture 2 (A2) andremichelle/openDAW#256, #642, #703, #811, #814, #815, #816, #915, #957, #983, #997, #998
  • studio-sdk bumped to 0.0.154 upstream
  • NAM: guard properties dialog against non-WaveNet models
  • Extensive error-triage docs (split per error group; root-cause investigations for #924/925/926/984/985, #933/#998)
  • Region renderer: don't crash on non-positive duration (then reverted upstream; final upstream state has the docs but not the guard)
  • #983: drop automation lanes targeting excluded boxes when copying a unit

Conflict resolution

  • 40 files conflicted; resolved by git checkout --theirs per docs/PUBLISHING.md
  • Scope transform reapplied on top — 52 files updated

Test plan

  • node scripts/verify-scope.js passes
  • npm run build — 24/24 tasks ✓
  • npm test — 42/42 tasks ✓ (146/146 in studio-core)
  • Spot-check the app loads in dev once merged

 - @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
andremichelle and others added 29 commits June 3, 2026 18:27
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
@naomiaro naomiaro merged commit df3e18c into main Jun 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update Neural Amp Modeler (NAM) to Architecture 2 (A2)

2 participants