Skip to content

Reclaim ~57MB-per-revision ADR KB blobs from git history (needs a rewrite at a release boundary) #674

Description

@cuttlefisch

PR #673 stopped the ADR KB blob from growing the repo further — it is now
untracked and ships as its own release asset. It did not reclaim what is
already written.

Current state

  • .git is ~405 MB
  • ~365 objects in history are assets/mae-adr.cozo revisions alone, at ~57 MB
    each regeneration
  • assets/mae-manual.cozo (~32 MB) and assets/mae-devpractices.cozo (~18 MB)
    are still tracked and still regenerate on content change, so they continue to
    add history at a slower rate

Why this wasn't done in #673

Reclaiming needs git filter-repo (or equivalent), which rewrites every commit
SHA. That invalidates every existing clone, every fork, and every open PR — each
one needs a re-clone or a rebase onto the rewritten history. It is the right
operation, at the wrong moment for a routine cleanup PR.

Proposed handling

Do it at a deliberate release boundary (v1.0 is the obvious candidate), with:

  1. an announced window, so contributors know their clones will need replacing
  2. all open PRs merged or closed first
  3. a full mirror backup taken before the rewrite, retained
  4. a scripted, reviewable rewrite (not an ad-hoc invocation), covering
    assets/mae-adr.cozo and — if they have been untracked by then — the other
    bundled KB stores
  5. verification that tags and release assets still resolve afterwards

Related, and worth deciding first

mae-manual.cozo and the two guidance KBs are read out of assets/ at runtime
by source builds, which is why #673 left them tracked. Giving them a fallback
(build-on-demand, or fetch like make fetch-adr-kb) would let them be untracked
too — and it is better to know whether they are in scope before a rewrite than
to need a second one later.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions