Skip to content

Merge dev → main (automated) - #253

Merged
SorraTheOrc merged 54 commits into
mainfrom
release/dev-to-main-20261006213117
Oct 6, 2026
Merged

SorraTheOrc merged 54 commits into
mainfrom
release/dev-to-main-20261006213117

Conversation

@SorraTheOrc

Copy link
Copy Markdown
Member

Automated release created by ship skill.\n\nIncludes CHANGELOG.md with work-item summaries from this release.

pi added 30 commits October 4, 2026 22:54
- Add LICENSE file with standard MIT licence text
- Update package.json license field to MIT
Tone.js was removed in a prior migration (TF-0MN06817414DW638) but the
package.json dependency entry and lockfile remained. No source files
import the 'tone' package.

ACs verified:
- No file imports tone
- tone removed from package.json dependencies
- npm install completes cleanly, lockfile updated
- Full test suite passes (2572 tests)
- Web build succeeds
Prepend bin/tf-shim/ to the PTY PATH so that toneforge and tf resolve
inside the web server terminal without a global npm link.

- bin/tf-shim/toneforge, tf: shell scripts delegating to bin/dev-cli.js
- web/server/index.ts: prepend SHIM_DIR to PTY env.PATH at startup
- README.md: document CI-safe CLI invocation in the web demo

Resolves TF-0MUVK0OMW0058TV0
pi added 24 commits October 5, 2026 20:57
Persist `tf library add` recipes into an external recipe directory
(~/.toneforge/recipes by default, configurable via TONEFORGE_RECIPE_DIR or
--destination) so a separate `tf generate` process discovers and renders them.

- core/recipe.ts: multi-directory discovery, external directory resolution,
  atomic temp-file+rename persistence, path-traversal-safe names
- recipes/index.ts: discover baked-in presets plus the external directory
- cli.runtime.ts: persist on `library add`; `library list` shows the recipe
  catalogue with source directory and external/baked-in/built-in kind
- help text and docs/guides/external-recipes.md document path resolution
- Export assertOverrideChangesOutput helper for per-parameter testing
- Refactor registry-wide coverage test to use the helper
- Add stale-entry and missing-entry guard assertions
- Add unit tests for the override-check helper
- All 9 tests pass; no production code changes
…9003PW21)

- Remove the 'as unknown as ToneGraphDocument' cast from automation
  test cases in tonegraph.test.ts; use typed const annotations instead
- Add an integration test asserting ambient-wind-gust and card-transform
  inline automation survives validation, changes rendered output, and
  remains deterministic

Note: the core schema validation/preservation was already delivered by
TF-0MUV8YKFR002BIA2; this item closes the remaining test/type gaps.
…RD7B)

- impact-crack: blend white/pink noise by noiseColorMix (0=white, 1=pink)
  using Paul Kellet's pink-noise filter; exactly one RNG draw per sample
- card-round-complete: implement ADSR envelope with a sustain plateau
  (attack -> decay to sustain -> plateau -> release); duration now
  attack + 3*decay so the sustain phase is inside the rendered buffer
- Remove both entries from KNOWN_UNWIRED
- Add explicit per-parameter override tests and sustain-plateau RMS test

Note: seed-derived baseline audio changes for both recipes; no golden
snapshots exist.
- Add src/core/recipe-overrides.ts: parse, validate and apply declarative
  meta.parameters[].overrides mappings
- Support direct node-param targets, automation-event targets (by index or
  kind), and computed expressions (* and /) over resolved parameters and
  node fields
- Wire mappings into createFileBackedRegistration after the name/default
  heuristic so explicit mappings win; validate at registration/discovery time
- Add 26 unit/integration tests covering each target form, resolution order,
  precedence, no-op behaviour, and loud failures
- Document the mapping format in docs/tonegraph.md

Recipes without mappings are unchanged (no-op path).
…TF-0MUVK22YO002IID4)

- ambient-wind-gust.yaml: map filterFreq -> windFilter.frequency and
  automation offset, lfoRate -> automation rate, lfoDepth -> automation
  depth (expression 'lfoDepth / 2')
- card-transform.yaml: map carrierFreq -> carrier.frequency, modRatio ->
  modulator.frequency (expression 'carrier.frequency * modRatio'),
  modDepthStart -> modDepth.gain and the 'set' event, modDepthEnd -> the
  'linearRamp' event value
- weapon-laser-zap.yaml: map carrierFreq/modulatorFreq directly and
  modIndex -> modDepth.gain (expression 'modIndex * modulator.frequency')
- Add shared assertOverrideChangesOutput test helper and explicit
  per-parameter override assertions for the three recipes
- Remove the three now-honoured KNOWN_UNWIRED entries; only
  ambient-wind-gust.release remains (child TF-0MUVK23CN004C4R9)

Baseline audio changes for the three recipes (no golden snapshots exist).
…004C4R9)

- tonegraph.ts stop(): release now spans [time - release, time] (clamped at
  0) instead of [time, time + release], matching the authored convention
  duration = attack + decay + release; sources still stop at time
- Re-assert the sustain plateau from cancelScheduledValues(releaseStart)
- Document the stop() contract on ToneGraphHandle
- Add unit tests: release ramp measurable inside the window; release = 0
  holds sustain through the buffer (unchanged behaviour)
- Add ambient-wind-gust.release override test with tail-fades-to-silence
  assertion; remove the last KNOWN_UNWIRED entry (now empty)

footstep-gravel and ui-scifi-confirm have release = 0 and render unchanged.
…P0VA)

- Extract evaluateAllowlist guard helper; the registry-wide coverage test
  now derives stale/missing entries through it
- Add unit tests for the guard machinery (stale, missing, still-no-effect)
  and a helper test that fails when a wired parameter is claimed allowlisted
- Update docs/tonegraph.md: envelope release window semantics and the
  file-backed override mapping format (already added) plus node-automation
  preservation
- Document override resolution order on RecipeRegistration.buildOfflineGraph
  and RenderPresetInput.overrides

The allowlist is empty; every declared parameter of every registered recipe
is honoured.
@SorraTheOrc
SorraTheOrc merged commit f1d87f3 into main Oct 6, 2026
1 check failed
@SorraTheOrc
SorraTheOrc deleted the release/dev-to-main-20261006213117 branch October 6, 2026 21:32
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.

1 participant