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-editorfor Golo, in this directory, against turbo-core v0.5.0. - Changes:
go.mod(turbo-core v0.5.0, no activereplace),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 lspas the server, the interpreter itself; strings carried to their closing quote wherever it is, following the lexer;Some/None/Ok/Erras 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
golov0.1.1 installed. Scanner invariants, one case per construct and per refusal, the template contract, the editor on aSimulationScreen, the drawio held togo list, the languages reference held to the scanner, and the realgolo lspdriven 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, theToolsmenu appearing,Runasking 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.rawfirst);README.mdat the root; this.memory/(README, summary, history, handoff). - Outside this repository: turbo-core (
README.md, both doc READMEs, bothtest-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.gostrings swept for hardcoded language names — all innocent, no library change. - Tests:
go build ./...,go vet ./...,go test ./...— 250 passing, 0 skipped;gofmt -lclean.go build ./profilein 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
Agentmenu and the permission dialog all live there. See turbo-core's history for the same date. - Changes:
internal/*/acp.toml.tmpl, embedded intemplates.goand wired intoprofile.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, thesession/promptandavailable_commands_updaterows, 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 embeddedacp.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 inreference/acp.md. Docs only; not committed. - Later on 2026-09-16:
demos/.turbo-golo/acp.toml(andagent.yaml, docker agent's config copied from turbo-go) now hold two agents — Bob (llama.cpp) viadocker agent serve acp, and the user's mini-me (llama.cpp) (mm -acp,AGENT_CONFIGenv) — placed where this repository's demo project already keeps its settings. Verified to load as two agents with this editor's ownProfile(); not opened,mmanddockerare 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 -cwent 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.mdof 2026-09-18 for the defect and the fix. - Changes here:
docs/{en,fr}/how-to/enable-completion.mdgain 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.comand was published as v1.0.0 with a Release workflow. - Changes, module:
codeberg.org/turbo-editors→rickub.com/turbo-editorsingo.mod, every.gofile,Makefile,scripts/install.sh,README.md,docs/{en,fr},.memory/summary.md(turbo-core deep links also from Codeberg'ssrc/branch/main/toblob/main/).require rickub.com/turbo-editors/turbo-core v1.0.0;go mod tidywithGOWORK=offrewrotego.sumfrom 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,replacecheck, freshrelease/${TAG}/,go installline in the README, no hand-off to 04),02-release.publish.shand04-release.upload-binaries.shdeleted,release.envrewritten (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 ofdocs/{en,fr}/how-to/make-a-release.mdrewritten. - Tests:
release_test.goregenerated from turbo-go's — seesummary.md. The file-writing helper iswriteTestFilebecause turbo-python'smain_test.goownswriteFile, and the command helperrunOrFailbecausemain.goownsrun. - Not done: nothing committed or pushed — no commit exists yet and
originis 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; itsmake checkfailed onTestGoloLSPAnswersNoneOfTheFourQuestionsItDoesNotAdvertise—golo lspon 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-arm64from Codeberg) into/usr/local/bin: the same three assertions fail, type definition still answers nothing. The test had skipped itself here until then,golonot being installed. - Measured against the server directly (
initializecapabilities and a two-file project): it advertisesdefinitionProvider,diagnosticProvider,documentSymbolProvider,hoverProvider,implementationProvider,referencesProvider,workspaceSymbolProvider— nottypeDefinitionProvider, andtextDocument/typeDefinitionreturns-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.golounder 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, andelsewherein a file written after start and never opened) andTestGoloLSPDoesNotAnswerTypeDefinitionWithRealGoloLSP; new constantsecondCallLine = 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, theNo … foundrow, theCtrl-Tbullet),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.mdfeature bullet;.memory/summary.mdtwo bullets. Each page now says the boundary istypeDefinitionalone and that the test is how the other three were noticed. - Not done: not committed —
01-release.tag.shis to be run again by the user.diagnosticProvider(pull diagnostics) is newly advertised too; turbo-core readspublishDiagnosticsonly, 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 |
|