turbo-editors/turbo-golopublic Fork 0
v1.0.0
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.

history.md · 83 lines · 14.1 KBmarkdown Blame HistoryRaw
📦 Turbo Golo d710c1b k33g 12h ago1# turbo-golo — history
2
3One dated entry per session, appended at the end. Never rewritten.
4
5## 2026-09-14 — Turbo Golo built, from an empty repository to a passing gate
6
7*(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.)*
8
9- **Goal**: ticket 4, "create turbo-golo" — `/turbo-new-editor` for Golo, in this directory, against turbo-core v0.5.0.
10- **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/`.
11- **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.
12- **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.
13- **Quality**: run #1 FAIL (2 smells), run #2 PASS — 0/0/0, complexity 54.
14- **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.
15- **Not recorded**: whether a mutation pass was run over the tests. See `summary.md`, "Not yet established".
16
17## 2026-09-14 (later) — finishing the cycle: French tutorial, README, memory, family
18
19- **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.
20- **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).
21- **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.
22- **Tests**: `go build ./...`, `go vet ./...`, `go test ./...` — 250 passing, 0 skipped; `gofmt -l` clean. `go build ./profile` in turbo-core after the comment change.
23- **Quality**: PASS, re-run at the end of the session with no code change.
24- **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.
25
26## 2026-09-15 — ACP agent windows, ported from turbo-go
27
28- **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.
29- **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.
30- **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.
31- **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.
32- **Quality**: PASS 0/0/0.
33- **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.
34- Not committed.
35
36## 2026-09-15 (night) — slash commands and `@` mentions, documented
37
38- **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.
39- **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.
40- **Tests**: `go test ./...` green (the template change is a comment; the tests that read the created file still pass).
41- **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.
42- Not committed.
43
44## 2026-09-16 — the trace variable and a troubleshooting bullet, documented
45
46- 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.
47- **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.
48
49## 2026-09-16 — family count: a sixth editor, Turbo JS
50
51- **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.
52- **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.
53- **Tests**: none affected — documentation only.
54
55## 2026-09-17 — documentation: terminal windows and tools on Windows
56
57- **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.
58- **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.
59- **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.
60- **Tests**: none affected — documentation only.
61
62## 2026-09-18 — the "Untitled window has no LSP" fix: docs variant added, fix is turbo-core's
63
64- **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.
65- **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.
66- **Quality**: gate not re-run — a Markdown-only change; the gate measures the Go code.
67- **Docs ahead of the binary**: the behaviour arrives only when turbo-core is tagged and this editor re-pinned. Not committed.
68
69## 2026-09-19 — moved to Rickub: turbo-core v1.0.0 re-pinned, releases published by a workflow
70
71- **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.
72- **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.
73- **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.
74- **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`.
75- **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.
76
77## 2026-09-19 (later) — GoloScript v0.2.0 answers references, implementations and project symbols: the pinning test did its job
78
79- **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.
80- **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.
81- **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.
82- **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.
83- **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.