| 📦 Turbo Python 6fc62ea k33g 21h ago | 1 | # Handoff — 2026-09-03 — Turbo Python, first build |
| 2 | |
| 3 | ## Where this stopped |
| 4 | |
| 5 | The editor is **complete and verified**. Suite green, quality gate PASS, documentation |
| 6 | complete in both languages, `.memory/` written, the family updated in turbo-core and in the |
| 7 | other two editors. Nothing is in flight. |
| 8 | |
| 9 | ## What the next session must know |
| 10 | |
| 11 | **Nothing is committed.** The whole tree is untracked on `main` at `efb533c` |
| 12 | (`Initial commit`). The user commits, tags and releases; do not do it for them. A proposed |
| 13 | first commit message is at the bottom of this file. |
| 14 | |
| 15 | **Four repositories were touched, not one.** If the user commits only `turbo-python`, the |
| 16 | family updates in `turbo-core`, `turbo-go` and `turbo-rust` stay uncommitted beside it: |
| 17 | |
| 18 | | Repository | Changed | |
| 19 | | --- | --- | |
| 20 | | `turbo-core` | `README.md`, `docs/{en,fr}/README.md`, `profile/profile.go` (a comment), `docs/{en,fr}/how-to/{release-the-library,test-without-publishing,write-the-starter-files}.md`, `docs/{en,fr}/explanation/architecture.md`, `.memory/summary.md` | |
| 21 | | `turbo-go` | `docs/{en,fr}/explanation/architecture.md`, plus three claims a pty run showed were stale: the tutorial's menu bar listing, its "→ four times" count, and `reference/menus.md`'s opening sentence | |
| 22 | | `turbo-rust` | the same three, plus the English `reference/menus.md` saying project menus appear "between **Go** and Help" in an editor whose menu is called Rust | |
| 23 | |
| 24 | Each of those three repositories has its own `.memory/` history entry and handoff for what |
| 25 | was done to it. |
| 26 | |
| 27 | None of those is an API change, so **no turbo-core release is needed**. turbo-python pins |
| 28 | `v0.4.0`, which is published, and needed no library change at all. |
| 29 | |
| 30 | ## Traps met here, so they are not met again |
| 31 | |
| 32 | - **A copied binary is the wrong architecture.** This sandbox is Linux, the user is on |
| 33 | macOS, and both see the same files. Everything built here went to `/tmp`, and nothing was |
| 34 | left in `bin/`. `make build` recreates it. |
| 35 | - **Adapting is not substituting.** The documentation came from Turbo Rust's and a |
| 36 | mechanical pass left a dozen defects no test could see — a diagram labelled |
| 37 | `internal/rustlang`, a tutorial that had the reader type Rust, `crate` in five pages, |
| 38 | `golangci-lint` in the *French* explanation whose English twin was correct, and the |
| 39 | English menus reference saying "between Go and Help". Grep for the editor you copied from |
| 40 | **and read every hit**; then grep for the *language*, in prose, which is where the ones |
| 41 | that survive hide. |
| 42 | - **The diagram is a file nothing imports**, so nothing noticed it was Turbo Rust's. |
| 43 | `diagram_test.go` now holds it to `go list`. Adopt that test in the other editors if you |
| 44 | ever touch their diagrams. |
| 45 | - **A tutorial's key counts go stale when the library grows a menu.** "Press → four times to |
| 46 | reach Options" was written before the Code menu existed. Re-count them in a pty rather |
| 47 | than trusting them. |
| 48 | - **Two `uv` commands in the copied docs did not exist.** Run the toolchain commands you |
| 49 | document; `uv update` has never been a thing. |
| 50 | |
| 51 | ## If you pick this up next |
| 52 | |
| 53 | Nothing is required. Things that would be worth doing, in rough order: |
| 54 | |
| 55 | 1. **Let the user commit and tag `v0.1.0`**, then `03-build-releases.sh` and |
| 56 | `04-release.upload-binaries.sh`. None of the four scripts has been run for real from here. |
| 57 | 2. **Try pyright or ruff-lsp** against the same profile — the profile takes a command and |
| 58 | arguments, so it is a two-line experiment, and it would tell us whether the "seven of |
| 59 | nine questions" note is about pylsp or about Python. |
| 60 | 3. **Time the scanner on a large file.** It has never been measured. |
| 61 | 4. **A `Problems…` entry for the tutorial** was considered and left out; the tutorial |
| 62 | mentions the gutter mark instead. |
| 63 | |
| 64 | ## Proposed first commit message |
| 65 | |
| 66 | ``` |
| 67 | Turbo Python: a Turbo C-style editor for Python on turbo-core |
| 68 | |
| 69 | The command, the profile and a hand-written Python scanner — everything |
| 70 | else is turbo-core v0.4.0, required from the module proxy with no replace. |
| 71 | |
| 72 | Scanner: all six string prefixes, both triple quotes carried across line |
| 73 | breaks, line continuations, decorators, soft keywords, and PEP 8's two |
| 74 | name shapes told apart — SCREAMING_SNAKE_CASE is a constant, CapWords a |
| 75 | type, even when called. |
| 76 | |
| 77 | Language server: pylsp, looked for in the active virtualenv, ~/.local/bin, |
| 78 | pyenv's shims and macOS' per-version script directories as well as PATH. |
| 79 | |
| 80 | 129 tests, five of them against a real pylsp. Quality gate PASS. |
| 81 | Documentation in English and French, 33 pages each. |
| 82 | ``` |