Skip to content

docs(repo): #415 Phase-2 .git reduction proposal — ~1.55 GB strippable, defer to post-tag - #628

Merged
jsboige merged 1 commit into
masterfrom
docs/415-phase2-proposal
Jul 1, 2026
Merged

docs(repo): #415 Phase-2 .git reduction proposal — ~1.55 GB strippable, defer to post-tag#628
jsboige merged 1 commit into
masterfrom
docs/415-phase2-proposal

Conversation

@jsboige

@jsboige jsboige commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

What

Deep-queue #4 dispatch (ai-01, SECONDAIRE). Read-only proposal for reducing the .git weight, building on the Phase-1 audit (#621). No execution — surfaces the go/no-go + a costed plan for jsboige.

The opportunity (measured)

.git pack = 2.05 GiB. Of that, ~1.55 GB is fully-regenerable build artifact history:

Target Strippable Notes
Published/ .NET builds ~1.2 GB dotnet publish output; 0 at HEAD
DNNPlatform/.../Downloads/*.zip ~205 MB Print&Play pipeline output; 0 at HEAD
DNNPlatform/.../*.resources ~150 MB re-downloadable 2sxc/DNN pkgs; 0 at HEAD

2.05 GiB → ~0.45–0.5 GiB (~75 % reduction) via git filter-repo.

Design sources (Packaging 97 MB, Sketch 45 MB) are flagged preserve / LFS — out of scope for stripping.

The plan (if green-lit)

git filter-repo on a fresh clone, stripping the 3 regenerable paths, coordinated force-push to origin. Full command in the doc.

Risks (6, explicit)

  1. History rewrite = force-push to master → all clones (ai-01/po-2023/po-2024) invalidated, coordinated re-clone required.
  2. 8 open PRs break (base commits cease to exist) — must merge/close first.
  3. Tag/release integrityv0.9.0 tagged on old history would be invalidated.
  4. SHA-shift cascades (dashboard/GDrive/investigation references go stale).
  5. filter-repo removes origin by design (foot-gun).
  6. Mindmap SVGs (47.7 MB) regenerable but committed-of-record — left OUT of the strip set (conservative, confirm with mindmap lane).

Recommendation

DEFER to post-v0.9.0-tag. Rewriting during the freeze (8 open PRs + pending tag) is max risk for zero release benefit. Execute in a coordinated post-tag window. Go/no-go = jsboige.

Scope / safety

Relates to #415, #621, #565.

…tion)

Interprets the Phase-1 audit (#621, git-weight-audit.py). Quantifies the
reduction: ~1.55 GB of fully-regenerable build artifacts in history (Published/
.NET builds 1.2 GB + DNN Downloads zips 205 MB + .resources 150 MB) -> repo
2.05 GiB to ~0.45-0.5 GiB (~75%).

Includes a costed git filter-repo plan + 6 explicit risks (force-push to master,
8 open PRs break, tag/release integrity, SHA-shift cascades, filter-repo
remote-removal foot-gun, mindmap SVG provenance).

Recommendation: DEFER to post-v0.9.0-tag (rewrite during the freeze with 8 open
PRs + pending tag = max risk, zero release benefit). Go/no-go = jsboige. Flags
design sources (Packaging 97 MB, Sketch 45 MB) as preserve/LFS, out of scope.

PROPOSAL ONLY — no clone, no force-push, no history mutation. Reproducible via
python tools/git-weight-audit.py.

Co-Authored-By: Claude-Code <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw]

Verifié firsthand (1 doc docs/repo/415-phase2-proposal.md, base 33b1c0bc) — proposition read-only de très bonne facture, LGTM. Arithmétique entièrement réconciliée :

  • Zones strippables : Published 1.2 GB + DNN-zips 205,5 + .resources 151,5 = 1557 MB ≈ 1,52 GB (claim « ~1,55–1,6 GB » ✓).
  • Réduction : 2,05 GiB − 1,52 GB ≈ 0,53 GiB (claim « → 0,45–0,5 GiB » ✓), soit 76 % (claim « ~75 % » ✓).
  • Top blobs cohérents (Print&Play.zip = DNN zone, les 3 osx/linux-x64 = Published zone).

No-execution vérifié : single-file PR (0 script commité, 0 mutation git). Les commandes git clone/pip install git-filter-repo/git push --force sont toutes dans le bloc fenced ## Plan (if green-lit) — c'est un plan proposé, rien n'a tourné. Build sur le Phase-1 audit #621 (reproduit via tools/git-weight-audit.py, pas une 2e mesure).

Recommandation DEFER-to-post-tag = la bonne : 8 PRs open + tag v0.9.0 pendant le freeze → un rewrite history maintenant maximise le risque pour ~0 bénéfice release (la taille du clone n'impacte pas les artefacts livrés). La section Risques (6 items : force-push master, PRs cassés, tag/release integrity, SHA shift cascade, filter-repo drop origin, Mindmap SVGs conservativement laissés hors) est exceptionnellement honnête — notamment le point 3 (tag invalide après rewrite) et le flag Mindmap conservé par prudence.

Concern mineur (non bloquant) : le chiffre « 8 PRs currently open » liste #627, #603, #596, #597, #599, #600, #601, #627-area#627 apparaît 2× et « #627-area » est flou ; l'inventaire exact pré-rewrite devra être re-vérifié au moment du go (les PRs ouverts changent vite). À jour au moment du gate, pas maintenant.

Continue le lane #415 (Phase-1 #621). RAS.

@jsboige
jsboige merged commit 3e2fa0c into master Jul 1, 2026
3 checks passed
@jsboige
jsboige deleted the docs/415-phase2-proposal branch July 1, 2026 14:44
jsboige added a commit that referenced this pull request Jul 3, 2026
…shed pack (#663)

Tertiaire dispatch kp26j6. Refines the #415 Phase-2 proposal (PR #628, read-only,
no execution). Re-measured on current master 9c19e51 (was 33b1c0b at proposal time).

Two findings that sharpen the plan:

1. Mindmapper gap (186.7 MB) — the proposed git filter-repo --path prefixes are
   exact-prefix matches and MISS two sibling build-output trees:
   - .../AssetConverter/Mindmapper/Published/  (129.2 MB)
   - Cartes/Generation/Mindmap/Mindmapper/Published/  (57.5 MB)
   These are regenerable dotnet-publish output (.csproj/.sln committed in history,
   binaries deleted at HEAD, .REMOVED.git-id sentinels alongside). Corrected strip
   target = ~1.8 GB (proposal said ~1.557 GB). The --path set is updated to close
   the gap; they were misclassified into the "other" zone by the audit path regex.

2. Pack grew 2.05 -> 2.08 GiB (+3868 objects) but the growth is text/code only
   (other zone 882.8 -> 946.7 MB); regenerable binary zones byte-for-byte unchanged.
   Bloat source is NOT recurring — no new build artifacts committed.

Risk #2 currency update: open PRs 8 -> 3 (#596/#661/#662), lowering rewrite risk.

READ-ONLY per DoD: 0 history mutation, 0 force-push, 0 clone, 0 Cards/ write.
Reproducible via python tools/git-weight-audit.py + scratchpad 415_mindmapper_gap.py.
Go/no-go = jsboige. Recommendation (DEFER post-tag) unchanged.

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants