尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Base44 App: Vibe Check
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
See how the people and habits in your life affect you. A free, private
journal with patterns, weekly and monthly reports, and practices for hard
moments. No AI reads your journal.
Vibe Check's product foundation makes
daily reflection, the orbit, relationship and habit charts, full history,
and weekly and monthly reports with somatic practices matched to stress
patterns the free baseline for everyone. It helps users notice patterns and
practice responses that fit their own needs and values. Optional paid systems add
deeper interpretations; the core experience requires no external AI account.檢視完整 README ↗See how the people and habits in your life affect you. A free, private journal with patterns, weekly and monthly reports, and practices for hard moments. No AI reads your journal.
Vibe Check's product foundation makes daily reflection, the orbit, relationship and habit charts, full history, and weekly and monthly reports with somatic practices matched to stress patterns the free baseline for everyone. It helps users notice patterns and practice responses that fit their own needs and values. Optional paid systems add deeper interpretations; the core experience requires no external AI account.
The free baseline is implemented: short check-ins and drafts, a full journal, people and habit filters, uncapped history retrieval, weekly/monthly reports, source-linked stress patterns, eleven practical invitations, saved outcomes, and a private export preview with optional password encryption. Seven optional chakra plant companions open journal prompts. All matching and reports run without sending journal text to an AI provider. Paid packaging is not enabled.
Schema additions are in supabase/migrations/20260908191348_vibe_living_patterns.sql.
The report engine recomputes from current entries, so corrections and deletions
carry through to charts, reports, and exports. Missing days stay visible.
src/components/ui/), framer-motion, recharts.supabase/migrations/.vercel.json).npm install
npm run dev
Create .env.local with the Supabase project credentials:
VITE_SUPABASE_URL=https://<project-ref>.supabase.co
VITE_SUPABASE_ANON_KEY=<anon key>
Without these the app boots to a loud misconfiguration notice on the sign-in screen.
| Command | What it does |
|---|---|
npm run dev | Vite dev server |
npm run build | Production build into dist/ (also emits /version.json for the update toast and /sw.js, the service worker) |
npm run preview | Serve the production build locally |
npm run lint | ESLint over the repo |
npm test | Vitest unit suites (the resonance/wisdom engines are exhaustively tested) |
npm run typecheck | tsc over jsconfig.json |
npm run check:bundle | First-load JavaScript budget; run after npm run build |
npm run test:e2e | Browser tests: every page, the main flows and WCAG A/AA checks, on desktop and phone |
npm run test:e2e builds the app into dist-e2e/ and runs Playwright against
it, under the production headers from vercel.json (vite preview sends
them, Content-Security-Policy included). The app talks to a stand-in Supabase
(e2e/support/mock-supabase.js): auth is answered in JavaScript, and table
requests run as SQL in an in-process Postgres (PGlite) built from
supabase/migrations/ (e2e/support/database.js), as the signed-in person
with their JWT claims. Types, NOT NULL, CHECK, unique keys and the migrations'
row-level security policies apply as they do live. Each test starts from an
invented person (e2e/support/persona.js) at a fixed clock, so no network or
account is needed. A migration that needs something more from the Supabase
platform fails the tests with a pointer to PLATFORM in database.js.
A test fails when a page throws or logs an error, when one of the app's files
fails to load, when the app makes a request the mock refuses or doesn't
model, or when it contacts any other site. The first run needs a browser:
npx playwright install chromium.
e2e/offline.spec.js checks opening without a connection. Each of its tests
starts its own server for the test build and stops it partway through, since
Playwright's offline switch doesn't reach the service worker.
e2e/kept-saves.spec.js checks saves kept without a connection, with the
stand-in Supabase out of reach (backend.control.offline) or losing answers
on the way back (backend.control.loseAnswers).
The service worker (src/service-worker.js, built into /sw.js by
vite.config.js) lets the app open without a connection. It keeps app files
only, never records: sign-in, records, and other sites always go to the
network.
_vibe_version, from the update notice) always waits for
the network.OFFLINE_PAGES in
vite.config.js). Other pages are kept once they've been opened.vibe-build meta tag), not in the scripts, so the libraries, styles,
and fonts keep their file names across builds./version.json)
rather than trusting navigator.onLine, which stays true on a network
without internet: no answer means no connection, a different build means
an update, and otherwise the load just failed.To switch it off for everyone: in src/main.jsx, replace the registration
with code that unregisters any existing worker, and deploy a worker that
deletes the vibe-app- and vibe-meta caches and unregisters itself (see
the comment at the top of src/service-worker.js).
Saves made without a connection are kept on the device and sent later
(src/lib/kept-saves.js, sent by src/features/shell/KeptSaves.jsx):
base, its updated_at), and earlier versions kept here
(prior). If the account holds a different version, saved somewhere else,
it isn't written over: the person chooses on Today (or in the journal) to
save their version or discard it. A check-in begun while Today couldn't
load the history, and a kept check-in or journal change reopened and saved
again, go through the same check, even once the connection is back.src/api/entities.js are tried again on a dropped connection
(the Supabase client waits 1, 2 and 4 seconds), except while the device
reports it's offline: then they fail at once, so Today and the check-in
open without the wait.src/lib/ — pure logic: dates, record days, boundaries, crypto export, and
the resonance + wisdom engines (src/lib/resonance/,
src/lib/wisdom/). Keep this layer pure and unit-tested.src/features/ — feature UI grouped by surface (today, loom, practice,
patterns, people, shell).src/pages/ + src/pages.config.js — routed pages.src/api/ — thin Supabase adapters (supabase.js, entities.js, and the
Base44-compatibility facade base44Client.js).supabase/migrations/ — schema, applied via the Supabase CLI or MCP
(supabase db push / apply_migration).docs/ — specs, plans, and roadmaps (see
docs/roadmap/2026-09-29-expert-review-plan.md for the current plan).Copy speaks plainly, with no persona (the plant voice was retired on October 2, 2026). Optional plant companions offer deeper chakra reflections. The current chakra pairings are authored reflective invitations, not medical or universal traditional claims.
The current direction is Nature Sanctuary, with the September 8 woodland palette: moss, fern, deep forest, warm bark, and weathered brass. The B1/Breath mark, botanical imagery, fine-line symbols, serif typography, and calm motion carry this across the app.
See the current visual guidance for palette
roles, art direction, motion, and application by screen. This supersedes the
older Golden Hour and twilight visual guidance. The implementation uses
shared sanctuary colors with compatible --gh-* aliases in src/index.css.
Fonts (Instrument Serif and Manrope, SIL Open Font License) are bundled from
Fontsource packages, so pages request nothing from other sites.
See asset provenance and playback behavior.
Without signing in, visitors get the front page with the free pledge (/),
help-now practices (/help-now), Support now, and the privacy, terms, and
support pages. /signin and /signup open the sign-in form in either mode.
Deletion covers the full Vibe Check history, including journal entries, drafts,
practice sessions, report reflections, and preferences. Campground and Daily
Digest records and their shared sign-in remain protected.
The completion migration is
supabase/migrations/20260908235730_complete_vibe_account_deletion.sql; it and
the updated delete-account Edge Function were applied for this release.
supabase/tests/delete_vibe_data.sql verifies generated fixtures inside a
rolled-back subtransaction. The shared project has migration history from
multiple apps: reconcile remote history before any broad supabase db push.