尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A personal (and soon multi-user) operating system for life, home, and work.
Capture messy notes. AiEA proposes structure — one-time vs recurring, priorities, deadlines, people follow-ups — you confirm. Then it surfaces a Today board, Daily Brief, and in-app pings so you stay ahead.
• Next.js 16 (App Router) + TypeScript + Tailwind
• Prisma 7 + SQLite (local); schema is workspace-scoped for multi-tenant later
• SpaceXAI / xAI (grok-4.5) for capture + brief (optional; heuristics work without a key)
• PWA manifest for installable web app查看完整 README ↗A personal (and soon multi-user) operating system for life, home, and work.
Capture messy notes. Farm Manager proposes structure — one-time vs recurring, priorities, deadlines, people follow-ups — you confirm. Then it surfaces a Today board, Daily Brief, and in-app pings so you stay ahead.
grok-4.5) for capture + brief (optional; heuristics work without a key)# 1. Install deps
npm install
# 2. Env
cp .env.example .env
# Optional: set XAI_API_KEY from https://console.x.ai
# 3. Database
npm run db:migrate
# or: npx prisma migrate dev
# 4. PWA icons (optional)
npm run icons
# 5. Dev server
npm run dev
Open http://localhost:3000 → Get started → create an account.
| Flow | What happens |
|---|---|
| Capture | Paste brain-dump → AI proposes tasks → you accept |
| Today | Priority + due-today + follow-ups |
| People | Open loops per person |
| Recurring | Templates; occurrences auto-materialize when due |
| Daily Brief | Morning-style briefing + coach tips |
| Pings | Bell menu for due reminders |
| Script | Purpose |
|---|---|
npm run dev | Dev server |
npm run build | Production build |
npm run db:migrate | Apply migrations (local SQLite) |
npm run db:push:turso | Apply Prisma migrations to Turso (prod/preview — Vercel build does not migrate) |
npm run db:studio | Prisma Studio |
npm run icons | Generate PWA icons |
| Var | Purpose |
|---|---|
DATABASE_URL | SQLite path (file:./dev.db) |
TURSO_DATABASE_URL / TURSO_AUTH_TOKEN | Production libSQL. Preview uses its own database, aiea-db-preview, not production. |
Starting the app does not copy a bf-maintenance database and does not change the schema. Production (aiea-cyan) stays on the old schema until you push the schema immediately before merge, then merge right away — the code that is live now breaks on the new schema.
Back up first (turso db shell <db-name> ".dump" or a Turso branch). Count tasks before and after (SELECT COUNT(*) FROM Task). Find the workspace with SELECT id, name, createdAt FROM Workspace. Then:
vercel env pull .env.vercel --environment=production --yes
FARM_SCHEMA_PUSH=1 node --env-file=.env.vercel scripts/push-turso-schema.mjs
Import only after that backup, into the workspace id you looked up. Load the production env with --env-file. BF_SOURCE_* stays on this command, never in Vercel.
FARM_IMPORT_ALLOW_REMOTE=1 \
BF_SOURCE_DATABASE_URL="libsql://..." \
BF_SOURCE_AUTH_TOKEN="..." \
npx tsx --env-file=.env.vercel scripts/import-bf-data.ts --workspace <id>
A file database needs an explicit --local. With TURSO_DATABASE_URL unset and no --local, the script refuses so it cannot write dev.db:
BF_SOURCE_DATABASE_URL="file:./bf.db" \
npx tsx scripts/import-bf-data.ts --local --workspace <id>
| XAI_API_KEY | SpaceXAI / xAI key — console.x.ai |
| XAI_MODEL | Optional model override (default grok-4.5) |
| XAI_BASE_URL | Optional API base (default https://api.x.ai/v1) |
| AIEA_TIMEZONE | Optional IANA tz for AI date reasoning (e.g. America/New_York) |
| AUTH_SECRET | Session hardening (change in prod) |
| CRON_SECRET | Auth for /api/cron/materialize-schedules (daily 12:00 UTC) |
| BF_SOURCE_DATABASE_URL / BF_SOURCE_AUTH_TOKEN | Old bf-maintenance database for scripts/import-bf-data.ts. One-shot, on your machine. Never set these in Vercel. |
| FARM_IMPORT_WORKSPACE_ID | Workspace that receives that import (or pass --workspace) |
| FARM_SCHEMA_PUSH | Set to 1 to allow scripts/push-turso-schema.mjs on a remote database. Not a Vercel env var. |
| FARM_IMPORT_ALLOW_REMOTE | Set to 1 to allow the import script to write to Turso. Not a Vercel env var. |
Remove these from Vercel when this app ships: BF_MAINTENANCE_URL, BF_MAINTENANCE_ORIGIN, NEXT_PUBLIC_BF_MAINTENANCE_URL, BF_INTEGRATION_SECRET. Keep CRON_SECRET, TURSO_DATABASE_URL, TURSO_AUTH_TOKEN, AUTH_SECRET, and XAI_*. After the import, freeze bf-maintenance.vercel.app (no further deploys or edits).
.env (never commit this file):XAI_API_KEY="xai-..."
npm run dev) so Next.js reloads env.GET /api/ai/status?ping=1Without a key, Capture still works via local heuristics.
Private — all rights reserved unless you choose otherwise.
Hong / agents: use poteto-mode with the project skill .cursor/skills/verify-aiea/ (launch → doctor → Playwright drive → evidence). Confirm ~/.cursor/rules/pstack-models.mdc on the box. One-shot:
./.cursor/skills/verify-aiea/scripts/gate.sh --local --feature capture-accept
Live/post-auth needs AIEA_SMOKE_EMAIL + AIEA_SMOKE_PASSWORD (both; smoke user only — never personal / 1Password). When unset, gate.sh --live-smoke clean-skips (CI stays green). On a pull request it also clean-skips: production is still the pre-merge app, while this revision’s doctor requires the public landing page on logged-out GET / and 307 to /tasks when signed in. That check stays strict on main. Hong creates the smoke User row; verify does not. Set CI secrets with gh secret set (see .cursor/skills/verify-aiea/SKILL.md). Legacy AIEA_EMAIL/AIEA_PASSWORD are demoted — migrate to SMOKE names. No separate BF_* pair for smoke login. Parallel to bf-maintenance verify — do not conflate with BF PIN / #20 login threads.