尚未检测到更新。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.