fix(linux): hide NAM symbols so two plugin formats can share a host - #98
Merged
Merged
Conversation
Shayshez
added a commit
to Shayshez/tone3000-plugin
that referenced
this pull request
Sep 13, 2026
Syncs with upstream through PR tone-3000#98 (34 commits ahead of the prior sync point at ce486d7): the iOS/iPad touch adaptation (tone-3000#108), the chain-gallery scroll-restore fix (tone-3000#123, already reconciled with our own scroll-restore work below), the model-dropdown scroll fix (tone-3000#106, already present here via cherry-pick 9ae6aa4), the model-cache-bloat fix (tone-3000#128), Linux JACK/symbol-hiding fixes, Windows MSVC static runtime and WebView2 bootstrap fixes, and the v0.0.9 version bump. test/CMakeLists.txt: trivial re-sort of two independently-added test source entries (ir_category/content_length/decay_tests.cpp from us, factory_preset_tests.cpp from upstream). ChainView.tsx: reconciled the two independent scroll-restore rewrites. Adopted upstream's simpler foundation (a single ref callback that restores CHAIN_SCROLL_STORAGE_KEY on attach and persists it continuously on scroll, avoiding the ref-detachment-timing bug our own mechanism worked around a harder way) and layered our index/id-based tile recentering on top of that same restore point, so a closed or vanished detail block's tile is still recomputed by position rather than replayed as a raw offset (needed for correctness when the chain reshaped while the takeover was open). Kept the ChainMapStrip-specific "wait for a newly-added block to resolve before treating it as vanished" guard (confirmedDetailBlockIdRef / awaitingDetailBlock), which has no upstream equivalent. Verified via a disposable trial merge that no other file's overlap (GalleryBlock.tsx, Plugin.tsx, ProcessorState.cpp, ChainBlock.h, plugin/CMakeLists.txt) produces a silent behavioral conflict — all touch genuinely disjoint regions. helpText.ts's touch-copy gap (envelope help strings not covered by the new touchify() pass) is addressed in a separate follow-up commit. Full DSP suite (166 tests), UI typecheck, build, and lint all pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012vdPmCnApN64Q8LxKc3kmh
This branch was previously deployed
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
Fixes #59
Test plan
CI does not run on pull requests. A maintainer can dispatch Build Plugin from the Actions tab when they want a full signed build. Run the local checks this PR can break:
./script/test-dsp.sh(or N/A: no audio/chain/state change)cd ui && npm run lint && npm run build(or N/A: noui/change)./script/validate-plugin.sh(pluginval strictness 10 for VST3/AU, clap-validator, lv2lint). AAX and Standalone are skipped by that script.If you changed DSP behavior on purpose, update the GoogleTest in the same commit and say why.
Compatibility
These are contracts from the first public release. Leave unchecked only if this PR does not touch that surface.
Processor.cppare not reused or renumberedplugin/CMakeLists.txtare unchangedkStateSchemaVersionis bumped and the old tree is handled explicitlyplugin/docs/updated if the public build or behavior changed