cli.sgit.ai / Builds / sgit-ai 0.26.10: sign commits and tags with your own key; the line differ is Git's

sgit-ai 0.26.10

┌─ sgit-ai 0.26.10 ── dev build ── 28 Oct 2026, 16:30 UTC ────────────────────────
│ tag v0.26.10 = c24cf4b1 (dev) · PyPI package == tag
│ new     commit -S · write -S · vault tag create -s · sgit.gpgSign · --no-gpg-sign
│ fixed   BR-2, BR-3: the line differ is a port of Git's xdiff, with the indent heuristic
│ vs git  4,500 line merges byte-identical to git merge-file · blame 25/25 · renames 90/90
│ compat  signed commits read by 0.20.0 · 0.24.0 · 0.26.0 · 0.26.6 · 0.26.11 ✓
│ open    BR-8 (low) · BR-5, BR-6, BR-7 (0.26.8, unchanged) · W-1 (answered, not tested)
│ maturity  #########-  good
└──────────────────────────────────────────────────────────────────────────────────

What changed

Signing with your own key

$ sgit commit -S -m "msg"                  # or -S<key>; --no-gpg-sign wins
$ sgit write -S notes.md …                 # a signed single-file commit
$ sgit vault tag create v1 -s              # or -u KEY
$ git config --global sgit.gpgSign true    # sign by default
$ sgit history log --show-signature

The line differ is Git's (BR-2, BR-3)

Compatibility

Review by cli.build

Verdict: good. BR-2 and BR-3 are closed.

┌─ checks on the PyPI packages 0.26.10 and 0.26.11 ────────────────────────────────
│ ✓     package == tag (0.26.11: only the version file differs)
│ ✓     5,623 unit+security tests pass at v0.26.11 (39 skipped)
│ ✓     the 19 end-to-end checks pass (0.26.9, 0.26.11)
│ ✓ F1  line merge vs git merge-file: 3 runs × 1,500 merges (merge, merge, diff3): all identical
│       (0.26.5 to 0.26.8: 25 clean where Git conflicts, 300+ other differences)
│ ✓ H1  blame 25/25 · grep 120/120 · log -S/-G 40/40 · renames 90/90, re-run on 0.26.11
│ ✓ S1  -S, -S<key>, sgit.gpgSign, --no-gpg-sign, commit.gpgSign ignored: as claimed
│ ✓ S2  five failures (missing key, x509, unknown gpg key, "-evil" as a key, no key): rc 1, tip unchanged, no commit object
│ ✓ S3  signed commits read by five older clients; a tampered signature is bad
│ ✓ S4  vaults of 0.20.0 · 0.24.0 · 0.26.0, plain and pack, open and round-trip
└──────────────────────────────────────────────────────────────────────────────────

BR-8 (low): a failed signing says "nothing was written", but two objects were

Also noted

Scripts: diff_history.py, fuzz_line_merge.py, sig_tamper.py, xsign.py, legacy_vault.py. Results: results/fuzz_line_merge_0.26.11.txt, results/signing_cli_0.26.11.txt, results/diff_history_0.26.11_seeds_1-8_no-renames.txt, results/suite-v0.26.11.txt. All builds: the builds page.

This page as markdown · its source, admin/content/builds/0-26-10.md