daniel
52394fa08f
docs: fold Daniel's three Phase Ε rulings into the product doc
...
Ε-F1 proprietary RSBK; Ε-F2 always a new bank with an auto suffix; Ε-F3
refuse import on a degraded ledger.
2026-08-02 06:58:04 -04:00
daniel
7f3b00a646
fix: bake-answer messages stop asserting causes the classifier can't see
...
Rewords Cleared/Unanswered/ForeignRequest to name only observed facts and every live hypothesis instead of picking a winner; adds a guarded answeredOutcome accessor against a future unhandled BakeAnswerKind; folds an unreachable BakeScanKey/Context test state; fixes generation-stamp timing.
2026-08-02 06:57:08 -04:00
daniel
7f040dd934
Merge Λ-W1-T2: Linux source/runtime portability audit
2026-08-02 06:53:54 -04:00
daniel
47065a19bb
Merge Λ-W1-T1: Linux build/toolchain readiness audit
2026-08-02 06:53:51 -04:00
daniel
b1726b0ad3
Fix audit citations, counts, and the L2-07/L2-09 mechanisms after code-review verification
2026-08-02 06:39:36 -04:00
daniel
f57bf4fb6d
docs: fix audit citations — bad line ranges, misattributed evidence, overclaimed severity
...
Corrects a false unguarded-include claim, re-scopes hot-path evidence to what's actually linked, replaces a nonexistent Fork-A collision scenario, fixes several miscounted TUs/libraries, re-grades two Fork-B items from Blocker to Major/non-blocker, and adds missing owners/done-conditions.
2026-08-02 06:39:31 -04:00
daniel
962ab64ef0
bake: name the five ways the extension can fail to answer, and move the landing verdict into a pure, tab-provable classifier
...
A no-answer stays a failure; it now says whether the extension never ran the landing, answered a stale generation, spoke a wire this build cannot read, cleared the request, or refused it.
2026-08-02 06:38:04 -04:00
daniel
a91df760cc
capture: name the render source in the exact-bounds refusal, and put its one-frame tolerance under test
...
The tolerance is unchanged and now derived, not assumed: frameCountFor lands in {floor(L), ceil(L)}, so a non-frame-aligned window can never miss by more than a frame. Naming the source is what tells a self-bounding render from a short one.
2026-08-02 06:37:40 -04:00
daniel
86c3c7f3b8
docs: spec Phase Ε — bank export/import as a version-tagged package
...
Adds docs/product/bank-package.md and the Phase Ε spec in docs/PLAN.md:
three waves, six tracks. Three forks open; Ε-F1 blocks Ε-W1-T1.
2026-08-02 06:32:07 -04:00
daniel
893455594f
docs: audit source/runtime Linux-portability for extension and VST3 instrument
...
Two one-line compile blockers, a locale hazard in the persisted number codec, and a cost split showing the extension is nearly there while the instrument editor is a from-scratch X11 job.
2026-08-02 06:07:28 -04:00
daniel
5455b1047b
docs: audit the Linux build/toolchain gap ahead of Phase Λ
2026-08-02 06:07:20 -04:00
daniel
6e937b9c61
docs: add a DAW verification checklist
...
Checks for post-1.0 work that no unit test can close, ordered by risk. Each item cites the obligation it discharges.
2026-08-02 04:32:29 -04:00
daniel
92f0aa209d
Merge release 1.4.0 hygiene: AGPL v3 license, version bump, repo cleanup
1.4.0
2026-08-02 04:16:38 -04:00
daniel
19e28b02c3
docs: rewrite README against the landed tree
...
Overview, artifacts, prerequisites, platform support, setup, build/test, install, and repo layout, matching current CMake targets and channel support.
2026-08-02 04:15:41 -04:00
daniel
ca43eb76d4
Update CLion project config
2026-08-02 04:10:20 -04:00
daniel
4fca140ace
Untrack .idea/ ahead of the public push
...
Files stay on disk; the directory is now ignored.
2026-08-02 04:05:33 -04:00
daniel
573e878cbd
Release 1.4.0 hygiene: license, version bump, drop scratch DSP
...
Add AGPL v3 LICENSE, bump version to 1.4.0, remove unreferenced non-compiling temp_cortex/ limiter scratch files, and extend .gitignore for .idea/, AGENTS.md, and cmake-build-* dirs.
2026-08-02 04:04:17 -04:00
daniel
194c2392cf
Merge Phase Ψ — the extension trust pass: exact bounds, disjoint solo surfaces, reachable actions, honest drops, real names, true mono
2026-08-01 23:40:32 -04:00
daniel
a4aeb4f6ab
Merge dev into phase-psi: take Ξ-W3 before Ψ lands
...
# Conflicts:
# docs/COMPLETED.md
# docs/TODO.md
2026-08-01 23:39:24 -04:00
daniel
0f870b1337
docs: collapse Phase Ψ's landed track specs, and record Ψ-W3 — the wave a review finding opened
2026-08-01 23:32:25 -04:00
daniel
a3a9c91256
docs: record Phase Ψ's seven landed tracks, and that none of them is DAW-verified yet
2026-08-01 23:22:06 -04:00
daniel
a21a6176e8
Merge Ψ-W3: refuse every multi-track selected-tracks render, both scopes
2026-08-01 23:01:56 -04:00
daniel
2a9ab65944
Ψ-W3 remediation: fix the verify doc's wrong render source, add missing content checks, soften unverified claims
...
Corrected the Render-dialog source name the refusal's evidence depends on, added a by-ear content check and a file-size channel proxy, and stopped two comments from overclaiming.
2026-08-01 23:01:50 -04:00
daniel
f69c4bf6bf
Refuse every multi-track selected-tracks render, both scopes; make a failed mono collapse observable
2026-08-01 22:40:54 -04:00
daniel
6e6f4a6a15
Merge Ψ-W2-T2: a bit-identical capture collapses to one lossless mono channel
...
# Conflicts:
# src/shell/capture/CLAUDE.md
# src/shell/capture/capture.cpp
# src/shell/capture/capture.h
2026-08-01 22:23:06 -04:00
daniel
91f3ffb09e
Merge Ψ-W2-T1: captures named after their source track, surfaced on the panel card
2026-08-01 22:16:20 -04:00
daniel
8b191e3379
Ψ-W2-T2 remediation: atomic temp+rename collapse write, honest unknown-channel fallback, [verify — DAW] markers, corrected+filed bake-collapse deferral, observable collapse message, quiet-NaN test
2026-08-01 22:08:39 -04:00
daniel
0feb32d59b
Ψ-W2-T1 remediation: scrim the card name over the waveform, hedge two SDK claims, fix a UTF-8-truncation empty-label bug, file the legibility DAW deferral
2026-08-01 22:08:35 -04:00
daniel
4fa3c1dd15
Ψ-W2-T2: collapse a capture whose channels are bit-identical to one lossless mono channel, index value measured off the landed file
2026-08-01 21:46:55 -04:00
daniel
3278b4eced
Name captures after their source track: label and filename both, on every interactive mint site, and show the name on the panel card
2026-08-01 21:46:53 -04:00
daniel
4bdbbe0517
docs: close Phase Ξ — the popup abandoned by ruling, the bake window derives itself, and Γ's rung ladder shifts to v15
2026-08-01 21:44:05 -04:00
daniel
178cca3c25
Merge Ξ-W3-T1: the bake window derives itself — Hold is the one knob a sustain loop needs, and three truncations are gone
2026-08-01 21:34:10 -04:00
daniel
eb6093e085
Close derived-bake-window review findings: NaN-guard remaining wire doubles, pin Trigger-span agreement, retire dead quantizer
...
Guards params_payload.cpp's filter-tail seconds and both keyTrack sites against NaN; pins Voice::start's Trigger-span formula against trigger_seam; retires unused shortestDivisionAtLeast.
2026-08-01 21:32:05 -04:00
daniel
09d64c9f46
Merge Ψ-W1-T1: a ranged item capture renders the window, with children and receives silenced for it
...
# Conflicts:
# docs/TODO.md
# src/app/CMakeLists.txt
2026-08-01 21:25:37 -04:00
daniel
a0220e8c57
Ψ-W1-T1 second-round remediation: ±1-frame bounds tolerance, self-cleanup a refused render, hedge two unverified render-source inferences
...
Loosens the exact-bounds gate against REAPER's edge rounding; deletes the bytes a BoundsMismatch refusal writes, per prune_fs's self-cleanup carve-out.
2026-08-01 21:18:03 -04:00
daniel
65f6070348
Bake window: derived note lengths carry exact durations, not ladder rungs — a long take is no longer cut at 384 beats
...
Hold keeps its picker. Also: one home for the %-fold, duration-ordered Hold travel, and a corrupt tail degrades to absent rather than fabricating one.
2026-08-01 21:10:38 -04:00
daniel
7dc80e7a4f
capture: refuse the multi-track ranged item render, silence the track's children and receives for it, and gate every exact-bounds capture on its frame count
2026-08-01 20:58:33 -04:00
daniel
a0f9a23711
Merge Ψ-W1-T4: resolve drop targets per move, not once
...
# Conflicts:
# src/shell/actions/CLAUDE.md
2026-08-01 20:57:55 -04:00
daniel
1044f5418f
Merge Ψ-W1-T3: publish the Media Explorer import into the Media Explorer action section as well as Main
2026-08-01 20:37:30 -04:00
daniel
148d8a9e06
Merge Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
2026-08-01 20:37:24 -04:00
daniel
19aeb92775
Bake window derives itself: %-knob fold, declick pad, Gate held to exhaustion, preview velocity; Hold is the one knob a loop needs
2026-08-01 20:26:04 -04:00
daniel
9d10f151da
Ψ-W1-T4 remediation: gate silent arrange drops, pin surface totality, hedge unverified SDK claims, close comment/exception-safety minors
2026-08-01 20:13:17 -04:00
daniel
d589b99705
Ψ-W1-T3 review remediation: soften the double-fire claim to unspecified-by-SDK, mark the unload mirror [verify — DAW], fix stale comment, drop redundant assertions, dedupe hook-partitioning comments, drop what-comment; file the action_registry test-seam deferral.
2026-08-01 20:13:13 -04:00
daniel
f2cdf676f3
Ψ-W1-T2 review remediation: solo restore drops on visible-in-target, not parked; N-mode segments read dead when unroutable
...
Fixes a hidden-parent solo replay that could silence the mix. Also closes the N-mode segment silent no-op, amends the invariant comment, trims view.cpp under 600 lines, hedges two SDK inferences, drops a dead null-check.
2026-08-01 20:13:10 -04:00
daniel
fe3ac79ab5
Ψ-W1-T4: resolve drop targets per move, not once — every surface gets a defined outcome, a cue, and no silent no-op
2026-08-01 19:43:37 -04:00
daniel
72b870459c
Publish the Media Explorer import into REAPER's Media Explorer action section as well as Main — custom_action + hookcommand2, second forever-stable id, one handler.
2026-08-01 19:43:27 -04:00
daniel
9c234c2e6b
Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
...
Solo is cached, cleared and replayed per mode on a real switch only; the switch is refused visibly while the transport runs. The footer segment now routes through the activate actions, so a panel switch finally persists.
2026-08-01 19:43:18 -04:00
daniel
5e3ea6c851
capture: render a ranged item capture time-bounded — the selected-items source can't narrow a window, only a full-extent one uses it
...
sourceModeForScope now takes the item extent vs. the requested window. Full-extent item captures and the batch keep the old path unchanged.
2026-08-01 19:43:06 -04:00
daniel
d3894dae6d
test: audit the derived bake window end to end — two truncations pinned, Gate's missing hold length demonstrated
2026-08-01 19:38:28 -04:00
daniel
8bf6841f7b
docs: spec Phase Ψ — the extension trust pass, seven items across two waves, six tracks, three scheduled invariant amendments
2026-08-01 19:01:01 -04:00