尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Tie up your loose ends.
Loose Ends turns messages and documents you paste in into a short list of open loops, each backed by the exact sentence it came from, and remembers why you closed them.
Status: started for Build Fest (Oct 2026) and not submitted; now a learning project in active development, with no deadline.
Once extraction ships, pasted text, and later the decisions and quotes used to answer Ask why, are sent to the configured AI provider: Google Gemini (PRD D42). On Gemini's free tier, Google may use prompts and responses to improve its products, and people at Google may read them. Contributors must use synthetic data only. Never paste or commit real personal messages or documents.
.nvmrc or engines field.package.json (packageManager).Install dependencies.
pnpm install
Start local Supabase without the analytics and vector containers. They can fail health checks on macOS, and the app does not need them.
pnpm exec supabase start -x vector,logflare
Create .env.local from the example.
cp .env.example .env.local
pnpm exec supabase status -o env
Then set these values in .env.local:
| Variable | Value |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | API_URL from the status output (http://127.0.0.1:54321) |
NEXT_PUBLIC_SUPABASE_ANON_KEY | ANON_KEY from the status output |
SITE_URL | http://127.0.0.1:3000 |
AI_PROVIDER | fake (replays recorded fixtures, no network calls, no key needed) |
AI_MODEL | recorded |
Start the dev server on 127.0.0.1 and open http://127.0.0.1:3000.
pnpm dev --hostname 127.0.0.1
Use 127.0.0.1, not localhost. Sign-in must return to the same origin it started from, and without --hostname 127.0.0.1 the dev server blocks the page's scripts at that address, so the sign-in button stays disabled.
Sign-in emails go to Mailpit at http://127.0.0.1:54324.
Google sign-in. This is off by default. Follow the comments above [auth.external.google] in supabase/config.toml and in .env.example:
SUPABASE_AUTH_EXTERNAL_GOOGLE_ENABLED, SUPABASE_AUTH_EXTERNAL_GOOGLE_CLIENT_ID and SUPABASE_AUTH_EXTERNAL_GOOGLE_SECRET in supabase/.env (gitignored), then restart Supabase.NEXT_PUBLIC_AUTH_GOOGLE_ENABLED=true in .env.local.Gemini. Set AI_PROVIDER=google, AI_MODEL=gemini-3.6-flash and AI_API_KEY (a key from Google AI Studio) in .env.local. Live calls may count against your quota.
| Task | Command |
|---|---|
| Dev server | pnpm dev --hostname 127.0.0.1 |
| Typecheck | pnpm typecheck |
| Lint | pnpm lint |
| Unit + integration tests | pnpm test |
| Live Supabase checks (needs local Supabase running) | pnpm test:supabase |
| E2E tests (recorded AI fixtures, local Supabase) | pnpm test:e2e |
Extraction + Ask-why eval (live model, uses quota; reads AI_PROVIDER, AI_MODEL and AI_API_KEY from the shell environment, not .env.local) | pnpm eval |
pnpm test:e2e serves the app on 127.0.0.1:3000 and reuses a server already running there, so stop pnpm dev first.
MIT. See LICENSE.