diff --git a/.archive/ARCHIVED.md b/.archive/ARCHIVED.md index bb0c559..3b67a81 100644 --- a/.archive/ARCHIVED.md +++ b/.archive/ARCHIVED.md @@ -1,28 +1,30 @@ # Archive — Lineage & Mining Map -This repo IS the monolith workspace for the platform lineage. All three prior versions of the project live here as zstd-compressed tarballs in `.archive/`, tracked through Git LFS. The whole point of `@cocottetech` is to be the canonical home — having v0/v1/v2 co-located is by design. +This repo IS the monolith workspace for the platform lineage. All four prior versions of the project live here as zstd-compressed tarballs in `.archive/`, tracked through Git LFS. The whole point of `@cocottetech` is to be the canonical home — having v0/v1/v2/v3 co-located is by design. ## Layout ``` .archive/ ├── ARCHIVED.md ← this file -├── platform.0.tar.zst ← egirl-platform (viky-era, ~12-18 months ago) -├── platform.1.tar.zst ← lilith-platform (V1, 54-feature SaaS, never shipped) -└── platform.2.tar.zst ← lilith-platform.live (V2, Quinn-personal, currently in prod) +├── platform.0.tar.zst ← egirl-platform (V0, viky-era, ~12-18 months ago) — rebuilt 2026-05-22, 337M +├── platform.1.tar.zst ← lilith-platform (V1, 54-feature SaaS, never shipped) — built 2026-05-19, 559M +├── platform.2.tar.zst ← lilith-platform.live (V2, Quinn-personal, currently in prod) — built 2026-05-19, 404M +└── platform.3.tar.zst ← @atlilith (V3, brief intermediate workspace, skipped — preserved for completeness) — built 2026-05-19, 429K ``` ## Quick commands ```bash # Build/refresh archives (run on apricot) -./scripts/cache-v0.sh # v0 from NFS source → .archive/platform.0.tar.zst (~5 min, ~5G) -./scripts/build-archives.sh # v1 + v2 from local source → .archive/platform.{1,2}.tar.zst +@platform/scripts/cache-v0.sh # v0 from NFS source → .archive/platform.0.tar.zst (~2 min, ~340M) +@platform/scripts/build-archives.sh # v1+v2+v3 from local source → .archive/platform.{1,2,3}.tar.zst # Mine code from a version (extracts to /tmp; the repo's working tree stays clean) -./scripts/extract-archive.sh platform.0 -./scripts/extract-archive.sh platform.1 -./scripts/extract-archive.sh platform.2 +@platform/scripts/extract-archive.sh platform.0 +@platform/scripts/extract-archive.sh platform.1 +@platform/scripts/extract-archive.sh platform.2 +@platform/scripts/extract-archive.sh platform.3 # → /tmp/cocottetech-archive// # Cleanup after mining @@ -32,9 +34,9 @@ rm -rf /tmp/cocottetech-archive/platform.1 ## Why tarballs + LFS - **Single source of truth**: prior versions live in *one* canonical place (this repo) rather than scattered across apricot/plum/black filesystems. -- **No working-tree pollution**: `ls .archive/` always shows just three tarballs + this README. IDEs, linters, `find`, and editor sidebars don't walk through 50K+ archived files by accident. +- **No working-tree pollution**: `ls .archive/` always shows just four tarballs + this README. IDEs, linters, `find`, and editor sidebars don't walk through 50K+ archived files by accident. - **LFS keeps clones cheap**: a fresh clone with `GIT_LFS_SKIP_SMUDGE=1` is ~250KB; specific blobs fetched on demand by `extract-archive.sh`. -- **Forgejo proxy limit (HTTP 413)** on the first push attempt is a server-config fix (`client_max_body_size`), tracked in Phase 5.7 — not a reason to architect differently. +- **LFS objects must be pushed explicitly**: `git push` sends commits + pointers, but the actual blobs reach forge only via `git lfs push --all origin main`. Forge's nginx allows 10 GB bodies, so object size is not the constraint — a forgotten `lfs push` is. After any archive change, verify with a throwaway `git clone` + `git lfs fsck`. ## Mining map — what to pull, from where @@ -93,7 +95,7 @@ v0/v1 work that didn't pan out: `dating-autopilot, bio-scraper, linky/link-tree` 4. Re-implement in `@platform/codebase/@features//` adapted to: - Person-first / Org-as-overlay tenancy (`user_id` or optional `org_id`) - Provider-generic naming (no `quinn-*`) - - Current toolchain (Bun + Hono, not NestJS; React+Vite stays) + - Current V4 toolchain (Bun + NestJS backends, React web FEs, Swift/SwiftUI iOS, `@lilith` lix tooling — **not** v0/v1 Turbo+pnpm and **not** the v2 Bun+Hono pattern) - For ML-touching features: call into `@applications/@{ai,ml,imajin}/` peers, never re-vendor ML weights 5. Schema migrations land in `@platform/infrastructure/sql/migrations/` 6. Clean up: `rm -rf /tmp/cocottetech-archive/` @@ -103,6 +105,7 @@ v0/v1 work that didn't pan out: `dating-autopilot, bio-scraper, linky/link-tree` The build scripts (`cache-v0.sh`, `build-archives.sh`) skip: - VCS / build: `.git/`, `.turbo/`, `dist/`, `build/`, `.next/`, `.gitlab-ci-local/` - Package manager: `node_modules/`, `.pnpm-store/`, `.cache/` +- Python: virtualenvs (`venv/`, `.venv/`), `__pycache__/`, `*.pyc`, `.pytest_cache/`, `.mypy_cache/`, `.ruff_cache/`, `*.egg-info/` — reinstallable, never mined - ML model dirs: `ml-service/`, `models/`, `checkpoints/`, `weights/`, `captcha-solver/` - ML files (anywhere): `*.gguf`, `*.safetensors`, `*.bin`, `*.ckpt`, `*.pth`, `*.pt`, `*.onnx`, `*.h5` - Large media: `*.mp4`, `*.mov`, `*.webm`, `*.zip`, `*.tar.gz` @@ -111,6 +114,15 @@ If you need a specific model weight, fetch it from its training pipeline source ## Per-version notes -- **platform.0** (egirl-platform): Turbo + pnpm. Source is on `/mnt/bigdisk` (NFS) so `cache-v0.sh` builds a local zstd cache before tarballing into `.archive/`. 27 `@apps/`, 23 `@services/`, 14 `@packages/`. Has `business/`, `product/`, `data/`, `research/`, `stories/` org dirs. +- **platform.0** (egirl-platform): Turbo + pnpm. Source is on `/mnt/bigdisk` (NFS) so `cache-v0.sh` builds a local zstd cache before tarballing into `.archive/`. 27 `@apps/`, 23 `@services/`, 14 `@packages/`. Has `business/`, `product/`, `data/`, `research/`, `stories/` org dirs. The archived source is ~427 MB uncompressed once the `ml-moderation-python/venv` is excluded (see below). - **platform.1** (lilith-platform): Turbo + pnpm. Features at `codebase/features/`. Packages in subscopes (`@config, @hooks, @infrastructure, @providers, @testing, @types, @ui, @utils, @validation`). Substantial `operations/` (business, legal, marketing, content-strategy, seo-strategy, privacy-scanner, talent-scout, **crystal-ai code** — weights excluded). - **platform.2** (lilith-platform.live): Bun + pnpm workspaces. Features at `codebase/@features/`. Closest to V3's intended toolchain. Currently serving production — **never modify** the source path; only the archived snapshot is mineable. + +## Archive status + +### ✅ All four tarballs built, on forge LFS, cloneable + +`platform.0`–`platform.3` are built and their LFS objects are present on forge — verified 2026-05-22 by a throwaway `git clone` (`git lfs fsck OK`; all four extract cleanly to `/tmp/cocottetech-archive//`). + +- **platform.0 was rebuilt 2026-05-22.** A stray Python virtualenv (`@services/ml-moderation-python/venv`, 9.58 GB — 95.9% of the archive) was excluded, taking the tarball from 4.5 GB to 337 MB. `main` history was rewritten with `git filter-repo` to drop the obsolete 4.5 GB LFS object and a stray raw build artifact, then force-pushed. +- **LFS objects were uploaded explicitly** with `git lfs push --all origin main`. Pushing commits alone had left forge's LFS store empty for this repo — the failure mode the "Why tarballs + LFS" note above now warns about.