v0.9.36
Fixed 4
- four commands that failed silently while exiting 0 now surface the problem: cluster-only warns when --backend/--model/--batch-size are ignored because saved labels are being reused; the community-label prompt no longer collides with the discard sentinel; tree --root exits non-zero when the root matches no source file instead of silently flattening the tree; and cluster-only stamps built_at_commit from the analysed graph rather than the shell's working directory
- a Swift extension Foo in a different file from Foo no longer drops static and singleton call edges into the type; the extension node id is now remapped consistently so the extension merges onto its base type before call resolution
- node-id collision resolution is now deterministic and prefers active over archived paths, ranked by a lifecycle penalty computed on the root-relative path and a reversed-segment tie-break
- the Windows skill now runs on PowerShell with steps emitted as PowerShell here-string interpreter invocations and Remove-Item cleanup instead of bash-only commands
Correctness release: surfaces four silent CLI failures, fixes Swift cross-file extension call loss, makes node-id collision resolution deterministic, and makes the Windows skill runnable on PowerShell.
- Fix: four commands that failed silently while exiting 0 now surface the problem (#2534, thanks @elecnix).
cluster-onlywarns when--backend/--model/--batch-sizeare ignored because saved labels are being reused; the community-label prompt no longer collides with the discard sentinel (a model echoing the key back is no longer silently dropped);tree --rootexits non-zero when the root matches no source file instead of silently flattening the tree; andcluster-onlystampsbuilt_at_commitfrom the analysed graph rather than the shell's working directory. Also folds in thecluster-onlyrefused-write guard from #2522 (thanks @aniJani). - Fix: a Swift
extension Fooin a different file fromFoono longer drops static and singleton call edges into the type (#2538, thanks @pawelo446). The extension node id is now remapped consistently so the extension merges onto its base type before call resolution, and the merge is gated so it never absorbs a same-named type from another language. - Fix: node-id collision resolution is now deterministic and prefers active over archived paths (#2532, thanks @michaelxer for the active/archived idea in #2540). Two files that mint the same id (for example
plans/_done/x.mdvsplans/in-progress/x.md) are ranked by a lifecycle penalty computed on the root-relative path and a reversed-segment tie-break, so the winner no longer depends on ASCII filename order, absolute-vs-relative path form, or the checkout directory name. - Fix: the Windows skill now runs on PowerShell (#2528, thanks @tannermosher2015-debug). The Windows skill variant's steps were bash-only (
$(cat ...),rm -f,find -delete); they are now emitted as PowerShell (here-string interpreter invocations andRemove-Itemcleanup), with POSIX skills unchanged and step parity enforced by a generator check.