Source control
Two layers. Do not merge them yet.
Layer 1 — Git (this repository)
Git ships the Next.js host. TypeScript, API routes, UI, ep binary.
| Question | Answer |
|---|---|
| Remote today | Cursor Origin (origin/main) |
Public elasticprojects deploy |
No |
| Vercel production | No from this agent. You run vercel login + vercel --prod |
| Latest push | main at 6064da5 (security docs, ep CLI, docs) |
Keep .git. Remove it only if you stop shipping a web app. That is not the plan.
git remote -v # see origin
git pull origin main # update host code
This repo is not on GitHub yet. Mirror there if you want Vercel git deploys.
Layer 2 — Elastic Projects (ep)
ep syncs organization project trees. The labs/elastic workspace holds
the host app source (TypeScript, docs, config) plus product notes.
| Question | Answer |
|---|---|
| Storage today | Local SQLite (elasticprojects.db) |
| Remote today | None for CLI. Demo seed only |
| Git remote? | No. Not a git protocol server |
npm run ep demo seed
npm run ep -- pull labs/elastic --dir ./product-tree
npm run ep -- push labs/elastic --dir ./product-tree -m "Notes"
ep does not replace git. It replaces dumping org files on a personal PDS.
Do not use one as the other
| Mistake | Result |
|---|---|
ep pull into repo root |
Overwrites README.md with product tree README |
Expect git push to update Spaces |
Git never talks to AT Protocol |
Expect ep push to deploy Vercel |
Vercel builds from git, not from labs/elastic |
Host code → git.
Org files → ep / web UI pull and push.
Ideal future — service as origin
Target shape (not built yet):
export ELASTICPROJECTS_URL=https://elasticprojects.example
ep login @you.bsky.social
ep remote add product labs/elastic # stores project ref + credentials
ep pull product --dir ./product-tree
ep push product -m "Charter update"
That is not git remote add elasticprojects …. Git and Elastic Projects use different protocols.
What we need before remote ep works like an origin:
- Public host with durable Postgres (not ephemeral SQLite)
- OAuth or API tokens for CLI
ep loginandep remotecommands- Live pull/push over HTTPS to your replica API (or direct Spaces XRPC from CLI)
Vercel build might later run:
ep pull product --dir ./_product && npm run build
Only after tokens and a durable store exist on the host.
Dogfood loop today
- Git — branch, commit, push host changes to Origin
ep— pulllabs/elasticto./product-tree, edit, push- Web UI — open local preview, pull same project, verify heads match
- Deploy —
vercel --prodfrom git when you are ready (see security.md)
Summary
| Tool | Owns | Remote today |
|---|---|---|
| Git | Application source | Cursor Origin |
ep |
Org project files | Local SQLite only |
| Elastic Projects host | UI + API + replica | Not deployed publicly |
Do not remove git in favor of ep. Add remote ep when the hosted service and auth are ready.