Daemon: POSIX artifact URIs; tests find session files through StoreFileName #25

Merged
aqua merged 1 commit from aqua/artifact-uri-posix into main 2026-11-10 18:12:29 +00:00
Member

Follow-up chat-mind-20261110T145436827Z-t97. The four native-Faust daemon tests that fail on main on Linux (and stall a full dotnet test host) are CODE, not environment:

  1. AquaSynthDaemonService.ToArtifactUri built file:/// + absolute path; for /tmp/x that is file:////tmp/x, which Uri reads as a UNC host, so every Float32Uri/WavUri receipt pointed at nothing on POSIX (Windows C:/... was right). Fixed; Windows output unchanged.
  2. Session / live-session receipts are written as StoreFileName.From(id).cc (since the StoreFileName merge); the compile key is uppercase hex so the file gains a hash suffix, and the tests still looked for <SessionId>.cc. Tests now name files through StoreFileName.From.

Both hide wherever native Faust does not compile, because the tests return early then; they bite exactly where audio really renders. What Nibu would see: render receipts with unreadable artifact URIs on Linux, and a red suite that stalls.

Verified: --filter AquaSynthDaemonServiceTests|StoreFileNameTests 58/58 passed on this branch, 4 failed on origin/main (0171953+); each half falsified by the failures remaining when the other half is absent (URI fix only: 2 still fail; before both: 4). The remaining main failures (Zyn pinned source, FaustLoader platform-name, CultMesh leased workers) are separate and unchanged. Nothing deployed.

Generated with Claude Code (https://claude.com/claude-code)

Follow-up chat-mind-20261110T145436827Z-t97. The four native-Faust daemon tests that fail on main on Linux (and stall a full `dotnet test` host) are CODE, not environment: 1. `AquaSynthDaemonService.ToArtifactUri` built `file:///` + absolute path; for `/tmp/x` that is `file:////tmp/x`, which `Uri` reads as a UNC host, so every Float32Uri/WavUri receipt pointed at nothing on POSIX (Windows `C:/...` was right). Fixed; Windows output unchanged. 2. Session / live-session receipts are written as `StoreFileName.From(id).cc` (since the StoreFileName merge); the compile key is uppercase hex so the file gains a hash suffix, and the tests still looked for `<SessionId>.cc`. Tests now name files through `StoreFileName.From`. Both hide wherever native Faust does not compile, because the tests return early then; they bite exactly where audio really renders. What Nibu would see: render receipts with unreadable artifact URIs on Linux, and a red suite that stalls. Verified: `--filter AquaSynthDaemonServiceTests|StoreFileNameTests` 58/58 passed on this branch, 4 failed on origin/main (0171953+); each half falsified by the failures remaining when the other half is absent (URI fix only: 2 still fail; before both: 4). The remaining main failures (Zyn pinned source, FaustLoader platform-name, CultMesh leased workers) are separate and unchanged. Nothing deployed. Generated with Claude Code (https://claude.com/claude-code)
ToArtifactUri prefixed a bare "file:///" so /tmp/x became file:////tmp/x, which Uri reads as a UNC host:
the render receipts' Float32Uri/WavUri pointed at nothing on Linux. Separately, session and live-session
receipts are written as StoreFileName.From(id).cc and the compile key is uppercase hex, so the name gains a
hash suffix; four native-Faust daemon tests still looked for the raw id. Both only show where native Faust
compiles (they return early when it does not), so they were red on every Linux host with Faust.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
aqua merged commit 30691ab213 into main 2026-11-10 18:12:29 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/AquaSynth!25
No description provided.