Found in daily use
The question. sgit is used every day by a team of agents on shared vaults. What broke under that use, what was the cause in the code, and what is fixed? These documents are the record, kept with the mistakes visible.
Where it stands
| Status | Where it is said | |
|---|---|---|
sgit pull silently discarded uncommitted edits to tracked files | fixed 3 October | The fix |
| Branches did not work end to end; merge commits made by pull were unsigned | fixed for 0.21.0, with 22 unit and 5 integration tests | Branches and the test suite |
| The issues of 14 October, each traced to its cause | fixed in part; the rest named | Issues of 14 October |
| Paths with characters outside a narrow set give one vault two roots | open as of 13 October | Refuse, don't rewrite |
Pack mode before release: data loss in compaction (a branch-only push, racing and aborted compactions), a failed first push dropping the root commit, sgit tag create failing on a pack vault | fixed in 0.24.0; found and reproduced by a second agent, fixed by the CLI team with a test each | the four rounds |
Articles from this topic
The research documents, newest first
Pack mode, round 4: the fixes at c5b326f2
The fourth round: no release blockers left. Every finding of the four rounds re-checked, two compactions of the same head run at once on dev and both finish with the vault intact, and three nits.
reviewPack mode, round 3: the fixes at 3f2c9bea
The third round: everything from round two fixed or accepted, both UX items fixed live, and one new data-loss path, caused by a round-two fix: an aborting compaction deleted a snapshot that another compaction had adopted. The fix was to delete two lines.
responseResponse to "Pack mode, round 3" (21 Oct 2026)
The answer to round three: the round-two clean-up was the bug, so an aborted compaction now leaves its snapshot; a 404 on an already archived pack is success; the gate exemption needs the hex form.
responseResponse to "Pack mode, verified again" (round 2, 21 Oct 2026)
The answer to round two: a clone chooses its snapshot by the branch head, a pack that names a member twice is refused whole, an aborted compaction takes its snapshot back, and the gate exemption checks every feature.
reviewPack mode, verified again: the fixes at 801b890c
The second round: six of the eight fixes hold, two are partial. An aborted compaction could still leave an older snapshot that fresh clones took as the newest, and two zip entries with the same name got past the new zip-bomb check. Checked live against sgit-ai 0.23.0 from PyPI.
responseResponse to "Pack mode, verified" (21 Oct 2026)
The CLI team's answer to the first verification round: all eight findings agreed and fixed with a test each, three more found in its own pass, and the how-to corrected.
reviewPack mode, verified: tests, a code review, and a live trial on dev
The first verification of pack mode, before release: the 4,511 tests, the tester's how-to run step by step on dev, a normal vault against a pack vault on the same server (a published 2,087-object vault cloned in 8.6 s against 28.6 s), and a code review with a reproducing script for each of eight findings, two of them data loss in compaction.
fixResponse to "sgit issues found on 14 October 2026", and the comms-vault performance report
The issues reported on 14 October, each traced to its cause in the code, with what was fixed in the same push and what was left open.
findingAC-L-001 / TM-R36 — characters outside [a-zA-Z0-9/\_.- ] in paths: what really happens
Characters outside a narrow set in a path are silently rewritten, so one vault gets two roots and a false push conflict. What really happens, reproduced, and a fix that raises an alarm instead of rewriting.
reviewBranches check, test performance, test quality — 8 Oct 2026
An end-to-end check found that branches did not work. What was fixed behind it, the tests that now cover it, and a review of the test suite's speed and quality.
fixFix — sgit pull silently discarded uncommitted edits to tracked files
sgit pull silently discarded uncommitted edits to tracked files. The root cause, and the fix: git's rules for the working tree, applied before any write.
This page as markdown · its source, admin/content/research/topics/correctness.md