Initial implementation of gitfastr #1

open Maher Kassim wants to merge feat/initial-implementation into main
Full-stack Git repository manager built on Cloudflare Workers, D1, R2, and Pages.

## What this adds

- Git Smart HTTP protocol (push/clone/fetch over HTTPS)
- Custom TypeScript pack file parser and generator (zero runtime deps)
- REST API with 30 endpoints: auth, repos, browsing, merge requests, webhooks, settings
- Astro + Preact web UI with dark/light theme toggle
- D1 schema with 11 tables
- 49 passing unit tests

## Packages

- `packages/shared` — git protocol library (pkt-line, pack parse/generate, SHA-1, zlib, diff)
- `packages/worker` — Cloudflare Worker API + git protocol handlers
- `packages/ui` — Astro + Preact web UI deployed to Cloudflare Pages

Files changed (73)

A package.json
A packages/shared/package.json
A packages/shared/src/git/__tests__/delta.test.ts
A packages/shared/src/git/__tests__/diff.test.ts
A packages/shared/src/git/__tests__/object.test.ts
A packages/shared/src/git/__tests__/pkt-line.test.ts
A packages/shared/src/git/__tests__/sha1.test.ts
A packages/shared/src/git/delta.ts
A packages/shared/src/git/diff.ts
A packages/shared/src/git/object.ts
A packages/shared/src/git/pack-generate.ts
A packages/shared/src/git/pack-parse.ts
A packages/shared/src/git/pkt-line.ts
A packages/shared/src/git/sha1.ts
A packages/shared/src/git/zlib.ts
A packages/shared/src/index.ts
A packages/shared/src/types/index.ts
A packages/shared/src/utils/auth.ts
A packages/shared/src/utils/errors.ts
A packages/shared/tsconfig.json
A packages/shared/vitest.config.ts
A packages/ui/astro.config.mjs
A packages/ui/package.json
A packages/ui/src/layouts/Base.astro
A packages/ui/src/layouts/Repo.astro
A packages/ui/src/lib/api.ts
A packages/ui/src/pages/[owner]/[repo]/blob/[...refAndPath].astro
A packages/ui/src/pages/[owner]/[repo]/branches.astro
A packages/ui/src/pages/[owner]/[repo]/commit/[sha].astro
A packages/ui/src/pages/[owner]/[repo]/commits/[...ref].astro
A packages/ui/src/pages/[owner]/[repo]/index.astro
A packages/ui/src/pages/[owner]/[repo]/merge-requests/[number].astro
A packages/ui/src/pages/[owner]/[repo]/merge-requests/index.astro
A packages/ui/src/pages/[owner]/[repo]/merge-requests/new.astro
A packages/ui/src/pages/[owner]/[repo]/settings.astro
A packages/ui/src/pages/[owner]/[repo]/tree/[...refAndPath].astro
A packages/ui/src/pages/index.astro
A packages/ui/src/pages/login.astro
A packages/ui/src/pages/new.astro
A packages/ui/src/pages/register.astro
A packages/ui/src/pages/settings.astro
A packages/ui/tsconfig.json
A packages/ui/wrangler.toml
A packages/worker/db/migrations/0001_initial.sql
A packages/worker/package.json
A packages/worker/src/handlers/api/activity.ts
A packages/worker/src/handlers/api/auth.ts
A packages/worker/src/handlers/api/browse.ts
A packages/worker/src/handlers/api/merge-requests.ts
A packages/worker/src/handlers/api/repos.ts
A packages/worker/src/handlers/api/settings.ts
A packages/worker/src/handlers/api/webhooks.ts
A packages/worker/src/handlers/git/info-refs.ts
A packages/worker/src/handlers/git/receive-pack.ts
A packages/worker/src/handlers/git/upload-pack.ts
A packages/worker/src/index.ts
A packages/worker/src/middleware/auth.ts
A packages/worker/src/middleware/cors.ts
A packages/worker/src/middleware/error-handler.ts
A packages/worker/src/router.ts
A packages/worker/src/services/activity-service.ts
A packages/worker/src/services/browse-service.ts
A packages/worker/src/services/diff-service.ts
A packages/worker/src/services/object-store.ts
A packages/worker/src/services/ref-store.ts
A packages/worker/src/services/repo-service.ts
A packages/worker/src/services/webhook-service.ts
A packages/worker/tsconfig.json
A packages/worker/wrangler.toml
A pnpm-lock.yaml
A pnpm-workspace.yaml
A tsconfig.base.json
A turbo.json

Discussion