Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
b99f4f3
docs: add Vercel migration design spec
crodris Aug 13, 2026
3f67289
docs: add threat model findings to Vercel migration spec
crodris Aug 13, 2026
d8c587d
docs: rebuild database instead of restoring dump
crodris Aug 13, 2026
da7f274
docs: add Vercel migration implementation plan
crodris Aug 13, 2026
f089124
test: add Vitest to web app
crodris Aug 13, 2026
709b86b
test: add test script to root package.json for Turborepo integration
crodris Aug 13, 2026
07bd57d
build: target Vercel preset and enable Workflow DevKit plugin
crodris Aug 13, 2026
bdf87f3
feat(db): configure client for Supabase transaction pooling
crodris Aug 13, 2026
8dc0d50
feat(web): add jose-backed session token utility
crodris Aug 13, 2026
455974c
feat(web): add request auth helper with retained user lookup
crodris Aug 13, 2026
634483d
feat(web): port health and auth routes to server routes
crodris Aug 13, 2026
6c80952
feat(web): port repositories and push routes to server routes
crodris Aug 13, 2026
c0c9077
feat(web): port worker processors to workflow steps
crodris Aug 13, 2026
ecb9454
fix(web): harden Retry-After parsing in the GitHub error classifier
crodris Aug 13, 2026
b68b2ef
fix(github): make check run posting idempotent under step retry
crodris Aug 13, 2026
060efd0
feat(web): add durable webhook and maintenance workflows
crodris Aug 13, 2026
ffff60a
feat(web): wire the dev-only test-notify route to a workflow
crodris Aug 13, 2026
cd8a6d9
feat(web): port GitHub webhook route with verify-before-write ordering
crodris Aug 13, 2026
395abbd
fix(web): implement branch-deletion cleanup and curative redelivery f…
crodris Aug 13, 2026
ae5a3ba
fix(web,db): dedup webhook redelivery on dispatchedAt, not row presence
crodris Aug 13, 2026
7ab56cb
feat: replace BullMQ job scheduler with Vercel Cron
crodris Aug 13, 2026
17a7176
test(web): integration-test the durable webhook workflow
crodris Aug 13, 2026
34e8e3a
fix(deps): unify drizzle-orm by hoisting pglite to the workspace root
crodris Aug 13, 2026
7e3480e
chore: expose the workflow integration suite from the repo root
crodris Aug 13, 2026
daf5f6c
chore: remove Railway apps, BullMQ and Redis
crodris Aug 13, 2026
1735468
chore: batch of deferred cleanups from the Vercel migration branch
crodris Aug 13, 2026
30c91de
fix: address task 13 review findings
crodris Aug 13, 2026
757eecd
fix(web): restore /api prefix on client auth/push calls, close review…
crodris Aug 13, 2026
e71badb
docs: add Vercel cutover runbook
crodris Aug 13, 2026
b4175b5
chore: record ship pipeline profile
crodris Aug 13, 2026
335d0ef
fix(vercel-migration): bound function duration, fix pooler exhaustion…
crodris Aug 13, 2026
d838e77
docs(db): switch database provider from Supabase to Neon
crodris Aug 13, 2026
bed6df5
fix(vercel-migration): batch syncRepository writes, raise maxDuration…
crodris Aug 13, 2026
b9805aa
fix(vercel-migration): Neon comments, chunked branch insert, supersed…
crodris Aug 13, 2026
8ea83ae
chore: untrack internal ship review transcript
crodris Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
# Database
# Database (Neon in production, plain Postgres locally)
#
# In production these are two DIFFERENT Neon endpoints, distinguished by
# hostname rather than port: the pooled one carries a `-pooler` suffix.
# DATABASE_URL=postgresql://user:pass@ep-xxx-pooler.region.aws.neon.tech/overlap?sslmode=require
# DIRECT_URL=postgresql://user:pass@ep-xxx.region.aws.neon.tech/overlap?sslmode=require
# Setting both to the same endpoint works until it does not: migrations need
# the direct one, and the app needs the pooled one.
#
# Locally, a single Postgres accepts both.
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/overlap

# Redis
REDIS_URL=redis://localhost:6379
DIRECT_URL=postgresql://postgres:postgres@localhost:5432/overlap

# GitHub App
GITHUB_APP_ID=
Expand All @@ -14,15 +21,14 @@ GITHUB_CLIENT_SECRET=
# App
SESSION_SECRET=
APP_URL=http://localhost:3000
API_URL=http://localhost:3001
GITHUB_APP_SLUG=overlap-connector
CRON_SECRET=

# Web Push (VAPID)
VAPID_PUBLIC_KEY=
VAPID_PRIVATE_KEY=
VAPID_SUBJECT=https://your-app-url.up.railway.app
VAPID_SUBJECT=https://your-production-domain.example

# Frontend (prefixed with VITE_ for client-side access)
VITE_API_URL=http://localhost:3001
VITE_GITHUB_APP_SLUG=overlap-connector
VITE_VAPID_PUBLIC_KEY=
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ node_modules
dist
.next
.output
.vercel
.turbo
*.tsbuildinfo

Expand Down Expand Up @@ -35,3 +36,6 @@ coverage
# Database
drizzle/*.sql
prod_dump.sql

# Internal ship-run review transcripts
.ship-fix-report.md
6 changes: 6 additions & 0 deletions .ship/config.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# ship pipeline profile
verify: npx turbo typecheck lint test --force && pnpm test:integration && pnpm --filter @overlap/web build # asked
base: main
release: none
post-merge: none
pr-hook: none
22 changes: 0 additions & 22 deletions apps/api/Dockerfile

This file was deleted.

33 changes: 0 additions & 33 deletions apps/api/package.json

This file was deleted.

11 changes: 0 additions & 11 deletions apps/api/railway.json

This file was deleted.

8 changes: 0 additions & 8 deletions apps/api/railway.toml

This file was deleted.

81 changes: 0 additions & 81 deletions apps/api/src/index.ts

This file was deleted.

69 changes: 0 additions & 69 deletions apps/api/src/plugins/auth.ts

This file was deleted.

Loading