Each loop iteration: pick the first unchecked item, implement it with tests, run the gated checks, commit with `oxy`, tick the box here with a one-line note, and commit again. Update `docs/spec.md` (and its changelog) whenever behaviour the spec describes changes. If an item cannot be finished in two iterations, note why under it and move on.
4
5
##Rules
6
7
-Never run `git init` in this directory or push this project anywhere. Oxygen tracks itself with `target/release/oxy`.
8
- Never modify `~/development/tetriblox`; use only mirror clones in the scratch directory.
9
- Tests must stay hermetic (`hermetic()` / `OXY_HOME`); never touch `~/.config/oxy`.
10
- Gate every commit on `cargo test --workspace` exit status and a clean `cargo clippy --workspace --all-targets`.
11
- No new external services, no publishing, no artifacts.
12
13
##Items
14
15
-[ ] Checkpoints (spec §11): serialize a `State` to a checkpoint object, load the nearest checkpoint in `load_state` and replay only the difference, create one automatically every `core.checkpoint-interval` changes (default 256) and on demand (`oxy checkpoint`). Benchmark before/after on a 5,000-change synthetic repository and record the numbers here.
16
- [ ] Pack merging (spec §13.4): merge packs when more than 16 exist; `oxy gc` reports it.
17
- [ ] Lazy blobs and the `objects` endpoint (spec §13.5, §16.1, §17): `clone --max-blob SIZE`, absent blobs recorded with their remote, fetched on first read; server endpoint; wire encoding in spec §16.3.
18
- [ ] Sparse checkout (spec §17): `filter.paths` in config, `clone --sparse PATH..`, status/commit/checkout honour it.
19
- [ ] Shallow clone (spec §17): `clone --depth N`, shallow boundary with a checkpoint, `oxy deepen`.
20
- [ ] Tags (spec §10.1, §14.4): `oxy tag create|list`, tag attestations, tags in views, wire, and export.
- [ ] Rename detection on Git import (similarity ≥ 50%); `oxy git fetch`/`push` against a Git remote via a mirror.
28
- [ ] Hardening: property tests for the CBOR decoder and pack reader against random and mutated inputs; a concurrent-push test against the server; a 1 GB single-file benchmark for chunking and blobs.
29
- [ ] Documentation: `docs/guide.md` (user guide by task) and `docs/protocol.md` (for other implementers, derived from spec §16 and the wire encodings).
30
- [ ] Spec review pass: resolve or re-word every "MAY ... until" allowance introduced during implementation, and close what can be closed in §27.