chore: route demo reel GIFs through Git LFS (#1767)

## What
Routes `demo/assets/*.gif` through **Git LFS** and converts the 20
existing reel GIFs to LFS pointers. Adds a Git LFS setup note to
`docs/contributing.md`.

## Why
The demo reel GIFs dominate repo size: the same captures get re-shot and
re-committed, and git keeps every old blob forever (~118 MB of GIF
history backing a ~421 MB `.git`). Routing them through LFS keeps the
binaries out of the packfile so future regenerations stop bloating
history.

## Scope / blast radius
- **Track-forward only** — existing history is left intact. No
`filter-repo` rewrite, no force-push, no re-clone required.
- This does **not** shrink the current `.git` (old blobs remain in
history); it stops the bleeding going forward.
- Contributors must have `git lfs install` configured, or the GIFs
arrive as pointer stubs — documented in `docs/contributing.md`.

## Notes
- GitHub free LFS tier is 1 GB storage + 1 GB/month bandwidth; live GIFs
are ~49 MB. Worth keeping an eye on LFS bandwidth for a trafficked
public repo.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- stage-review-badge-begin -->

---

<a href="https://stagereview.app/Runfusion/Fusion/pull/1767">
  <picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://stagereview.app/assets/gh-open-in-stage-dark.svg">
<img src="https://stagereview.app/assets/gh-open-in-stage-light.svg"
alt="Open in Stage">
  </picture>
</a>

<!-- stage-review-badge-end -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Added Git LFS tracking for GIFs in the demo assets folder to help keep
the repository size manageable.

* **Documentation**
* Updated contributor setup instructions with Git LFS guidance,
including installation, pulling existing large files, and how new GIFs
are handled automatically.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
gsxdsm
2026-06-25 13:29:15 -07:00
committed by GitHub
22 changed files with 19 additions and 0 deletions

6
.gitattributes vendored Normal file
View File

@@ -0,0 +1,6 @@
# FNXC:RepoAssets 2026-06-25-09:00:
# Demo reel GIFs dominate repo size (the same captures get re-shot and re-committed,
# and git keeps every old blob forever). Route them through Git LFS so the binaries
# live outside the packfile and future regenerations stop bloating .git.
# Scoped to demo/assets/*.gif (track-forward only — existing history was left intact).
demo/assets/*.gif filter=lfs diff=lfs merge=lfs -text

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

After

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -40,6 +40,19 @@ pnpm build # default build (excludes desktop/mobile)
pnpm build:all # full recursive build including desktop/mobile
```
### Git LFS (demo reel GIFs)
The demo reel GIFs in `demo/assets/*.gif` are stored via [Git LFS](https://git-lfs.com) so the binaries live outside the packfile and re-shot captures stop bloating `.git` (see `.gitattributes`).
Install Git LFS **before** cloning or pulling, otherwise these files arrive as small text pointer stubs instead of real GIFs:
```bash
# macOS: brew install git-lfs (or your platform's package manager)
git lfs install # one-time, per machine
```
If you already cloned without LFS, run `git lfs install` then `git lfs pull` to hydrate the GIFs. New GIFs added under `demo/assets/` are routed to LFS automatically by the `.gitattributes` filter — no extra steps.
## Workspace Package Overview
| Package | Purpose |