Skip to content

Releases: plyght/superdetermine

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 03:10

Features

  • Added sdt setup for interactive first-run configuration (name, email, and the repo’s check command), with optional enablement of automatic background grading.
  • Expanded sdt config into a named-settings interface:
    • sdt config now lists all settings with resolved values and their source (local, global, default).
    • sdt config <name> explains a setting (expected values/choices, storage key, scope).
    • --unset support, plus --keys to show dotted-key mappings for on-disk config.
    • Shell completions now include setting-name completion for config.

Improvements

  • Build defaults now produce a ReleaseFast binary on plain zig build, avoiding accidental Debug builds and large performance regressions.
  • Switched the apricot dependency from a local path to a fetched URL to restore out-of-the-box builds on CI and fresh clones.
  • Reduced agent session scanning overhead by skipping parsing of session files that cannot pertain to the current repo (for adapters that record absolute/cwd-resolved paths).
  • Accelerated conflict-marker detection by caching blobs previously scanned as clean, avoiding repeated file reads across status runs.
  • Background grading agents now retire themselves cleanly when the repo is removed; sdt doctor prunes orphaned agents.
  • Documentation updated for the new setup/config flows and renamed config flags/keys.

Fixes

  • Fixed scheduler tick budget configuration reading the wrong key and parsing the value incorrectly; now reads checks.tick_budget and supports duration parsing.
  • Updated LFS and mesh configuration examples and error messages to match new setting names (e.g., lfs-url, lfs-smudge, mesh-every, mesh-verdicts).

Breaking Changes

  • Configuration CLI and naming has changed:
    • sdt config checks.full ... is now documented/expected as sdt config check ....
    • Several settings moved to new names (e.g., mesh.interval-msmesh-every, mesh.verdictsmesh-verdicts, lfs.urllfs-url).
    • Dual-write config syntax changed to sdt config git-sync on --global.

Nightly (32aceaf)

Nightly (32aceaf) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 07:41

Rolling nightly build from 32aceaf — 2026-08-20 07:41 UTC.

Prerelease built from the tip of master; may be unstable. Get it with sdt update --nightly.

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 01:53

Improvements

  • Garbage collection now bounds its root set using gc.retain (default 30d), allowing content abandoned by rewrites (amend/rebase/drop/squash) to be reclaimed after the retention window while always retaining anything reachable from branch refs.
  • sdt gc now trims expired moments as part of collection (when not running with --dry-run), preventing old moment logs from pinning otherwise unreachable objects.
  • Moment log trimming is more robust: when the only surviving keyframe would be cut, remaining moments are re-anchored so trimming can proceed without breaking reconstruction.

Breaking Changes

  • Updated package version to 0.8.0.

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 15 Aug 01:22

Fixes

  • Prevented commands invoked with --help/-h from performing repository mutations (e.g., sdt save --help no longer checkpoints the working tree).
  • Tightened conflict-marker detection to match only exact 7-character marker lines (optionally followed by a label), avoiding false positives from long runs of = in plain-text files (e.g., license heading underlines) and handling CRLF marker lines correctly.

v0.7.2

Choose a tag to compare

@github-actions github-actions released this 15 Aug 01:15

Fixes

  • purge: Pathspec matching now follows .gitignore semantics. Slash-free specs (e.g., node_modules) match a path component at any depth, so nested directories are reached; leading / anchors matches to the repo root.

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 15 Aug 00:59

Features

  • purge now prunes .sdt/gitmap entries for changes that were replaced by the purge rewrite, preventing stale export mappings from masking history differences.

Improvements

  • purge warns when dropped git mappings imply the next sdt push will rewrite commits and a shared Git remote will diverge (requiring a force push).
  • Added purge statistics tracking for dropped git mappings (unmapped) and coverage via tests.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 00:51

Features

  • Added sdt purge <path...> [--dry-run] [--force] to erase a path from every change across all branches, enabling sdt gc to reclaim space from mistakenly recorded build artifacts. Includes dry-run reporting and safety gating via --force.

Fixes

  • .gitignore is now honored even when no colocated .git directory is present, preventing unintended capture of build output in sdt-only repositories.

Breaking Changes

  • sdt purge rewrites history and resets moment and operation logs; purged content cannot be recovered via sdt undo.

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 14 Aug 19:35

Features

  • Added live progress reporting for long push operations, including mirroring history, packing objects, and sending objects.

Improvements

  • Optimized history export during pushes by caching already-exported blobs, avoiding re-reading and re-compressing unchanged files across saved states.
  • Enabled automatic pack-builder parallelism in libgit2 pushes (pb_parallelism = 0) to avoid single-core delta compression.
  • Added automatic fallback to the system git push when libgit2 push fails (notably for large first pushes where pack building can stall the remote connection).

Fixes

  • Prevented large first pushes from appearing hung by ensuring progress is finished/cleared on error paths.
  • Added a regression test to verify first-push exports compress each blob once per unique content rather than once per saved state.

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 13 Aug 19:09

Features

  • sdt clone now shows live, in-terminal progress across phases: receiving objects, resolving deltas, checking out, and importing history.
  • Import progress includes an estimated total commit count (when available) for a real denominator instead of a synthetic percentage.

Improvements

  • Progress output is suppressed when stdout is not a TTY to keep logs and pipes clean.
  • Clone/import status messages are clearer, with improved error detail on clone failures.
  • Progress rendering utilities were centralized in ui for reuse (including consistent bars/spinners and human-readable byte formatting).

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 13 Aug 15:55

Features

  • sdt update now shows an interactive download progress bar when running in a terminal, and reports the downloaded size on completion.
  • README now includes an animated demo of grading and rewinding.

Fixes

  • macOS launchd background grading now runs with a real PATH, matching foreground grading behavior and avoiding “command not found” failures.

Improvements

  • Ignore handling is now consistently based on .sdtignore and always ignores .sdt (and .git when present); removed remaining .grignore/legacy ignore merging.
  • UI now tracks whether output is a TTY separately from color support, enabling cleaner terminal rendering decisions.

Breaking Changes

  • Removed support for legacy .gr repositories and associated discovery paths; existing repos must be .sdt.
  • Removed legacy config directory fallback (gr) and legacy environment variable spellings (e.g. GR_AUTHOR, GR_PROMPT, GR_AGENT).
  • Sealing manifest file name changed to .sdtsealed (from .grsealed); existing sealed repos may require migration.