# Reported issues for Leteo

Pod holds 10 of 10 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [Leteo](/mcp/leteo).

## Most discussed

### The container image is amd64 only, so Apple Silicon runs it emulated

`ghcr.io/asanabrial/leteo` ships one architecture. The release workflow's build step passes no `platforms:`, so it builds whatever the runner is — `linux/amd64` — and the package page shows exactly that.

Anyone on an Apple Silicon Mac who runs `docker pull ghcr.io/asanabrial/leteo` gets the amd64 image under emulation. It works, and it is slower for no reason a user can see.

### What it takes

In [`.github/workflows/release.yml`](../blob/main/.github/workflows/release.yml), the `docker/build-p

[Read the thread](https://github.com/asanabrial/leteo/issues/14) · 2026-08-11 · closed · 40 comments

### ci/cloud-and-container-jobs-not-required: The two jobs guarding the worst regressions cannot block a merge

## Description for dumb humans

> [!NOTE]
> Las pruebas que cubren lo más delicado de Leteo — aislamiento entre inquilinos, permisos,
> revocación de credenciales — pueden fallar sin impedir que un cambio se fusione. Solo las
> pruebas unitarias bloquean.

## Problem

`main` requires four status checks, all of them `unit-tests` matrix legs:

```
Unit Tests (ubuntu-latest)
Unit Tests (ubuntu-22.04-arm)
Unit Tests (macos-latest)
Unit Tests (windows-latest)
```

`Cloud Tests` and `Container Images`

[Read the thread](https://github.com/asanabrial/leteo/issues/48) · 2026-08-24 · closed · 18 comments

### mcp/tools-list-omits-cache-fields-on-2026-07-28: The server accepts a protocol revision it does not finish, and ZCode gets no tools at all

## Description for dumb humans

> [!NOTE]
> Leteo le dice a ZCode que habla una versión nueva del protocolo y luego no cumple una parte de
> ella, así que ZCode rechaza la lista de herramientas y el usuario se queda sin memoria: ninguna
> herramienta aparece, sin que nada explique por qué.

## Problem

Leteo's MCP server accepts protocol revision `2026-07-28` and then answers `tools/list` without two
fields that revision requires. A client that speaks it gets zero tools.

Measured against the in

[Read the thread](https://github.com/asanabrial/leteo/issues/76) · 2026-08-27 · closed · 14 comments

### docs/token-article-attributes-its-largest-cost-away: docs/token-article-attributes-its-largest-cost-away: Two sentences that sell better than the data allows

## Description for dumb humans

> [!NOTE]
> El artículo que acabamos de publicar tiene dos frases que se venden mejor de lo que el dato aguanta:
> una saca del debe de Leteo el 78 % de lo que cuesta, y la otra da un resultado sin decir que se apoya
> en una ejecución que el propio artículo aparta. Ninguna cifra está mal; las dos frases sí.

## Problem

Two findings from the round-3 blind panel on #65, each confirmed independently by both judges, recorded against receipt `2a6dec26c01ae69a36b283b7

[Read the thread](https://github.com/asanabrial/leteo/issues/67) · 2026-08-25 · closed · 7 comments

### doctor/no-check-compares-a-memory-against-the-code: doctor/no-check-compares-a-memory-against-the-code: The review window is a calendar, and age was never what made a memory wrong

## Description for dumb humans

> [!NOTE]
> Una memoria puede envejecer sin que nada se entere: el fichero que cita se mueve, el módulo se parte
> en dos, y la nota sigue apuntando donde ya no hay nada. Hoy nadie lo comprueba, y `leteo doctor`
> pasará a decirlo — con cuidado de no dar por muerto lo que solo está escrito de otra forma.

## Problem

A memory's review window is a calendar. It fires on age, and age was never what made a memory wrong — the world moving underneath it was. Nothing in 

[Read the thread](https://github.com/asanabrial/leteo/issues/69) · 2026-08-25 · closed · 1 comment

### Setup knows six agents and Command Code is a seventh

`src/setup/` knows six agents — `claude-code`, `codex`, `cursor`, `gemini-cli`, `opencode`,
`windsurf` — and `plugin/` ships a plugin for three of them. Command Code is a seventh CLI coding
agent (`npm i -g command-code`, https://commandcode.ai), now installed and in use on the author's
machine, and Leteo knows nothing about it.

So a session there starts with no memory: no MCP registration, no agent file, no plugin. The tool
whose whole point is that context survives the session is the one thin

[Read the thread](https://github.com/asanabrial/leteo/issues/43) · 2026-08-22 · open · 1 comment

### The repository root is 34 entries, and the README starts below all of them

GitHub lists every root entry before it renders the README, so the number of entries is the amount of scrolling between arriving and reading the first sentence. There are **34**.

## What is actually movable

Measured by grepping for every reference, not by looking at the names.

| | why it stays |
| --- | --- |
| `install.sh`, `install.ps1` | `raw.githubusercontent.com/.../main/install.sh` appears in the README, the npm README, both plugin READMEs, the README crates.io renders, and anywhere any

[Read the thread](https://github.com/asanabrial/leteo/issues/34) · 2026-08-12 · closed · 0 comments

### leteo setup, run from the npm wrapper, writes a path that will disappear

## What happens

`setup` resolves the command it writes with `env::current_exe()` (`src/setup/mod.rs:765`). Run through the npm wrapper, that is the binary inside the package's own cache. Measured in a container:

```json
"command": "/home/u/npm/vendor/v0.1.1-x86_64-unknown-linux-gnu-leteo"
```

For an `npx` user the equivalent path lives under `~/.npm/_npx/<hash>/node_modules/@asanabrial/leteo/vendor/`, and it goes away on `npm cache clean`, when npx evicts the entry, or when the version change

[Read the thread](https://github.com/asanabrial/leteo/issues/27) · 2026-08-12 · closed · 0 comments

## Most recent

### The released Linux binary needs GLIBC 2.38, so it does not start on Debian 12 or Ubuntu 22.04

## What happens

The `x86_64-unknown-linux-gnu` release archive extracts fine and then refuses to run:

```
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by leteo)
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by leteo)
```

Measured against `node:22-bookworm-slim` (Debian 12, glibc 2.36). The same archive runs correctly on `node:22-trixie-slim` (Debian 13, glibc 2.41): `leteo 0.1.0`, exit 0.

## Why

`.github/workflows/release.yml` builds 

[Read the thread](https://github.com/asanabrial/leteo/issues/19) · 2026-08-12 · closed · 0 comments

### The version is written in three places and nothing ties them together

`0.1.0` is written by hand in three places:

- `Cargo.toml`, `version` — the one that decides what is published to crates.io;
- [`server.json`](../blob/main/server.json), `version` at the top level;
- `server.json` again, `packages[0].version`.

Nothing reads `server.json` from CI, from a test, or from the crate. Grep for it: the only hits are the README and `glama.json`.

So the next release goes like this. `Cargo.toml` becomes `0.2.0`, `cargo publish` puts 0.2.0 on crates.io, and `server.json`

[Read the thread](https://github.com/asanabrial/leteo/issues/15) · 2026-08-11 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/asanabrial/leteo/issues).
