# Handoff — 2026-09-19 — canonical paths (v1.0.1) ## State - Fix in place and green: `lsp.CanonicalPath` used by `PathToURI` and `app.pathKey`. Three new tests, one falsified against the old code. `make check` green. - `release.env` says `TAG="v1.0.1"`. **Not committed, not tagged.** ## Next steps 1. `./01-release.tag.sh` here (turbo-core) — from a machine that reaches Rickub. 2. In each editor: `go get rickub.com/turbo-editors/turbo-core@v1.0.1 && go mod tidy && GOWORK=off make check`, then its `./01-release.tag.sh`. turbo-moonbit needs it to pass `make check` on macOS; the others gain the same fix for files under symbolic links. 3. turbo-go v1.0.0 is already published against v1.0.0; re-pin it too and it picks the fix up at its next release. ## Traps - The reproduction is Linux + `TMPDIR` under a symlink (`ln -s $(mktemp -d) /tmp/symroot/tmp; TMPDIR=/tmp/symroot/tmp go test …`). Nobody has run the fixed code on macOS yet. - Do not "fix" this in an editor's test by resolving `t.TempDir()`: the defect is the library's and hits any user whose files sit under a link. ## Second pass The Mac found three more tests comparing paths as spelt; fixed (`windowFor` canonical, two `lsp` tests expect the canonical spelling, one new test). The whole suite is green here with `TMPDIR=/tmp/symroot/tmp TURBO_CORE_RELEASING=1 go test ./...` — run that before every release from now on, it is the closest Linux gets to a Mac's `/var/folders`. ## Third pass — v1.0.2: `FileCreated` turbo-moonbit's pinning test went red on the Mac for the opposite reason — moon-lsp there notices a new file by itself. The limit was ours (no `workspace/didChangeWatchedFiles`); fixed, four tests, docs. Release v1.0.2 with `./01-release.tag.sh`, then re-pin every editor: `go get rickub.com/turbo-editors/turbo-core@v1.0.2 && go mod tidy && GOWORK=off make check`. turbo-moonbit's suite fails until then.