Overnight work plan
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.
Rules
- Never run
git initin this directory or push this project anywhere. Oxygen tracks itself withtarget/release/oxy. - Never modify
~/development/tetriblox; use only mirror clones in the scratch directory. - Tests must stay hermetic (
hermetic()/OXY_HOME); never touch~/.config/oxy. - Gate every commit on
cargo test --workspaceexit status and a cleancargo clippy --workspace --all-targets. - No new external services, no publishing, no artifacts.
Items
-
Checkpoints (spec §11): serialize a
Stateto a checkpoint object, load the nearest checkpoint inload_stateand replay only the difference, create one automatically everycore.checkpoint-intervalchanges (default 256) and on demand (oxy checkpoint). Benchmark before/after on a 5,000-change synthetic repository and record the numbers here. -
Pack merging (spec §13.4): merge packs when more than 16 exist;
oxy gcreports it. -
Lazy blobs and the
objectsendpoint (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. -
Sparse checkout (spec §17):
filter.pathsin config,clone --sparse PATH.., status/commit/checkout honour it. -
Shallow clone (spec §17):
clone --depth N, shallow boundary with a checkpoint,oxy deepen. -
Tags (spec §10.1, §14.4):
oxy tag create|list, tag attestations, tags in views, wire, and export. -
Multiple workspaces (spec §12.2):
oxy workspace add|list|forget, per-workspace directory metadata, snapshot lock. -
.oxyattributes(spec §19):binary,eol=lf|crlf,nocompress,lockable(advisory locally). -
Hooks (spec §20):
pre-commit,post-commit,pre-push,post-fetch,post-checkout, and thesemantic-depshook with its JSON interface. -
Amend on non-head changes with a diff-derived correspondence;
oxy split. - Reify orphaned references on rewrite as conflicts instead of refusing (spec §8.4); define the conflict shape in the spec.
-
Identity lifecycle:
oxy identity rotate|revoke, expiry, delegates (oxy identity delegate add|remove), multi-signer policy updates. -
Rename detection on Git import (similarity ≥ 50%);
oxy git fetch/pushagainst a Git remote via a mirror. - 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.
-
Documentation:
docs/guide.md(user guide by task) anddocs/protocol.md(for other implementers, derived from spec §16 and the wire encodings). - Spec review pass: resolve or re-word every "MAY ... until" allowance introduced during implementation, and close what can be closed in §27.
Log
- 2026-09-26 23:01 plan created.