turbo-editors/turbo-gopublic Fork 0
v1.0.0
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-go.git
git clone ssh://git@rickub.com/turbo-editors/turbo-go.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

📦 Turbo Go 3d7798b · on v1.0.0 · k33g · 9h ago
2026-09-03-stale-menu-claims.md · 62 lines · 2.9 KBmarkdown
Blame HistoryOpen raw

Handoff — 2026-09-03 — stale menu claims, found while building a third editor

Where this stopped

Done, nothing in flight. Documentation only; no code changed and no dependency moved.

What changed

  • docs/{en,fr}/explanation/architecture.md — "both editors" → "every editor", now that
    turbo-python exists.
  • docs/{en,fr}/tutorials/getting-started.md — the menu bar listing, which said
    File Edit Search Run Options Window Help and was missing Code, Snippets
    and this editor's own Go menu; and "press four times to reach Options", which has
    been five since the Code menu shipped.
  • docs/{en,fr}/reference/menus.md — the opening sentence, which omitted Code.

How they were found, and how they were checked

Not by a test — there is none that could. The binary was built to /tmp and driven in a
pty, and the bar read back off the wire:

 File  Edit  Search  Run  Code  Options  Window  Snippets  Go  Help

Then F10 followed by five was confirmed to land on Options with Theme…
highlighted.

Trap for the next session

A tutorial is prose about a screen, and a library that grows a menu makes it wrong
silently.
This one had been wrong since the Code menu shipped, and the bar listing had
been wrong since long before that — it predates Snippets and the toolchain menu. Re-read
those counts off a real terminal after any change to the menu bar, in both languages.

Already red when I arrived — not caused here, not fixed here

go test ./... fails at HEAD on a clean tree, verified by stashing this session's
changes and running it again. Four tests in internal/golang/templates_test.go:

  • TestTheCreatedToolsFileHoldsTheFiveGoCommands — the file now holds eight: the five,
    plus Echo, Grep and Init module, which the starter file gained deliberately to teach
    the menu key and the {{placeholder}} syntax.
  • TestRunIsTheOneToolInATerminalGrep goes to editor and Echo to terminal, both
    on purpose.
  • TestTheCreatedToolsFileStillLoadsWithItsPlaceholderExamples — asserts none of the
    starter commands takes a value, which the two new examples deliberately do.
  • TestTheCreatedSnippetsFilesTabsSurviveTOML — looks for an if err != nil snippet the
    file no longer has.

The template moved and the tests did not. The templates look right — turbo-python's
equivalent test counts its own Echo tool, and the turbo-new-editor skill prescribes
showing a placeholder and the menu key in the starter file — so the fix is in the
assertions, not in the template. Left alone because deciding what those assertions should
now say is the tools-template cycle's business, not a documentation session's.

go vet ./... also reports demo/main.go:11:1: expected selector or type assertion, in the
demo project rather than the editor.

State

Not committed.

 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Handoff — 2026-09-03 — stale menu claims, found while building a third editor

## Where this stopped

Done, nothing in flight. **Documentation only; no code changed and no dependency moved.**

## What changed

- `docs/{en,fr}/explanation/architecture.md` — "both editors" → "every editor", now that
  turbo-python exists.
- `docs/{en,fr}/tutorials/getting-started.md` — the menu bar listing, which said
  `File  Edit  Search  Run  Options  Window  Help` and was missing **Code**, **Snippets**
  and **this editor's own Go menu**; and "press `→` four times to reach Options", which has
  been five since the Code menu shipped.
- `docs/{en,fr}/reference/menus.md` — the opening sentence, which omitted Code.

## How they were found, and how they were checked

Not by a test — there is none that could. The binary was built to `/tmp` and driven in a
pty, and the bar read back off the wire:

```
 File  Edit  Search  Run  Code  Options  Window  Snippets  Go  Help
```

Then `F10` followed by five `→` was confirmed to land on `Options` with `Theme…`
highlighted.

## Trap for the next session

**A tutorial is prose about a screen, and a library that grows a menu makes it wrong
silently.** This one had been wrong since the Code menu shipped, and the bar listing had
been wrong since long before that — it predates Snippets and the toolchain menu. Re-read
those counts off a real terminal after any change to the menu bar, in both languages.

## Already red when I arrived — not caused here, not fixed here

`go test ./...` **fails at `HEAD` on a clean tree**, verified by stashing this session's
changes and running it again. Four tests in `internal/golang/templates_test.go`:

- `TestTheCreatedToolsFileHoldsTheFiveGoCommands` — the file now holds **eight**: the five,
  plus `Echo`, `Grep` and `Init module`, which the starter file gained deliberately to teach
  the `menu` key and the `{{placeholder}}` syntax.
- `TestRunIsTheOneToolInATerminal``Grep` goes to `editor` and `Echo` to `terminal`, both
  on purpose.
- `TestTheCreatedToolsFileStillLoadsWithItsPlaceholderExamples` — asserts none of the
  starter commands takes a value, which the two new examples deliberately do.
- `TestTheCreatedSnippetsFilesTabsSurviveTOML` — looks for an `if err != nil` snippet the
  file no longer has.

**The template moved and the tests did not.** The templates look right — turbo-python's
equivalent test counts its own `Echo` tool, and the `turbo-new-editor` skill prescribes
showing a placeholder and the `menu` key in the starter file — so the fix is in the
assertions, not in the template. Left alone because deciding what those assertions should
now say is the tools-template cycle's business, not a documentation session's.

`go vet ./...` also reports `demo/main.go:11:1: expected selector or type assertion`, in the
demo project rather than the editor.

## State

**Not committed.**