chore: commit all changes

This commit is contained in:
2026-02-26 13:26:18 -05:00
parent fd8edb1f21
commit 74fee52c4e
26 changed files with 4705 additions and 1108 deletions

View File

@@ -10,8 +10,10 @@ Turbopack-first rebuild of a fiscal.ai-style terminal with OpenClaw integration.
- Turbopack for `dev` and `build`
- Better Auth (email/password + magic link)
- Drizzle ORM (PostgreSQL) + Better Auth Drizzle adapter
- Internal API routes via Elysia catch-all (`app/api/[[...slugs]]/route.ts`)
- Durable local task engine and JSON data store
- Internal API routes via Elysia app module (`lib/server/api/app.ts`)
- Eden Treaty for type-safe frontend API calls
- Workflow DevKit + Postgres World for durable background task execution
- PostgreSQL-backed domain storage (watchlist, holdings, filings, tasks, insights)
- OpenClaw/ZeroClaw analysis via OpenAI-compatible chat endpoint
## Run locally
@@ -24,11 +26,12 @@ bun run dev
Open [http://localhost:3000](http://localhost:3000).
Better Auth requires PostgreSQL. Set `DATABASE_URL`, `BETTER_AUTH_SECRET`, and `BETTER_AUTH_BASE_URL` in `.env.local`.
Generate and apply auth schema migrations before starting the app:
Generate/apply schema migrations and set up the workflow world tables before starting the app:
```bash
bun run db:generate
bun run db:migrate
bun run workflow:setup
```
## Production build
@@ -51,7 +54,6 @@ The base Docker Compose now includes an internal PostgreSQL service (`postgres`)
On container startup, the app now applies Drizzle migrations automatically before launching Next.js.
For Coolify/remote Docker Compose, only app container port `3000` is exposed internally (no fixed host port bind), avoiding host port collisions.
If you use an external Postgres instance, set `DATABASE_URL` explicitly.
Runtime data persists in the `app_data` volume (`/app/data` in container).
Docker images use Bun (`oven/bun:1.3.5-alpine`) for build and runtime.
## Environment
@@ -73,13 +75,18 @@ OPENCLAW_BASE_URL=http://localhost:4000
OPENCLAW_API_KEY=your_key
OPENCLAW_MODEL=zeroclaw
SEC_USER_AGENT=Fiscal Clone <support@fiscal.local>
WORKFLOW_TARGET_WORLD=@workflow/world-postgres
WORKFLOW_POSTGRES_URL=postgres://postgres:postgres@localhost:5432/fiscal_clone
WORKFLOW_POSTGRES_JOB_PREFIX=fiscal_clone
WORKFLOW_POSTGRES_WORKER_CONCURRENCY=10
```
If OpenClaw is unset, the app uses local fallback analysis so task workflows still run.
## API surface
All endpoints below are handled by Elysia in `app/api/[[...slugs]]/route.ts`.
All endpoints below are defined in Elysia at `lib/server/api/app.ts` and exposed via `app/api/[[...slugs]]/route.ts`.
- `ALL /api/auth/*` (Better Auth handler)
- `GET /api/health`