OXYGENHUB
# 96f7610fa666 oxygen / docs / plan.md
3.2 KiB · Markdown · last changed Add the overnight work plan 1 month ago renderedsource blame history raw

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 init in this directory or push this project anywhere. Oxygen tracks itself with target/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 --workspace exit status and a clean cargo clippy --workspace --all-targets.
  • No new external services, no publishing, no artifacts.

Items

  • 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.
  • Pack merging (spec §13.4): merge packs when more than 16 exist; oxy gc reports it.
  • 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.
  • Sparse checkout (spec §17): filter.paths in 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 the semantic-deps hook 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/push against 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) and docs/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.