尚未偵測到更新。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.