segment-buffer 0.5.6

High-throughput local buffer for cloud sync: batch-spills to zstd+CBOR segment files with at-least-once delivery, ack-based deletion, filename-based crash recovery, configurable durability, and optional encryption. Single-process by design. No WAL, no metadata DB.
Documentation
# TODO List

Short- and mid-term improvement tasks — actionable, bounded, with status.
This file tracks only work that is **not** blocked on a format change or a
missing concrete consumer. Long-term vision and raw ideas (async I/O,
envelope v2, second `SegmentStore` impl, streaming cipher, nightly benchmark
CI) live in [ROADMAP.md](ROADMAP.md); shipped work lives in
[CHANGELOG.md](CHANGELOG.md); current capabilities in
[FEATURES.md](FEATURES.md).

Settled design decisions (health-check primitive rejected, panic-free API
shipped, `mtime` gap formally accepted, `segment_count` type documented,
flush-worker rejected) are recorded in [ROADMAP.md](ROADMAP.md) § Non-goals,
[CHANGELOG.md](CHANGELOG.md), and [AGENTS.md](AGENTS.md) — they do not belong
here.

Status legend: `[ ]` pending · `[~]` in progress.

---

## Durability (release-scoped)

- `[ ]` **Flip the default `DurabilityPolicy` from `Segment` to `Throughput`
  with a deprecation note.** The planned one-release backward-compatibility
  window has elapsed (the enum shipped in v0.5.0; v0.5.5 is current). Cloud-sync
  deployments where the cloud holds the durable copy are the target use case, so
  `Throughput` (no fsync) is the correct default; `Maximal` / `Segment` stay
  selectable for standalone-queue deployments. Update the default in
  `SegmentConfig::default()` / builder, add a deprecation callout in the rustdoc
  and `docs/DOMAIN_LANGUAGE.md`, and note the flip in the release CHANGELOG.
  Source: AGENTS.md § Durability model, `docs/status/archived/2026-08-04_04-15_*`.

---

## Documentation

- `[ ]` **Visually verify README rendering** on GitHub, docs.rs, and a
  narrow viewport (mobile-width). The ToC, Status block, Cargo features
  table, Mermaid diagram, and the `iter_from` / `open_with_report` code blocks
  all need a human eye — lychee catches link and anchor drift, not rendering
  regressions. _Standing item._ Effort: ~15 min. _(User action — requires a
  browser, not a code change.)_

---

## CI / process

- `[ ]` **Audit CI vs local gate parity.** Enumerate every check in `ci.yml`
  and every check in `scripts/verify-gate.sh`, diff the two lists, document or
  fix every divergence. Source:
  `docs/status/archived/2026-08-04_00-07_*`.

- `[ ]` **Add clippy with full lint stack to the MSRV CI job.** Currently the
  MSRV job only runs `cargo check`, not `cargo clippy` with the full
  `[lints.clippy]` deny set. Source:
  `docs/status/archived/2026-08-04_01-03_*`.

- `[ ]` **Improve `check-changelog-links.sh` robustness.** Add rate-limit
  detection (HTTP 403 → warn + degrade gracefully) and `GITHUB_TOKEN` support
  (bumps GitHub API rate limit from 60/hour to 5000/hour). Source:
  `docs/status/archived/2026-08-04_00-07_*`.

- `[ ]` **Add `--list` and `--only=` options to `verify-gate.sh`.** `--list`
  prints all gate names without running; `--only=X,Y,Z` runs a subset for faster
  iteration. Source: `docs/status/archived/2026-08-04_00-07_*`.

---

## See also

- [ROADMAP.md]ROADMAP.md — long-term direction: async I/O, envelope v2
  (streaming CBOR early-stop, Blake3 checksum, compression negotiation,
  metadata block, cipher auto-detection), streaming cipher, second
  `SegmentStore` impl, nightly benchmark CI workflow, jscpd duplication gate.
- [CHANGELOG.md]CHANGELOG.md — shipped work.
- [FEATURES.md]FEATURES.md — current capability inventory by status.
- [`docs/planning/2026-07-20_05-50_envelope-v2-design-and-v0.6-deferrals.md`]docs/planning/2026-07-20_05-50_envelope-v2-design-and-v0.6-deferrals.md
  — full rationale for the envelope v2 deferrals.
- [`docs/planning/2026-07-21_08-26_flush-worker-and-tier-0-levers.md`]docs/planning/2026-07-21_08-26_flush-worker-and-tier-0-levers.md
  — Pareto plan and addendum covering the perf batch that shipped
  (tuning guide, Vec recycling, background-flush pattern example).