New

  • Refuse a root folder two *arrs share #140

    builds D1-R10

  • Report an unsupported API version instead of writing to it #141

    builds D1-R12

  • Refuse a root folder outside the data root #142

    builds D1-R9

  • Record an expected-state baseline of what it writes #144

    builds C9-R1

  • Compare drift three ways — expected, actual, desired #145

    builds C9-R2C9-R3C9-R4

  • Present both sides of a config conflict #147

    builds C9-R5

  • Adopt operator edits & take on an existing setup (C9-R6/R9) #148

    builds C9-R6C9-R9C9-R8

  • Tell a lost expected-state record from a first seed #150

    builds C9-R14

  • Keep an operator's edits to the materialised stack files #151

    builds C9-R13

  • Model quality presets in the operator's own terms #153

    builds D2-R1D2-R2D2-R5

  • Map presets to Recyclarr's community profiles #154

    builds D2-R3

  • Warn before a preset a household cannot smoothly play #155

    builds D2-R4

  • Choose a quality preset in plain language #156

    builds D2-R1D2-R2D2-R4D2-R5D2-R6

  • Apply the chosen preset to the Recyclarr config #157

    builds D2-R3

  • Detect a hand-edited config and consent to overwrite it #158

    builds D2-R8

  • Report when the quality guide source can't be reached #159

    builds D2-R9

  • Warn when the disk is small for the chosen quality #160

    builds D2-R10

  • Upgrade existing content to the chosen quality (D2-R7) #161

    builds D2-R7

  • Audio format model for media without a resolution (D2-R11) #162

    builds D2-R11

  • Map an audio format onto Lidarr's quality profile (D2-R11) #163

    builds D2-R11

  • Apply an audio format to Lidarr through its API (D2-R11) #164

    builds D2-R11

  • Choose and apply the music format from the surface (D2-R11) #165

    builds D2-R11

  • Tell no matching releases from an indexer failure (D2-R12) #166

    builds D2-R12

  • The pipeline stages an item passes through (D9-R5) #167

    builds D9-R5

  • Read one *arr's fragment of an item's journey (D9-R4) #168

    builds D9-R4

  • The "where is my show?" command over the *arr spine (D9-R1/R2) #169

    builds D9-R1

  • Enrich the trace with the download queue (D9-R3/R5) #170

    builds D9-R5

  • The last stage — is my show finally in the library? (D9-R6/R7) #171

    builds D9-R2D9-R3D9-R6D9-R7D9-R8

  • Complete the C9 drift epic — full reset, drift severity, schema re-baseline #176

    builds C9-R12C9-R7C9-R10

  • Repeated-attempt history and the stuck-item landing point (D9-R9/R11) #177

    builds D9-R9D9-R11

  • Withhold a drifted secret's value from both sides of the diff #190

    builds C9-R11

  • Prove the killswitch by breaking the tunnel #193

    builds C2-R7C2-R8

Fixed

  • Let the issue gate count to one, and stop the fake it flagged #188

    builds GOV-R12

Maintenance

  • Enumerate the E3 requirements 0.3.0 covers #139

    builds E3-R1E3-R2E3-R3E3-R4E3-R6E3-R7E3-R8E3-R9E3-R10E3-R11E3-R12E3-R13E3-R14

  • Prove interruption-integrity and record the seed budget #143

    builds D1-R13D1-R14

  • Security hardening, concurrency, and cleanup from a codebase review #146

    builds GOV-R12

  • Credit the built D1 and C9 work per the release gate #152

    builds GOV-R12

  • Credit the completed D2 quality-presets epic in the tracker #172

    builds GOV-R12

  • Give each recording test its own temp dir #174

    builds GOV-R12

  • Pay down the D2/D9 accretion + close two trace honesty gaps #175

    builds GOV-R12D9-R10D9-R14

  • Report a show season by season, not by one episode landing (D9-R13) #178

  • Show what the household asked for, in their own words (D9-R12) #179

  • Build the surface's lines so they can be read back (coverage) #180

    builds GOV-R12

  • Cover the backup and restore surfaces #181

    builds GOV-R12

  • Cover the provider dial, and give it one exit #182

    builds GOV-R12

  • Move the provider dialer in beside the other adapters #183

    builds GOV-R12

  • Answer setup's questions from a script #184

    builds GOV-R12

  • Make one concern per file the standard, and enforce it #185

    builds GOV-R12

  • Put the first-run walk under the 100% gate #186

    builds GOV-R12

  • End setup with something working, not an empty dashboard #187

  • Take the issue gate that blocks only on a real count #189

    builds GOV-R12

  • Close the 0.4.0 gate's bookkeeping #191

    builds D3-R2D3-R3D3-R4D3-R5D3-R6D3-R7D3-R8D3-R9D3-R10D3-R11D3-R12D3-R13D9-R12D9-R13GOV-R12

  • Bump the workspace to 0.4.0 #192

    builds OPS-R1

The goals it was gated on

D1-R1D1-R2D1-R3D1-R4D1-R5D1-R6D1-R7D1-R8D1-R9D1-R10D1-R11D1-R12D1-R13D1-R14D1-R16D2-R1D2-R2D2-R3D2-R4D2-R5D2-R6D2-R7D2-R8D2-R9D2-R10D2-R11D2-R12D3-R1D3-R2D3-R3D3-R4D3-R5D3-R6D3-R7D3-R8D3-R9D3-R10D3-R11D3-R12D3-R13D9-R1D9-R2D9-R3D9-R4D9-R5D9-R6D9-R7D9-R8D9-R9D9-R10D9-R11D9-R12D9-R13D9-R14C9-R1C9-R2C9-R3C9-R4C9-R5C9-R6C9-R7C9-R8C9-R9C9-R10C9-R11C9-R12C9-R13C9-R14