{
  "chip": "KORGI W5 audio import (Logic matrix)",
  "actor": "Helios",
  "host": "Icarus / centaur-macmini-1",
  "composer": "Mitchell Burns",
  "plan_branch": "cursor/w5-audio-import-0101",
  "worktree": "/Users/icarus/.cursor/worktrees/korgi-w5-audio-import-20260913",
  "tip": "29309b8239a816369cfa4c62ae2f0a564cd469b4",
  "packedCommit": "29309b8239a816369cfa4c62ae2f0a564cd469b4",
  "base": "4d355a5994467bbe64dc28b9b5817037e25a02ce",
  "base_short": "4d355a5",
  "sync_method": "bootstrap",
  "remote": "gdrive only (/Users/icarus/Projects/korgi-gdrive.git). No GitHub origin. Do not git push origin.",
  "pixelLabUsd": 0,
  "newProject": {
    "filmLen": 24,
    "fps": 12
  },
  "decoderStrategy": {
    "productPath": "in-process KORGI decoder. Not FFmpeg CLI. Not a Finder/Logic bounce. Not 'user converts then imports WAV'.",
    "wavAiff": "TypeScript parsers (wav.ts, aiff.ts). parseWav still requires 48 kHz unless requireWorkingRate:false.",
    "flacAlacAacMp3": "crates/korgi-audio (Symphonia 0.5) compiled to wasm32-unknown-unknown. Instantiated with no imports. Shipped at src/lib/korgi/native/korgi_audio.wasm (Node tests) and public/korgi-audio/korgi_audio.wasm (Studio fetch).",
    "rebuild": "scripts/build-korgi-audio-wasm.sh",
    "workingRate": "48 kHz desk. Conversion is recorded on decodeRecipe (resample none|linear). normalizePeak always false. timeStretch always false. 44100 Logic bounces import; they are not refused.",
    "originalBytes": "assetBytes keep the file that was imported. Waveform peaks are a cache keyed by SHA-256 of those bytes.",
    "fixtureFactory": "Matrix fixtures were minted on the host with ffmpeg as a factory. That binary is not the Studio import path."
  },
  "matrix": [
    {
      "row": "WAV PCM16 48 kHz",
      "fixture": "wav-pcm16-48k.wav",
      "decodes": true,
      "path": "parseWav + importAudio"
    },
    {
      "row": "WAV PCM24 48 kHz",
      "fixture": "wav-pcm24-48k.wav",
      "decodes": true,
      "path": "parseWav + importAudio"
    },
    {
      "row": "WAV IEEE float32 48 kHz",
      "fixture": "wav-f32-48k.wav",
      "decodes": true,
      "path": "parseWav + importAudio"
    },
    {
      "row": "WAV PCM16 44100",
      "fixture": "wav-pcm16-44100.wav",
      "decodes": true,
      "path": "importAudio; parseWav default still WAV_RATE (I-43)"
    },
    {
      "row": "AIFF PCM16 48 kHz",
      "fixture": "aiff-pcm16-48k.aiff",
      "decodes": true,
      "path": "parseAiff"
    },
    {
      "row": "AIFF PCM24 48 kHz",
      "fixture": "aiff-pcm24-48k.aiff",
      "decodes": true,
      "path": "parseAiff"
    },
    {
      "row": "AIFF-C float32 48 kHz",
      "fixture": "aiff-f32-48k.aiff",
      "decodes": true,
      "path": "parseAiff fl32/FL32"
    },
    {
      "row": "FLAC",
      "fixture": "flac-16.flac",
      "decodes": true,
      "path": "symphonia wasm"
    },
    {
      "row": "ALAC in .m4a",
      "fixture": "m4a-alac.m4a",
      "decodes": true,
      "path": "stsd alac + symphonia"
    },
    {
      "row": "AAC in .m4a",
      "fixture": "m4a-aac.m4a",
      "decodes": true,
      "path": "stsd mp4a + symphonia"
    },
    {
      "row": "MP3 CBR",
      "fixture": "mp3-cbr.mp3",
      "decodes": true,
      "path": "symphonia wasm after ID3 skip"
    },
    {
      "row": "MP3 VBR",
      "fixture": "mp3-vbr.mp3",
      "decodes": true,
      "path": "symphonia wasm (Xing present)"
    },
    {
      "row": "AAC named .wav",
      "fixture": "lie-aac.wav",
      "decodes": false,
      "path": "AUDIO_LIE"
    },
    {
      "row": "ALAC named .wav",
      "fixture": "m4a-alac.m4a as mix.wav",
      "decodes": false,
      "path": "AUDIO_LIE"
    }
  ],
  "stillMissing": [
    "channels > 2 (decoder refuses)",
    "CAF / AIFF-C ima4 / other DAW wrappers not in the Logic matrix",
    "sox-quality or bandlimited resample (working-rate converter is documented linear)",
    "ID3/iTunes name-artist tags are not copied into asset metadata",
    "waveform peaks are an in-memory cache, not a packed zip member",
    "browser WebAudio decode is not used and is not required"
  ],
  "importWav": {
    "actionId": "korgi.film.importWav",
    "compatible": true,
    "permissions": [
      "studio",
      "mcp",
      "llm-propose"
    ],
    "notStudioOnly": true,
    "notStudioStar": true,
    "requiredPayload": [
      "id",
      "frames"
    ],
    "payloadGrowth": [
      "container",
      "codec",
      "sourceSampleRate",
      "channelLayout",
      "originalSha256",
      "decodeRecipe",
      "sourceFrames",
      "workingRateHz",
      "replacesId",
      "alignment",
      "audioVersion",
      "mediaType"
    ],
    "workingSampleRateEnum": [
      48000
    ]
  },
  "remix": {
    "newAudioVersion": true,
    "previousActiveFalse": true,
    "pictureHold": true,
    "celColumnsUntouched": true,
    "takesUntouched": true,
    "alignmentWhenDurationDiffers": "needs-operator",
    "doesNotSilentlyMoveOrStretchPicture": true
  },
  "testsOnThisTip": {
    "tsc": "npx tsc --noEmit (exit 0)",
    "audio-import.test.ts": "13 pass (matrix, lies, save/reopen hash, remix picture hold, waveform cache)",
    "timing-audio.test.ts": "I-01..I-148 including I-43 44100 refuse and I-122 no FFmpeg spawn",
    "evaluate-frame.test.ts": "3 pass (New Project 24@12, dump takes, production nuki)",
    "mcp.test.ts": "4 pass",
    "mcp/packet-a.test.ts": "11 pass",
    "actions/collab.test.ts": "4 pass"
  },
  "colliding_worktrees": [
    {
      "chip": "W1 durable host",
      "branch": "cursor/w1-durable-host-0101",
      "note": "did not edit Helios host files"
    },
    {
      "chip": "W6 movie export",
      "branch": "cursor/w6-movie-export-0101",
      "note": "did not edit mux-webm-av.ts"
    }
  ],
  "blocking_owner_items": [
    "fast-forward korgi main",
    "Railway-redeploy KORGI production",
    "overwrite gdrive:Korgi/korgi.main.zip",
    "overwrite gdrive:Korgi/korgi.git.tgz",
    "git push origin / create GitHub origin",
    "PixelLab spend",
    "merge this branch to cursor/astra-gates-0101 or main"
  ],
  "filesChanged": [
    "Cargo.toml",
    "Cargo.lock",
    "crates/korgi-audio/Cargo.toml",
    "crates/korgi-audio/src/lib.rs",
    "scripts/build-korgi-audio-wasm.sh",
    "src/lib/korgi/wav.ts",
    "src/lib/korgi/aiff.ts",
    "src/lib/korgi/audio-container.ts",
    "src/lib/korgi/audio-resample.ts",
    "src/lib/korgi/audio-wasm.ts",
    "src/lib/korgi/audio-import.ts",
    "src/lib/korgi/audio-waveform.ts",
    "src/lib/korgi/audio-import.test.ts",
    "src/lib/korgi/timing-audio.test.ts",
    "src/lib/korgi/actions/registry.ts",
    "src/lib/korgi/actions/execute.ts",
    "src/lib/store.ts",
    "src/components/korgi/TimingSheet.tsx",
    "src/lib/korgi/native/korgi_audio.wasm",
    "public/korgi-audio/korgi_audio.wasm",
    "src/lib/korgi/fixtures/audio/*",
    "docs/oss/receipts/w5-audio-import.json"
  ],
  "non_claims": [
    "not green as a finished creator product",
    "W1 durable host envelope is not this commit",
    "W6 WebM VP9/Opus export is not this commit",
    "W2 grant catalog / Packet A two-action filter is not this commit",
    "importWav is now STUDIO (delegable) but Link still cannot mutate; it can propose once grants expose the id",
    "working-rate resample is linear, not a mastering converter",
    "no FFmpeg product path",
    "New Project stays 24@12",
    "migrateLegacyLoop stays explicit",
    "no celColumns to takes dual-write",
    "main is not fast-forwarded",
    "gdrive:Korgi/korgi.main.zip is not overwritten"
  ]
}
