Skip to content

Repository-wide reachability classification for RootSet doctor #49

Description

@flyingrobots

Problem

RootSet.doctor() can prove that the current entries in one root set are anchored by that root-set ref. It cannot currently classify objects outside that set as anchored by another branch, tag, reflog, vault, or root set versus orphaned or volatile. The v6.1.0 API therefore reports repository-wide orphaned/volatile counts as bounded unknowns rather than making a false claim.

Scope

  • Define a repository-wide reachability inventory across refs and reflogs.
  • Distinguish anchored, orphaned-within-grace, and volatile/past-grace objects.
  • Reconcile object retention policy (pinned/evictable) with observed reachability without conflating the two axes.
  • Add synthetic-repository tests covering other refs, reflogs, unreachable recent objects, and immediately prunable objects.
  • Expose evidence and limitations without running destructive git gc or git prune.

Non-goals

  • Changing the v6.1.0 single-set doctor contract.
  • Automatically deleting objects.
  • Treating root-set pinned as a pack .keep guarantee.

Provenance

Follow-on debt from API-0046 and #48. The v6.1.0 verification witness records the bounded claim.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:storageStorage, Git objects, manifests, or persistencestatus:in-progressActively being workedtype:debtKnown technical debt or cleanuptype:sliceTurn-sized proof work under a goalpost

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions