You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Post-cycle hotfix — production HTTP 500 on `GET /api/dashboard` triggered by Gmail sync introducing a `gmail_sync` statement type that Zod schema validation did not accept.
6
14
7
15
**Root cause:**`layerAFactsSchema` in `coaching-facts.ts` used `z.enum(['bank_account', 'credit_card'])` — `'gmail_sync'` was absent. After a Gmail sync run, `fetchDashboardLegacy` (no `statement_type` filter) would pick the most-recently-created `gmail_sync` statement. `buildLayerAFacts` then called `layerAFactsSchema.parse({ statement_type: 'gmail_sync' })`, throwing a `ZodError` caught by the route's `try/catch` and returned as HTTP 500.
8
16
9
17
**Fixes applied:**
18
+
10
19
1.**`coaching-facts.ts:31`** — Added `'gmail_sync'` to `layerAFactsSchema``statement_type` enum. (crash fix)
11
20
2.**`statements.ts:1`** — Added `'gmail_sync'` to the `StatementType` TypeScript union. (type correctness)
12
21
3.**`dashboard-legacy.ts:50`** — Added `AND s.statement_type != 'gmail_sync'` to the `statementId=null` WHERE clause so the legacy path never selects Gmail synthetic statements. (behavior fix)
Copy file name to clipboardExpand all lines: README.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ A simulated, end-to-end product development organization where specialized AI ag
6
6
7
7
> **Live:**[ai-product-os-493e.vercel.app](https://ai-product-os-493e.vercel.app/) | Built and operated with [Claude Code](https://claude.ai/code). You need Claude Code to run the slash commands.
8
8
>
9
-
> Deploy note: `ai-product-os-493e`and `money-mirror` are separate Vercel projects. MoneyMirror production deploys from `main`; the landing app is path-gated so it should only build when `apps/landing` changes.
9
+
> Deploy note: `ai-product-os-493e`is the current landing Vercel project. MoneyMirror was a separate Vercel project in earlier cycles; its legacy app code has been removed from this monorepo.
10
10
11
11
---
12
12
@@ -40,7 +40,8 @@ A simulated, end-to-end product development organization where specialized AI ag
40
40
| 006 |[ozi-reorder](apps/ozi-reorder/)| Reorder reminder experiment for dark-store baby essentials (50/50 test vs. control, 7 PostHog events) | Next.js, Neon, PostHog | Complete |
41
41
| 007 |[ozi-insights](apps/ozi-insights/)| Synthetic Freshdesk support data for order reliability research (30 tickets, grounded in Play Store) | Data workspace | Explored |
| 009 |[money-mirror](apps/money-mirror/)| AI personal finance coach — parses Indian bank + credit card PDFs, reveals perception gap, delivers consequence-first nudges. Weekly recap email. | Next.js 16, Neon Auth, Neon DB, Gemini 2.5 Flash, Resend | Live |
43
+
| 009 | money-mirror | AI personal finance coach — parses Indian bank + credit card PDFs, reveals perception gap, delivers consequence-first nudges. Weekly recap email. | Next.js 16, Neon Auth, Neon DB, Gemini 2.5 Flash, Resend | Archived |
44
+
| 013 |[research-copilot](apps/research-copilot/)| Chat-first PM research workspace with plan approval, visible tool orchestration, cited findings, and Markdown export. | Next.js 16, Neon Postgres, OpenRouter, PostHog | T0 |
44
45
| — |[landing](apps/landing/)| Framework landing page showcasing pipeline, agents, and shipped products | Next.js, Tailwind CSS | Live |
45
46
46
47
Each issue number maps directly across all folders: `experiments/ideas/issue-NNN.md`, `experiments/exploration/exploration-NNN.md`, `experiments/plans/plan-NNN.md`, and `experiments/results/*-NNN.md`.
@@ -132,6 +133,7 @@ If Linear is unavailable, the Linear utility command should fail explicitly. The
132
133
3.**Run commands sequentially** — pass the command file from [`commands/`](commands/) to Claude Code (e.g., paste `commands/create-issue.md` content and follow it)
133
134
4.**Read the knowledge base first** — every command in the pipeline reads all files in [`knowledge/`](knowledge/) before generating output to avoid repeating past mistakes
134
135
5.**Track gates, not just progress** — check `project-state.md` after each command; blocked = do not proceed
136
+
6.**Validate repo changes** — run `bun run validate` from the repo root before accepting agent work
135
137
136
138
**Default tech stack** (used across all apps):
137
139
@@ -146,8 +148,8 @@ If Linear is unavailable, the Linear utility command should fail explicitly. The
146
148
```bash
147
149
cd apps/[project-name]
148
150
cp .env.local.example .env.local # fill in your keys
149
-
npm install
150
-
npm run dev
151
+
bun install
152
+
bun run dev
151
153
```
152
154
153
155
Each app includes a `schema.sql` (idempotent) that must be applied in your database editor before first run.
0 commit comments