Handoff — 2026-09-01 — tickets 9 to 14
State
All six tickets are done and verified, on the branch feature/menu-theme-and-settings in all three repositories. Nothing is committed.
Four land in turbo-core:
| Ticket | What changed |
|---|---|
| 12 | reapplySettings in app/project.go, run from a new afterSave shared by both save paths. Saving settings.toml applies it at once. |
| 11, 13, 14 | projectFile + openProjectFile/hasProjectFile/not. Six menu items: create greyed once the file exists, open greyed until it does. New API: OpenTools, OpenSnippets, HasProjectTools, HasProjectSnippets. |
| 10 | syntax.comment raised past 4.5:1 WCAG in the six themes we author, plus TestEveryThemeWeAuthorKeepsItsCommentsReadable. |
Suite green (16 packages), quality gate PASS 0/0/0 at complexity 1724. Documentation complete in EN and FR, including a new docs/*/how-to/test-without-publishing.md.
In flight
Nothing half-done.
Next steps
- Review and commit on
feature/menu-theme-and-settings, merge tomain. - Release v0.3.0 —
OpenTools,OpenSnippets,HasProjectToolsandHasProjectSnippetsare new public API, so it is a minor bump:TAG=v0.3.0 ./01-release.tag.sh TAG=v0.3.0 ./02-release.publish.sh - In each editor:
go get codeberg.org/turbo-editors/turbo-core@v0.3.0 && go mod tidy && make check. Until then the editors keep requiring v0.2.0, which builds — the five library-side tickets simply are not visible in them yet. This is deliberate, and different from the last two releases: nothing is left unbuildable.
Open questions / blockers
- None.
Watch out for
reapplySettingsmatches on the path, not ona.settingsPath. A project that had no settings file has nothing remembered, so a remembered handle cannot see the file being created. There is a test named for that case.- It runs from
afterSave, which both save paths share. Anything added to one save path and not the other goes missing silently; that is what this function exists to prevent. Do not re-inline it. - The status message ordering is deliberate:
Saved …is emitted first so that re-reading the settings can replace it. A settings file that no longer parses must win the status bar over "saved". - The two contrast measures are not interchangeable.
channelDistancefor anything the eye must merely distinguish;contrastRatiofor anything read. The bug in ticket 10 sailed through the first at 128 against a floor of 64. - Do not widen the WCAG rule to every key. It was measured: 84 of 432 theme/key pairings across the shipped themes are under 4.5, most of them Catppuccin's published palette. A blanket floor would either fail honestly-correct themes or have to be lowered until it means nothing.
- The Catppuccin exemption is guarded.
TestTheThemesWeDoNotOwnAreStillNamedThemesWeShipfails if the list ever names a theme that is not shipped, so the exemption cannot quietly outlive its reason. Already thereand "this project has no …" are now unreachable from the menus but still reachable from the API, and still tested. Do not delete them as dead code.release.envandturbo-core.token.envhold live Codeberg tokens and are covered by*.env. Keep it that way.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|