turbo-editors/turbo-golopublic Fork 0
v1.0.2
Commits
Clone
git clone https://git.rickub.com/turbo-editors/turbo-golo.git
git clone ssh://git@rickub.com/turbo-editors/turbo-golo.git

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

📦 Turbo Golo d710c1b · on v1.0.2 · k33g · 11h ago
history.md · 83 lines · 14.1 KBmarkdown
Blame HistoryOpen raw

turbo-golo — history

One dated entry per session, appended at the end. Never rewritten.

2026-09-14 — Turbo Golo built, from an empty repository to a passing gate

(Written by the following session from what was left on disk: this session ended before writing its memory. The code, tests, docs and quality reports are its evidence; /tmp/tg/FACTS.md, its own notes, is the source of the facts below.)

  • Goal: ticket 4, "create turbo-golo" — /turbo-new-editor for Golo, in this directory, against turbo-core v0.5.0.
  • Changes: go.mod (turbo-core v0.5.0, no active replace), main.go, internal/gololang/ (profile, three-file scanner, three starter templates, six test files), Makefile, scripts/, the four release scripts, docs/{en,fr}/ (34 EN pages, 33 FR — the French tutorial was not yet written), docs/diagrams/packages.drawio, demos/ with three programs, .qlty/ and .quality/.
  • Decisions (recorded in summary.md — the main ones): no root marker; golo lsp as the server, the interpreter itself; strings carried to their closing quote wherever it is, following the lexer; Some/None/Ok/Err as types; the lexer's own identifier predicate, emoji included; the builtins table held to the real server; Run first in the tools file and no Format/Lint because GoloScript has neither; six placeholders in eight tools.
  • Tests: 250, all passing with golo v0.1.1 installed. Scanner invariants, one case per construct and per refusal, the template contract, the editor on a SimulationScreen, the drawio held to go list, the languages reference held to the scanner, and the real golo lsp driven end to end — completion on typed text, hover, definition, symbols, and a file that does not compile.
  • Quality: run #1 FAIL (2 smells), run #2 PASS — 0/0/0, complexity 54.
  • Verified in a pty: the tutorial run start to finish (/tmp/tg/tut.raw), every colour claim read back as SGR, the Tools menu appearing, Run asking for the script, the // diagnostic in the gutter and on the status bar.
  • Not recorded: whether a mutation pass was run over the tests. See summary.md, "Not yet established".

2026-09-14 (later) — finishing the cycle: French tutorial, README, memory, family

  • Asked: "continue le travail que tu avais en cours sur le turbo-golo editor". Reconstructed the state from disk: code green, gate PASS, one French page missing, no root README, no .memory/, family not updated.
  • Changes: docs/fr/tutorials/getting-started.md (written from the English one, whose claims were re-read off /tmp/tg/tut.raw first); README.md at the root; this .memory/ (README, summary, history, handoff).
  • Outside this repository: turbo-core (README.md, both doc READMEs, both test-without-publishing.md, profile/profile.go's comment, .memory/summary.md, plus a history entry and a handoff) now counts five editors; turbo-python and turbo-moonbit (docs/{en,fr}/explanation/architecture.md, plus a history entry and a handoff each) say "all five editors". turbo-core's .go strings swept for hardcoded language names — all innocent, no library change.
  • Tests: go build ./..., go vet ./..., go test ./... — 250 passing, 0 skipped; gofmt -l clean. go build ./profile in turbo-core after the comment change.
  • Quality: PASS, re-run at the end of the session with no code change.
  • Skill: turbo-new-editor (kit source and installed copy) gained this cycle's lessons — write the .memory/ skeleton at step 1 rather than at the end, count both doc trees before declaring the docs done, and the no-root-marker case.

2026-09-15 — ACP agent windows, ported from turbo-go

  • Goal: carry the Agent Client Protocol support to this editor. The feature itself is turbo-core's — the protocol client, the conversation model, the window widget, the Agent menu and the permission dialog all live there. See turbo-core's history for the same date.
  • Changes: internal/*/acp.toml.tmpl, embedded in templates.go and wired into profile.Templates.Agents. That is the entire code change — one file and one line. Plus six documentation pages (EN + FR: how-to, reference, explanation) and their index entries.
  • Decisions: the example agent is docker agent, as in every other editor, because the protocol is the point and the agent is the user's choice; the one sentence in the starter file that is about this editor names its own fence, and a test holds it to that — a starter file copied from another editor and left naming that editor's language is the obvious way to get this port wrong.
  • Tests: 5 new in internal/*: both blanks filled with no %! marker, the file loads back as exactly one agent, it explains its keys, it names this editor's own language, and creating it twice leaves the first alone.
  • Quality: PASS 0/0/0.
  • Docs: adapted rather than copied — the slug, the language, the fence, the build command and the language server all differ from turbo-go's, and each was replaced.
  • Not committed.

2026-09-15 (night) — slash commands and @ mentions, documented

  • Documentation and the starter file only in this repository; the code is turbo-core's (see its .memory/ of the same date). The user asked for the ACP changes that let an agent's commands be discovered the way Zed discovers them, then for @ as a file selector.
  • Changes: docs/{en,fr}/reference/acp.md — seven key rows for the list, a Commands and mentions section, the session/prompt and available_commands_update rows, the Limits bullet; docs/{en,fr}/how-to/talk-to-an-agent.md — "Use the agent's own commands" and "Point the agent at a file"; docs/{en,fr}/explanation/agent-windows.md — the "left out" bullet narrowed to images, two sections appended; the embedded acp.toml.tmpl — two key lines. Applied by one script across the five editors with an exactly-once anchor check.
  • Tests: go test ./... green (the template change is a comment; the tests that read the created file still pass).
  • Ahead of the binary: this repository pins turbo-core v0.7.0, which has none of this. The pages are true once turbo-core is tagged and the pin moved.
  • Not committed.

2026-09-16 — the trace variable and a troubleshooting bullet, documented

  • turbo-core gained TURBO_ACP_TRACE=<file> and an "update this editor could not read" line in Agent status, because the user saw no / commands from their own agent and nothing on screen could say why. Documented here EN + FR: a bullet in the how-to's Variants, a section in reference/acp.md. Docs only; not committed.
  • Later on 2026-09-16: demos/.turbo-golo/acp.toml (and agent.yaml, docker agent's config copied from turbo-go) now hold two agents — Bob (llama.cpp) via docker agent serve acp, and the user's mini-me (llama.cpp) (mm -acp, AGENT_CONFIG env) — placed where this repository's demo project already keeps its settings. Verified to load as two agents with this editor's own Profile(); not opened, mm and docker are on the user's Mac. Working files for trying the / picker, not part of the feature.

2026-09-16 — family count: a sixth editor, Turbo JS

  • Asked: nothing of this repository directly. Turbo JS was built beside it, and the sentences here that count the family went false the moment it existed.
  • Changes: docs/en/explanation/architecture.md, docs/fr/explanation/architecture.md, docs/fr/explanation/design-decisions.md — "five editors" → six, and the five scanners a rejected alternative would have moved into the library → six. Nothing else touched; history left as it was.
  • Tests: none affected — documentation only.

2026-09-17 — documentation: terminal windows and tools on Windows

  • Asked: nothing of this repository directly. turbo-core gained pseudo-console (ConPTY) terminal windows and a per-platform tools shell (cmd.exe on Windows); the pages here that said "Linux and macOS" or /bin/sh -c went false the moment that landed.
  • Changes (EN + FR): README.md (terminal windows: Linux, macOS and Windows), docs/*/reference/terminal.md (shell row, controlling-terminal row, platform table, error row), docs/*/explanation/terminal-windows.md (the Windows section rewritten: a pseudo-console and why it is a file of its own, built and vetted but not yet run), docs/*/how-to/use-a-terminal.md (%COMSPEC%, the five things to try first on Windows), docs/*/reference/golo-tools.md (shell row, cmd.exe's globs and ;, error row), docs/*/explanation/golo-tools.md (cmd.exe /S /C). Applied by one script across the six editors, one anchor per file.
  • Not changed: code, go.mod. The documentation is ahead of the binary until turbo-core is tagged (v0.9.0) and re-pinned here; the feature has never been run on Windows by anyone.
  • Tests: none affected — documentation only.

2026-09-18 — the "Untitled window has no LSP" fix: docs variant added, fix is turbo-core's

  • Asked: propagate to every editor the fix made in turbo-core the same day — saving now announces a document the server does not know (a window that started Untitled gets LSP from its first save), and Save As under a new name closes the old document. See turbo-core's .memory/history.md of 2026-09-18 for the defect and the fix.
  • Changes here: docs/{en,fr}/how-to/enable-completion.md gain one variant — completion in a window that started without a name works from its first save, no relaunch needed. No code in this repository is involved.
  • Quality: gate not re-run — a Markdown-only change; the gate measures the Go code.
  • Docs ahead of the binary: the behaviour arrives only when turbo-core is tagged and this editor re-pinned. Not committed.

2026-09-19 — moved to Rickub: turbo-core v1.0.0 re-pinned, releases published by a workflow

  • Asked: the same migration turbo-go received the same day, for all five remaining editors — turbo-core moved to rickub.com and was published as v1.0.0 with a Release workflow.
  • Changes, module: codeberg.org/turbo-editorsrickub.com/turbo-editors in go.mod, every .go file, Makefile, scripts/install.sh, README.md, docs/{en,fr}, .memory/summary.md (turbo-core deep links also from Codeberg's src/branch/main/ to blob/main/). require rickub.com/turbo-editors/turbo-core v1.0.0; go mod tidy with GOWORK=off rewrote go.sum from the proxy.
  • Changes, release tooling: .github/workflows/release.yml (new), 01-release.tag.sh (rewritten), 03-build-releases.sh02-build-releases.sh (tag from $1, validation, replace check, fresh release/${TAG}/, go install line in the README, no hand-off to 04), 02-release.publish.sh and 04-release.upload-binaries.sh deleted, release.env rewritten (TAG="v1.0.0", ABOUT="Turbo Golo"). All generated from turbo-go's final files with the names substituted; the README paragraph naming this editor's language server and the example file (main.golo) kept from the old 03. Docs: the release section and the wrong-commit variant of docs/{en,fr}/how-to/make-a-release.md rewritten.
  • Tests: release_test.go regenerated from turbo-go's — see summary.md. The file-writing helper is writeTestFile because turbo-python's main_test.go owns writeFile, and the command helper runOrFail because main.go owns run.
  • Not done: nothing committed or pushed — no commit exists yet and origin is unreachable from the sandbox. The workflow has not run on Rickub for this editor; turbo-go's identical one has, and published.

2026-09-19 (later) — GoloScript v0.2.0 answers references, implementations and project symbols: the pinning test did its job

  • Origin: the user ran ./01-release.tag.sh; its make check failed on TestGoloLSPAnswersNoneOfTheFourQuestionsItDoesNotAdvertisegolo lsp on their Mac now answers references, implementations and workspace symbols. Reproduced in the sandbox by installing GoloScript v0.2.0 (2026-09-14, golo-v0.2.0-linux-arm64 from Codeberg) into /usr/local/bin: the same three assertions fail, type definition still answers nothing. The test had skipped itself here until then, golo not being installed.
  • Measured against the server directly (initialize capabilities and a two-file project): it advertises definitionProvider, diagnosticProvider, documentSymbolProvider, hoverProvider, implementationProvider, referencesProvider, workspaceSymbolProvider — not typeDefinitionProvider, and textDocument/typeDefinition returns -32601 unsupported method. References: declaration + every call, within the file only (a call in another file of the project is not found). Implementation: the declaration itself. workspace/symbol: every .golo under the root, open or not, module names included; empty query lists all. Substring matching was not checked and is not claimed anywhere.
  • Changes, tests: the four-question test replaced by TestFindReferencesWithRealGoloLSP (3 locations: lines 3, 8, 12), TestFindImplementationsWithRealGoloLSP (the declaration), TestSymbolsAcrossTheProjectWithRealGoloLSP (helper, and elsewhere in a file written after start and never opened) and TestGoloLSPDoesNotAnswerTypeDefinitionWithRealGoloLSP; new constant secondCallLine = 12. Ten real-server tests, all green here against v0.2.0.
  • Changes, docs (EN + FR): how-to/enable-completion.md (table, the “without a key” sentence, the boundary paragraph), reference/keyboard.md, reference/menus.md (intro and three rows), how-to/ask-about-code.md (table, paragraph, the No … found row, the Ctrl-T bullet), how-to/navigate-code.md, explanation/colouring-and-completion.md, explanation/design-decisions.md, explanation/architecture.md (ten tests, two new bullets, the closing paragraph), how-to/run-the-tests.md; README.md feature bullet; .memory/summary.md two bullets. Each page now says the boundary is typeDefinition alone and that the test is how the other three were noticed.
  • Not done: not committed — 01-release.tag.sh is to be run again by the user. diagnosticProvider (pull diagnostics) is newly advertised too; turbo-core reads publishDiagnostics only, and the diagnostics tests still pass, so the server also pushes. Not investigated further.
 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# turbo-golo — history

One dated entry per session, appended at the end. Never rewritten.

## 2026-09-14 — Turbo Golo built, from an empty repository to a passing gate

*(Written by the following session from what was left on disk: this session ended before writing its memory. The code, tests, docs and quality reports are its evidence; `/tmp/tg/FACTS.md`, its own notes, is the source of the facts below.)*

- **Goal**: ticket 4, "create turbo-golo" — `/turbo-new-editor` for Golo, in this directory, against turbo-core v0.5.0.
- **Changes**: `go.mod` (turbo-core v0.5.0, no active `replace`), `main.go`, `internal/gololang/` (profile, three-file scanner, three starter templates, six test files), `Makefile`, `scripts/`, the four release scripts, `docs/{en,fr}/` (34 EN pages, 33 FR — the French tutorial was not yet written), `docs/diagrams/packages.drawio`, `demos/` with three programs, `.qlty/` and `.quality/`.
- **Decisions** (recorded in `summary.md` — the main ones): no root marker; `golo lsp` as the server, the interpreter itself; strings carried to their closing quote wherever it is, following the lexer; `Some`/`None`/`Ok`/`Err` as types; the lexer's own identifier predicate, emoji included; the builtins table held to the real server; Run first in the tools file and no Format/Lint because GoloScript has neither; six placeholders in eight tools.
- **Tests**: 250, all passing with `golo` v0.1.1 installed. Scanner invariants, one case per construct and per refusal, the template contract, the editor on a `SimulationScreen`, the drawio held to `go list`, the languages reference held to the scanner, and the real `golo lsp` driven end to end — completion on typed text, hover, definition, symbols, and a file that does not compile.
- **Quality**: run #1 FAIL (2 smells), run #2 PASS — 0/0/0, complexity 54.
- **Verified in a pty**: the tutorial run start to finish (`/tmp/tg/tut.raw`), every colour claim read back as SGR, the `Tools` menu appearing, `Run` asking for the script, the `//` diagnostic in the gutter and on the status bar.
- **Not recorded**: whether a mutation pass was run over the tests. See `summary.md`, "Not yet established".

## 2026-09-14 (later) — finishing the cycle: French tutorial, README, memory, family

- **Asked**: "continue le travail que tu avais en cours sur le turbo-golo editor". Reconstructed the state from disk: code green, gate PASS, one French page missing, no root README, no `.memory/`, family not updated.
- **Changes**: `docs/fr/tutorials/getting-started.md` (written from the English one, whose claims were re-read off `/tmp/tg/tut.raw` first); `README.md` at the root; this `.memory/` (README, summary, history, handoff).
- **Outside this repository**: turbo-core (`README.md`, both doc READMEs, both `test-without-publishing.md`, `profile/profile.go`'s comment, `.memory/summary.md`, plus a history entry and a handoff) now counts five editors; turbo-python and turbo-moonbit (`docs/{en,fr}/explanation/architecture.md`, plus a history entry and a handoff each) say "all five editors". turbo-core's `.go` strings swept for hardcoded language names — all innocent, no library change.
- **Tests**: `go build ./...`, `go vet ./...`, `go test ./...` — 250 passing, 0 skipped; `gofmt -l` clean. `go build ./profile` in turbo-core after the comment change.
- **Quality**: PASS, re-run at the end of the session with no code change.
- **Skill**: `turbo-new-editor` (kit source and installed copy) gained this cycle's lessons — write the `.memory/` skeleton at step 1 rather than at the end, count both doc trees before declaring the docs done, and the no-root-marker case.

## 2026-09-15 — ACP agent windows, ported from turbo-go

- **Goal**: carry the Agent Client Protocol support to this editor. The feature itself is turbo-core's — the protocol client, the conversation model, the window widget, the `Agent` menu and the permission dialog all live there. See turbo-core's history for the same date.
- **Changes**: `internal/*/acp.toml.tmpl`, embedded in `templates.go` and wired into `profile.Templates.Agents`. That is the entire code change — one file and one line. Plus six documentation pages (EN + FR: how-to, reference, explanation) and their index entries.
- **Decisions**: the example agent is `docker agent`, as in every other editor, because the protocol is the point and the agent is the user's choice; the one sentence in the starter file that is about **this** editor names its own fence, and a test holds it to that — a starter file copied from another editor and left naming that editor's language is the obvious way to get this port wrong.
- **Tests**: 5 new in `internal/*`: both blanks filled with no `%!` marker, the file loads back as exactly one agent, it explains its keys, it names this editor's own language, and creating it twice leaves the first alone.
- **Quality**: PASS 0/0/0.
- **Docs**: adapted rather than copied — the slug, the language, the fence, the build command and the language server all differ from turbo-go's, and each was replaced.
- Not committed.

## 2026-09-15 (night) — slash commands and `@` mentions, documented

- **Documentation and the starter file only in this repository**; the code is turbo-core's (see its `.memory/` of the same date). The user asked for the ACP changes that let an agent's commands be discovered the way Zed discovers them, then for `@` as a file selector.
- **Changes**: `docs/{en,fr}/reference/acp.md` — seven key rows for the list, a **Commands and mentions** section, the `session/prompt` and `available_commands_update` rows, the Limits bullet; `docs/{en,fr}/how-to/talk-to-an-agent.md` — "Use the agent's own commands" and "Point the agent at a file"; `docs/{en,fr}/explanation/agent-windows.md` — the "left out" bullet narrowed to images, two sections appended; the embedded `acp.toml.tmpl` — two key lines. Applied by one script across the five editors with an exactly-once anchor check.
- **Tests**: `go test ./...` green (the template change is a comment; the tests that read the created file still pass).
- **Ahead of the binary**: this repository pins turbo-core v0.7.0, which has none of this. The pages are true once turbo-core is tagged and the pin moved.
- Not committed.

## 2026-09-16 — the trace variable and a troubleshooting bullet, documented

- turbo-core gained `TURBO_ACP_TRACE=<file>` and an "update this editor could not read" line in Agent status, because the user saw no `/` commands from their own agent and nothing on screen could say why. Documented here EN + FR: a bullet in the how-to's Variants, a section in `reference/acp.md`. Docs only; not committed.
- **Later on 2026-09-16**: `demos/.turbo-golo/acp.toml` (and `agent.yaml`, docker agent's config copied from turbo-go) now hold two agents — **Bob (llama.cpp)** via `docker agent serve acp`, and the user's **mini-me (llama.cpp)** (`mm -acp`, `AGENT_CONFIG` env) — placed where this repository's demo project already keeps its settings. Verified to load as two agents with this editor's own `Profile()`; not opened, `mm` and `docker` are on the user's Mac. Working files for trying the `/` picker, not part of the feature.

## 2026-09-16 — family count: a sixth editor, Turbo JS

- **Asked**: nothing of this repository directly. Turbo JS was built beside it, and the sentences here that count the family went false the moment it existed.
- **Changes**: `docs/en/explanation/architecture.md`, `docs/fr/explanation/architecture.md`, `docs/fr/explanation/design-decisions.md` — "five editors" → six, and the five scanners a rejected alternative would have moved into the library → six. Nothing else touched; history left as it was.
- **Tests**: none affected — documentation only.

## 2026-09-17 — documentation: terminal windows and tools on Windows

- **Asked**: nothing of this repository directly. turbo-core gained pseudo-console (ConPTY) terminal windows and a per-platform tools shell (cmd.exe on Windows); the pages here that said "Linux and macOS" or `/bin/sh -c` went false the moment that landed.
- **Changes** (EN + FR): `README.md` (terminal windows: Linux, macOS and Windows), `docs/*/reference/terminal.md` (shell row, controlling-terminal row, platform table, error row), `docs/*/explanation/terminal-windows.md` (the Windows section rewritten: a pseudo-console and why it is a file of its own, built and vetted but not yet run), `docs/*/how-to/use-a-terminal.md` (`%COMSPEC%`, the five things to try first on Windows), `docs/*/reference/golo-tools.md` (shell row, cmd.exe's globs and `;`, error row), `docs/*/explanation/golo-tools.md` (`cmd.exe /S /C`). Applied by one script across the six editors, one anchor per file.
- **Not changed**: code, `go.mod`. **The documentation is ahead of the binary** until turbo-core is tagged (v0.9.0) and re-pinned here; the feature has never been run on Windows by anyone.
- **Tests**: none affected — documentation only.

## 2026-09-18 — the "Untitled window has no LSP" fix: docs variant added, fix is turbo-core's

- **Asked**: propagate to every editor the fix made in turbo-core the same day — saving now announces a document the server does not know (a window that started Untitled gets LSP from its first save), and Save As under a new name closes the old document. See turbo-core's `.memory/history.md` of 2026-09-18 for the defect and the fix.
- **Changes here**: `docs/{en,fr}/how-to/enable-completion.md` gain one variant — completion in a window that started without a name works from its first save, no relaunch needed. No code in this repository is involved.
- **Quality**: gate not re-run — a Markdown-only change; the gate measures the Go code.
- **Docs ahead of the binary**: the behaviour arrives only when turbo-core is tagged and this editor re-pinned. Not committed.

## 2026-09-19 — moved to Rickub: turbo-core v1.0.0 re-pinned, releases published by a workflow

- **Asked**: the same migration turbo-go received the same day, for all five remaining editors — turbo-core moved to `rickub.com` and was published as v1.0.0 with a Release workflow.
- **Changes, module**: `codeberg.org/turbo-editors``rickub.com/turbo-editors` in `go.mod`, every `.go` file, `Makefile`, `scripts/install.sh`, `README.md`, `docs/{en,fr}`, `.memory/summary.md` (turbo-core deep links also from Codeberg's `src/branch/main/` to `blob/main/`). `require rickub.com/turbo-editors/turbo-core v1.0.0`; `go mod tidy` with `GOWORK=off` rewrote `go.sum` from the proxy.
- **Changes, release tooling**: `.github/workflows/release.yml` (new), `01-release.tag.sh` (rewritten), `03-build-releases.sh``02-build-releases.sh` (tag from `$1`, validation, `replace` check, fresh `release/${TAG}/`, `go install` line in the README, no hand-off to 04), `02-release.publish.sh` and `04-release.upload-binaries.sh` deleted, `release.env` rewritten (`TAG="v1.0.0"`, `ABOUT="Turbo Golo"`). All generated from turbo-go's final files with the names substituted; the README paragraph naming this editor's language server and the example file (`main.golo`) kept from the old 03. Docs: the release section and the wrong-commit variant of `docs/{en,fr}/how-to/make-a-release.md` rewritten.
- **Tests**: `release_test.go` regenerated from turbo-go's — see `summary.md`. The file-writing helper is `writeTestFile` because turbo-python's `main_test.go` owns `writeFile`, and the command helper `runOrFail` because `main.go` owns `run`.
- **Not done**: nothing committed or pushed — no commit exists yet and `origin` is unreachable from the sandbox. The workflow has not run on Rickub for this editor; turbo-go's identical one has, and published.

## 2026-09-19 (later) — GoloScript v0.2.0 answers references, implementations and project symbols: the pinning test did its job

- **Origin**: the user ran `./01-release.tag.sh`; its `make check` failed on `TestGoloLSPAnswersNoneOfTheFourQuestionsItDoesNotAdvertise``golo lsp` on their Mac now answers references, implementations and workspace symbols. Reproduced in the sandbox by installing GoloScript v0.2.0 (2026-09-14, `golo-v0.2.0-linux-arm64` from Codeberg) into `/usr/local/bin`: the same three assertions fail, type definition still answers nothing. The test had skipped itself here until then, `golo` not being installed.
- **Measured** against the server directly (`initialize` capabilities and a two-file project): it advertises `definitionProvider`, `diagnosticProvider`, `documentSymbolProvider`, `hoverProvider`, `implementationProvider`, `referencesProvider`, `workspaceSymbolProvider` — not `typeDefinitionProvider`, and `textDocument/typeDefinition` returns `-32601 unsupported method`. References: declaration + every call, **within the file only** (a call in another file of the project is not found). Implementation: the declaration itself. `workspace/symbol`: every `.golo` under the root, open or not, module names included; empty query lists all. Substring matching was not checked and is not claimed anywhere.
- **Changes, tests**: the four-question test replaced by `TestFindReferencesWithRealGoloLSP` (3 locations: lines 3, 8, 12), `TestFindImplementationsWithRealGoloLSP` (the declaration), `TestSymbolsAcrossTheProjectWithRealGoloLSP` (`helper`, and `elsewhere` in a file written after start and never opened) and `TestGoloLSPDoesNotAnswerTypeDefinitionWithRealGoloLSP`; new constant `secondCallLine = 12`. Ten real-server tests, all green here against v0.2.0.
- **Changes, docs** (EN + FR): `how-to/enable-completion.md` (table, the “without a key” sentence, the boundary paragraph), `reference/keyboard.md`, `reference/menus.md` (intro and three rows), `how-to/ask-about-code.md` (table, paragraph, the `No … found` row, the `Ctrl-T` bullet), `how-to/navigate-code.md`, `explanation/colouring-and-completion.md`, `explanation/design-decisions.md`, `explanation/architecture.md` (ten tests, two new bullets, the closing paragraph), `how-to/run-the-tests.md`; `README.md` feature bullet; `.memory/summary.md` two bullets. Each page now says the boundary is `typeDefinition` alone and that the test is how the other three were noticed.
- **Not done**: not committed — `01-release.tag.sh` is to be run again by the user. `diagnosticProvider` (pull diagnostics) is newly advertised too; turbo-core reads `publishDiagnostics` only, and the diagnostics tests still pass, so the server also pushes. Not investigated further.