## cortexkit/aft — v0.56.2…v0.57.0

_378+ commits._

### Fixes
- **Announce 0.57.0: OpenCode 2 support, doctor on a V2-only machine, and the code-health overlap fix** (b6084b2)
- **Reclassify train 142: the cancellation fix touches the ranking fence** (f286872)

### Backend
- **release: v0.57.0** (2c65082)
- **Align release manifest and evidence** (6e76091)
- **Align governed publication manifests** (b471eda)
- **Describe train 153 for the search-quality gate** (cf07481)
- **Wait for the residual seam label instead of the WAL length it lags behind** (d3332f5)
- **release: v0.57.0** (9dc75ad)
- **Describe train 152 for the search-quality gate** (31d16e5)
- **Align release manifest and evidence** (6469f88)
- **Align governed publication manifests** (9f48583)
- **Align release manifest and evidence** (2727fe8)
- **Align governed publication manifests** (42f77b0)
- **Describe train 151 for the search-quality gate** (aec2b32)
- **Record the Tier-2 cold-build gate and the OpenCode 2 required check in the 0.57.0 notes** (c95b199)
- **Record the content round: nine arms, all flat, and a dead suspect** (48ddc34)
- **Table the content arms beside each other, with the index write excluded** (02b2e4c)
- **Drive the content arms from one script so the arms differ only in content** (3de98c6)
- **Measure what the embed loop retains when the backend refuses rows** (bae0b03)
- **Let the embed RSS harness vary corpus content and reject oversized rows** (b872ab0)
- **mason: hold a Tier-2 refresh while the same root's callgraph cold build runs** (bee8c10)
- **Describe train 150 for the search-quality gate** (35ddf5d)
- **mason: say which sweep was green, now that one is** (9e27488)
- **mason: record what a CI runner settled about the startup stalls** (ddbaf87)
- **mason: make the run assert what its dead transport actually does** (a17354f)
- **mason: give a dead transport a failure nobody can call provably unsent** (4dea0e4)
- **Say precisely what admitted the inspect refresh beside the cold build** (ac4afff)
- **Record what the jupyterlab bistability turned out to be** (6ac542e)
- **mason: attribute phases from the log's timestamps, not from arrival** (93a1abe)
- **mason: name the inspect plane in the phase label** (67dbb1a)
- **mason: print where each run's high-water mark was taken** (0d2fdab)
- **mason: make the gate report a bimodal metric instead of its lucky sample** (1ba5924)
- **mason: sample cold-build memory by phase, not by process** (5137c14)
- **Describe train 149 for the search-quality gate** (2f9d21a)
- **bench: say that a corpus change moves rankings when the query sets do not** (c3b7562)
- **search-quality: re-record the real-query reference after the corpus exclusion** (5c3030d)
- **Build the status-word test's index on a root that is absolute on every platform** (7db3be7)
- **Describe train 148 for the search-quality gate** (a86db54)
- **mason: say what a retained run root costs** (1475d5f)
- **mason: let a red OpenCode 2 matrix fail its job** (80b14cc)
- **mason: name a stalled start that got as far as a request, and hold the exclusion to a leg that served** (5fa4824)
- **mason: make the bash_watch row measure a watch that outlives its task** (313e2f6)
- **mason: bound what a harness run leaves on disk** (06e0811)
- **mason: give the OpenCode 2 job a budget the matrix fits inside** (624d40d)
- **mason: stop waiting on a V1 host whose exit the row has already excluded** (db45f6a)
- **mason: name a host that never reached the model as a startup stall** (303b0b5)
- **mason: leave out the parity leg the V1 host never offers apply_patch to** (03b6454)
- **mason: compare the bash_kill parity row on the tool's outcome, not the host's wrapper** (d8d7f1e)
- **Correct the Fisher exact p-value to 0.010** (52eca02)
- **Correct the jupyterlab finding: two states, not two ranges** (d315689)
- **Record the kernel's peak RSS beside the polled one** (2b9f571)
- **Show that the jupyterlab step is code, not noise or the machine** (4d7d31e)
- **Record what the cost gate measured, not only what it failed** (214c928)
- **mason: keep `ready` for a queryable index that holds nothing** (80b1d14)
- **mason: give a semantic backend outage a tone that says something is wrong** (cb31e33)
- **mason: keep one semantic-index status formatter for both plugin hosts** (10d7202)
- **mason: report a failed semantic index as failed on the status path** (d852d09)
- **mason: report a missing embedding runtime as a failure, not as progress** (0ba8138)
- **mason: stop offering a retry the semantic lane cannot honour** (56bf517)
- **mason: stop guessing the ONNX install route in the daemon hint** (1ccb272)
- **Describe train 147 for the search-quality gate** (32fd1f1)
- **mason: record the two parity mutations these rows were actually shown to catch** (83aa091)
- **mason: give each parity leg its own copy of the script** (8bd62cc)
- **mason: end the background task a killed host leaves behind** (e1eb6d0)
- **mason: judge a parity row on the scenario the V1 host served** (24d0951)
- **mason: make the parity rows compare something** (03bf1b0)
- **Record today's OpenCode 2 and tooling fixes in the 0.57.0 notes** (aa4a4a4)
- **Describe train 146 for the search-quality gate** (947a55b)
- **Re-record the search baseline without the answer key in the corpus** (9f31c0c)
- **Write down the import-time binding trap and the Windows rules** (12acb7f)
- **Record where a baseline capture came from** (65a1203)
- **Cover the harness defects with tests that run on every platform** (01fbf06)
- **Keep the benchmark's own answer key out of the indexed corpus** (0b14e8b)
- **Say plainly that the real-query reference pair is Unix-captured** (139476e)
- **Resolve the managed onnxruntime.dll on Windows** (8fa5b98)
- **Pin the benchmark JSON to LF so Windows checkouts match their digests** (0b1022b)
- **Strip Windows verbatim result paths and refuse an all-unmatched report** (22840e3)
- **Read NDJSON frames off a reader thread instead of select()** (18c45b9)
- **mason: name every searched location when no native binary is found** (9c45809)
- **mason: search the binary cache when no version is preferred** (8fae388)
- **mason: record the Linux, local-backend and full-scale embed RSS results** (99f415e)
- **mason: give the harness the local backend and a platform it can choose** (2bc82bd)
- **mason: run the embed RSS harness on Linux, where the reported builds actually run** (0921a4b)
- **mason: mark the embed-leak workaround as the reporter's claim, not our finding** (696778a)
- **Describe train 145 for the search-quality gate** (fce9bee)
- **Align release manifest and evidence** (88c99e4)
- **Align governed publication manifests** (17cc493)
- **mason: keep the session alive long enough to be woken** (305e2a6)
- **mason: judge a task stopped by its process group, not by a dead writer's field** (95019cd)
- **mason: let a trailer exist for a surface with nothing to narrow by** (e26ad6d)
- **mason: read the task state these three tools actually report** (a25445c)
- **Stop losing a tool's output when its metadata has an undefined value** (fb732b5)
- **mason: compare the read result including the newline it ends with** (f7f17c4)
- **mason: hold the watch row's turn open with a tool the host actually has** (94e4a5d)
- **mason: accept the exit an interrupted run really has, and pin it to the abort** (b08e2da)
- **mason: give the search truncation rows a lane that does not need the embedder** (8d0a97b)
- **mason: assert the outcome line the write tool actually returns** (af52487)
- **mason: record the semantic embed build against batch number, not wall clock** (f81fa7b)
- **mason: bound what the semantic embed loop may retain per chunk** (75244b5)
- **Offer a manual ONNX install only where AFT has nothing to download** (4e12dd8)
- **Withhold only the OpenCode config write when the generation is ambiguous** (49d2106)
- **Read the version a host prints, not the string it prints it in** (4098b58)
- **Move AFT's plugin entry instead of leaving it under both keys** (87b7035)
- **Cover the cost gate rules that fail silently when they stop working** (f4e2793)
- **Bless cost baselines on the runner, and record what the red nights contained** (38eb5a1)
- **Re-capture the cost baselines from the runner that measures them** (87d3dbe)
- **Record where a cost baseline was measured, and refuse to compare across platforms** (0db5b46)
- **Alert when a scheduled workflow on main has been failing for a streak** (fd956ac)
- **Align release manifest and evidence** (9f85b3c)
- **Align governed publication manifests** (6ec6c2d)
- **Describe train 144 for the search-quality gate** (af8f462)
- **mason: build the sidebar probe's theme from a recording of a real host** (635f328)
- **mason: fill the sidebar badge from the accent colour the host publishes** (f6c5b0a)
- **Keep AFT's plugin entry under exactly one key** (e5131fe)
- **mason: boot the GA host on the registration the CLI writes for V2** (2a13014)
- **mason: take the ONNX install hint from the downloader's platform table** (5f08e0b)
- **mason: register the plugin under the key each OpenCode host reads** (7199bec)
- **mason: prove the sidebar is readable and whole from what it renders** (1f56782)
- **mason: draw one sidebar panel in both hosts, with colours it asks for** (f70a86b)
- **Declare the bash host escape in the static subc contract** (ea3c492)
- **mason: use the refusal the rows actually recorded as the unit fixture** (1f3cdcb)
- **mason: assert the refusal the dead standalone transport actually produces** (b24a04d)
- **mason: require restore evidence from the rows that change the tree** (5a97114)
- **mason: say "execution path" where "path" could read as a filename** (05a6a84)
- **mason: read a restored file's middle state before the restore, not after** (16d2b9c)
- **mason: say which permission path a bash row took, from what each path leaves** (24d85e4)
- **mason: let the transport-dead window leave the plugin able to start** (68c99d7)
- **mason: record which bash a real GA host holds** (0257198)
- **Align release manifest and evidence** (8802cf0)
- **Align governed publication manifests** (e6a053f)
- **Describe train 143 for the search-quality gate** (172ac0b)
- **Give 0.57.0 its OpenCode 2 section** (9dfc2ce)
- **Stop the Bun RPC server from holding the process open** (3a8fb1f)
- **mason: record the V1 non-exit as the host's, with the git-project trigger** (9731d02)
- **mason: hand the V1 host a plugin function, not the V2 plugin object** (0abdafc)
- **mason: give the V1 host the provider block it accepts** (009fdb5)
- **mason: print the host's own logs and name the ending in the row** (fb67424)
- **Align release manifest and evidence** (d2a182a)
- **Align governed publication manifests** (f440016)
- **Assert that cancellation stops the git-probe ladder, not that it was quick** (84da845)
- **Align release manifest and evidence** (c1f4b42)
- **Align governed publication manifests** (7d24647)
- **Let the metadata-open retry actually sample different moments** (efd9a51)
- **Describe train 142 for the search-quality gate** (df4897e)
- **Align release manifest and evidence** (a9ac92b)
- **Align governed publication manifests** (7cb5553)
- **Listen for a permission reply before the request is announced, and bound the wait** (c3e2d2e)
- **Warn about a silent daemon log only when the log actually grew** (b089b0c)
- **Align release manifest and evidence** (e142ff6)
- **Align governed publication manifests** (d275d22)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/cortexkit/aft?utm_source=github-action)._