Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
Commit0f7de41unknown_key

chore: fix OCI migration 0083→0084 collision; tick off container registry as done

Claude committed on June 6, 2026Parent: e2f28f9
2 files changed+110f7de41d719a498ad87baaaa383a748a1791566f
2 changed files+1−1
ModifiedTODO.md+1−1View fileUnifiedSplit
2525
2626These are confirmed missing by direct code inspection.
2727
28- [ ] **Container registry (Docker/OCI)** — No files exist for this anywhere in the codebase. npm package registry is complete (`src/lib/packages.ts`). The OCI push/pull protocol needs implementing: `GET /v2/`, `HEAD /v2/:name/blobs/:digest`, `POST /v2/:name/blobs/uploads/`, `PUT /v2/:name/manifests/:ref`. Without Docker support, teams with containerised apps can't fully leave GitHub.
28- [x] 2026-06-06 **Container registry (Docker/OCI)**`src/routes/oci-registry.ts` implements full OCI Distribution Spec v1.0: GET/HEAD/PUT/DELETE blobs, chunked PATCH uploads, GET/PUT/DELETE manifests, tags list, catalog. Blobs stored at `${OCI_STORE_PATH}/blobs/sha256/<digest>`. `drizzle/0084_oci_registry.sql` adds `oci_repositories` + `oci_tags`. Basic auth via `api_tokens` table.
2929- [x] 2026-06-06 **Redis SSE fan-out**`src/lib/sse.ts` rewritten. When `REDIS_URL` or `VALKEY_URL` is set, uses two `Bun.RedisClient` instances (pub + sub) with `autoReconnect`. Topic-scoped SUBSCRIBE/UNSUBSCRIBE. On disconnect, re-subscribes all channels. Falls back to local delivery if Redis unreachable. In-memory path unchanged when no URL set. Zero API changes to callers.
3030- [x] 2026-06-06 **Workflow cache SAVE**`saveCacheEntry()` implemented in `src/lib/actions/cache-action.ts`. DB-backed via `workflow_run_cache` Postgres table; tarballs paths, SHA-256 hashes, 100MB cap, upserts content. Wired in `src/lib/workflow-runner.ts` post-job. LOAD unchanged.
3131- [x] 2026-06-06 **Pack-content ruleset enforcement**`commit_message_pattern`, `blocked_file_paths`, `max_file_size` now blocking at push time via pre-receive hook (`GIT_CONFIG_COUNT` env injection). Git commands: `git log --format="%H %s"`, `git diff --name-only`, `git cat-file -s`. Wired in `src/routes/git.ts` (HTTP) and `src/lib/ssh-server.ts` (SSH). All 10 push-policy + 23 ruleset tests pass.
Renameddrizzle/0083_oci_registry.sqldrizzle/0084_oci_registry.sql+0−0View fileUnifiedSplit
No textual changes.