turbo-editors/turbo-gopublic Fork 0
v1.0.2
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.2 · k33g · 7h ago
2026-09-15-acp.md · 36 lines · 3.3 KBmarkdown
Blame HistoryOpen raw

Handoff — 2026-09-15 — ACP agent windows

State

Done and working. Branch feature/acp, created locally, not committed and not pushed. The companion branch of the same name in turbo-core holds the actual feature; read that repository's handoff of the same date first — it has the traps.

make test is green here for the first time since 2026-09-03: four assertions in internal/golang/templates_test.go had been describing a starter tools file that changed under them, and fixing them was step zero of this cycle.

The feature was driven against the user's own stack (docker agent v1.139.0 → llama.cpp → JetBrains Mellum2) by running ./bin/turbo-go in a pty. Seen working: Alt-A, the menu built from .turbo-go/acp.toml, the window, a streamed reply, a shell tool call with its permission dialog, and Go code in a fence coloured by this editor's own scanner.

In flight

Nothing.

Next steps

  1. Read the diff here — it is small: one template, one profile field, six doc pages.
  2. turbo-core has to be released first. This repository cannot build against an unreleased library from a clean clone. Order: tag and release turbo-core → go get codeberg.org/turbo-editors/turbo-core@vX.Y.Z here → GOWORK=off make check → tag and release this.
  3. Try it by hand. Nothing below has been touched by a person.

Watch out for

  • go.work is what makes the two repositories build together, and it is gitignored, so nothing can be forgotten before committing. GOWORK=off is the only way to see what a clean clone sees — run it before calling anything finished. Do not run go mod tidy here while the workspace is active: it can write unpublished versions into go.mod.
  • The sandbox's filesystem corrupts cp for some recently-written inodes — the file is right through cat, git, gofmt and go build, and comes out of cp as pure NUL bytes at the correct length. It bit turbo-core's release_test.go, which copies the module with cp -r. Recreating the file at a fresh inode fixes it. Git stores the correct bytes; verified.
  • The template takes two blanks, not one%[1]s the project directory and %[2]s the user-level path — and fmt.Sprintf writes %!s(MISSING) into the output rather than failing. TestTheCreatedAgentsFileFillsBothOfItsBlanks is what catches a miscount.
  • .turbo-go/acp.toml and .turbo-go/agent.yaml were written into this repository while testing. They are working files, not part of the feature — decide whether to keep them or delete them before committing.
  • A doc page written before the code is a design document. Three claims in these pages were wrong by the time the code existed. They were corrected against the running binary, but the lesson is the ordering: re-read every such page line by line against the code before treating it as documentation.

Never touched by a human

The mouse in an agent window; Tab between the panes on a real keyboard; resizing during a turn; two agents tiled side by side; a conversation long enough for the per-frame re-wrap to matter.

Open questions

  • Keep .turbo-go/acp.toml and .turbo-go/agent.yaml in the repository as a worked example, or delete them?
  • The other six editors each need one acp.toml.tmpl and one profile.Templates.Agents line. Do them all at once, or as each is next touched?
 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
# Handoff — 2026-09-15 — ACP agent windows

## State

**Done and working.** Branch `feature/acp`, created locally, **not committed and not pushed**. The companion branch of the same name in **turbo-core** holds the actual feature; read that repository's handoff of the same date first — it has the traps.

`make test` is green here **for the first time since 2026-09-03**: four assertions in `internal/golang/templates_test.go` had been describing a starter tools file that changed under them, and fixing them was step zero of this cycle.

The feature was driven against the user's own stack (`docker agent` v1.139.0 → llama.cpp → JetBrains Mellum2) by running `./bin/turbo-go` in a pty. Seen working: `Alt-A`, the menu built from `.turbo-go/acp.toml`, the window, a streamed reply, a shell tool call with its permission dialog, and Go code in a fence coloured by this editor's own scanner.

## In flight

Nothing.

## Next steps

1. Read the diff here — it is small: one template, one profile field, six doc pages.
2. **turbo-core has to be released first.** This repository cannot build against an unreleased library from a clean clone. Order: tag and release turbo-core → `go get codeberg.org/turbo-editors/turbo-core@vX.Y.Z` here → **`GOWORK=off make check`** → tag and release this.
3. Try it by hand. Nothing below has been touched by a person.

## Watch out for

- **`go.work` is what makes the two repositories build together**, and it is gitignored, so nothing can be forgotten before committing. `GOWORK=off` is the only way to see what a clean clone sees — run it before calling anything finished. Do **not** run `go mod tidy` here while the workspace is active: it can write unpublished versions into `go.mod`.
- **The sandbox's filesystem corrupts `cp` for some recently-written inodes** — the file is right through `cat`, `git`, `gofmt` and `go build`, and comes out of `cp` as pure NUL bytes at the correct length. It bit `turbo-core`'s `release_test.go`, which copies the module with `cp -r`. Recreating the file at a fresh inode fixes it. Git stores the correct bytes; verified.
- **The template takes two blanks, not one** — `%[1]s` the project directory and `%[2]s` the user-level path — and `fmt.Sprintf` writes `%!s(MISSING)` into the output rather than failing. `TestTheCreatedAgentsFileFillsBothOfItsBlanks` is what catches a miscount.
- **`.turbo-go/acp.toml` and `.turbo-go/agent.yaml` were written into this repository while testing.** They are working files, not part of the feature — decide whether to keep them or delete them before committing.
- **A doc page written before the code is a design document.** Three claims in these pages were wrong by the time the code existed. They were corrected against the running binary, but the lesson is the ordering: re-read every such page line by line against the code before treating it as documentation.

## Never touched by a human

The mouse in an agent window; `Tab` between the panes on a real keyboard; resizing during a turn; two agents tiled side by side; a conversation long enough for the per-frame re-wrap to matter.

## Open questions

- Keep `.turbo-go/acp.toml` and `.turbo-go/agent.yaml` in the repository as a worked example, or delete them?
- The other six editors each need one `acp.toml.tmpl` and one `profile.Templates.Agents` line. Do them all at once, or as each is next touched?