# sgit-ai 0.26.4: commit messages up to 64 KB, cli.sgit.ai

> Dev build of 28 October 2026, from the CLI's dev at c495b40e. A commit message longer than 740 bytes used to fail with a raw ValueError, after the commit's blobs and trees were written; Git has no limit. The default limit stays 740 bytes, now refused before anything is written. A vault with the long-messages feature takes up to 64 KiB, and every client reads messages up to 1 MiB, the web UI's. Turning the feature on raises the vault's gate to 0.26.4, so an older sgit is told to update. Reviewed by cli.build. All checks held, including the refusal of 0.26.0 and 0.26.3 clients with a clear message. Maturity good. Wait for the 0.27.0 release before turning long-messages on in a vault that agents on 0.26.0 still use.

*Source: <https://cli.sgit.ai/builds/0-26-4.html> · generated from the same content as the page, so the two cannot drift.*

---
# sgit-ai 0.26.4

```text
┌─ sgit-ai 0.26.4 ── dev build ── 28 Oct 2026, 11:07 UTC ─────────────────────────
│ tag v0.26.4 = c495b40e (dev) · PyPI package == tag
│ new     messages up to 64 KiB with the long-messages feature; read up to 1 MiB
│ tests   L1 ✓ L2 ✓ · the gate refuses 0.26.0 and 0.26.3 with "run sgit update"
│ maturity  ########--  good
└──────────────────────────────────────────────────────────────────────────────────
```

## What is new {#new}

- **The 740-byte limit was a bug.** The encrypted message shared a 1,024-character base64 field with a tree entry's name. A 741-byte message failed with a raw `ValueError`, after the commit's blobs and trees were written. Git has no limit.
- **Reading:** every client from this build accepts messages up to 1 MiB. The web UI writes messages with no cap, and a longer one made the commit unreadable to the CLI: `log`, `clone` and `pull` failed past it.
- **Writing:**
  - 740 bytes stays the default, so vaults older clients use are unaffected;
  - over the limit, the commit is refused before anything is written, with the size in UTF-8 bytes and how to raise it;
  - `sgit vault format --feature long-messages` lets a vault take up to 64 KiB, and raises its minimum client to 0.26.4.

```text
$ sgit vault format --feature long-messages       # gate becomes 0.26.4
$ sgit commit -m "$(cat long-design-note.md)"     # up to 65,536 bytes
```

## Compatibility {#compat}

A vault with `long-messages` refuses clients before 0.26.4. Checked with 0.26.0 and 0.26.3, which both stop with:

```text
Vault__Client_Too_Old_Error: this vault needs sgit-ai >= 0.26.4 and this is 0.26.3: run `sgit update`, then try again
```

## Review by cli.build {#review}

**Verdict: good.** A real bug fixed: an error that wrote half a commit is now a clean refusal. The gate works as designed.

```text
┌─ checks on the PyPI package 0.26.4 ─────────────────────────────────────────────
│ ✓ L1  741-byte message, no feature: refused, objects on disk unchanged
│ ✓ L2  feature on: 65,536 bytes (100 of them é) committed, pushed, cloned;
│       min_client 0.26.4; 65,537 bytes refused
│ ✓     0.26.0 and 0.26.3 pulling that vault: refused, "run `sgit update`"
└──────────────────────────────────────────────────────────────────────────────────
```

- **For whoever turns the feature on:** the gate is a dev build's version. Until 0.27.0 is released, a vault with `long-messages` refuses every agent that stays on the release (0.26.0, or `sgit update --stable`). Turn it on in shared vaults after 0.27.0.
- **Not tested:** a message written by the web UI over 64 KiB and read by the CLI (the 1 MiB read path).

*Scripts: `check_build.py`, `xstep.py`. All builds: [the builds page](../builds/index.md).*

---

*[Site index for agents](../llms.txt) · [HTML version](https://cli.sgit.ai/builds/0-26-4.html)*
