CopilotKit / CopilotKit/outpost
deploy: apps/web has no schema-drift guard and will boot against a schema the worker refuses
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7
- Forks
- 3
- Avg merge
- 7d 16h
- Merged PRs (30d)
- 15
Description
Follow-up from #180, which added a drift guard to apps/worker/start.sh only.
apps/web/start.sh runs a bare prisma migrate deploy against the same database with no drift check. After #180, a drifted database blocks the worker while web deploys happily and serves traffic against a schema it does not match.
Two specific consequences:
- The failure class #180 fixes — a migration recorded as applied but never effective — is not worker-specific. Web reads the same database.
- #180's repair migration asserts its own postcondition and fails loudly on a mis-shaped
SystemConfig. But if web deploys first, it applies that migration with no guard around it, so the repair window can close before the worker ever looks.
Either extract the guard into a script both services source, or state in apps/worker/start.sh why web is deliberately exempt. Note the guard is intentionally crude (any difference is fatal, with OUTPOST_ALLOW_SCHEMA_DRIFT as the release valve) — see the comment block in apps/worker/start.sh for why a cleverer classifier was removed.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the guard comment block in apps/worker/start.sh, then compare its entry point with apps/web/start.sh and the bare prisma migrate deploy. Determine whether the guard should be shared or web should be explicitly exempt; done means both services have consistent, documented drift behavior and the OUTPOST_ALLOW_SCHEMA_DRIFT release valve remains clear.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- databases, devops
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100