尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Formerly Nightwatch; renamed on 17 October 2026 for a community of snorers working on it together. Internal names (the app ID com.threeft2.nightwatch, the Expo slug and link scheme, the nightwatch database schema and the NIGHTWATCH_* secrets) are unchanged, so installed apps update in place; the name people see comes from app.json and src/brand.ts.
Record your snoring, see it against your watch's data, and find out which remedies helped people like you. The product plan and development spec are in docs/project-plan.md, the screen mockups in docs/screens.html (open in a browser), and progress against every item in the plan in docs/status.md. This README covers what is built, how to run it, and the decisions taken where the spec was open.
Phases 0 to 3 are built. Nothing has run on a phone yet: everything below is checked by unit and integration tests, typechecks, lint, JS bundle builds for both platforms and expo prebuild, but not on a device.
| Phase | What is in the repo |
|---|---|
| 0 Foundations | Expo app, local SQLite schema, 42-entry catalogue, scoring, detection v0, overnight capture (expo-audio stream plus an Android foreground service), interruption handling, labelling and evaluation tools (tools/) |
| 1 Parity | Clips of the loudest moments (WAV, with groundwork for Opus), full This Morning screen (score, timeline, clips, editable log, typical-night prompt, interrupted banner), Trends (7/30/90 nights, moving average, snapshots), onboarding, Settings (export, delete, sensitivity, auto-stop, reminders), automatic stop in the morning |
| 2 Personal insight | Apple Health and Health Connect import, aligned overlay and nightly summary, template morning summary, 14-night remedy tests with a verdict and confidence, doctor's report PDF on the phone, RevenueCat paywall and locks |
| 3 Community | Required sign-in (Apple, Google, email link), explicit consent for the account to keep nights (then two-way sync), contribution opt-in, community dashboard (Everyone, People like you, early and hidden states, combinations), remedy detail with your result against the crowd, Amazon links with disclosures, the backend (server/, runs on a VPS or Supabase), nightly aggregation job, methods page (site/methods.html) |
Partner mode (Household) is not built: the brief holds it for the first update after launch.
docs/ project plan, screen mockups, status against the plan, design notes
shared/ code used by both app and server
api.ts the /v1 API contract
remedyEffect.ts the remedy-effect algorithm (eligibility, within-person deltas, community figures)
profile.ts, amazon.ts, stats.ts
catalogue/catalogue.json launch catalogue (app seed and server seed)
src/ the app
app/ routes (Expo Router)
domain/ pure logic: scoring, detection, audio features, health, summary, experiments
data/ SQLite schema and repositories (behind the Db interface)
recording/ RecordingSession: capture → features → SQLite → scored night; launch recovery
clips/ clip collection, codec registry, transcoding
native/ capture: expo-audio stream, simulator
health/ Apple Health and Health Connect readers
sync/, api/, community/ server client, sync engine, cached community snapshot
billing/, auth/, state/ RevenueCat, session storage, app-wide state
report/ doctor's report
screens/, ui/ shared screen components, UI kit and charts
modules/nightwatch-recording-service/ Android foreground service (Kotlin)
server/ API (Hono) and nightly job; see server/README.md
supabase/ Supabase function wrappers and migrations (same server code)
tools/ labelling and detector evaluation; see tools/README.md
scripts/make-icons.mjs draws the app icon and renders every icon file (npm run icons)
assets/icon-src/ the icon as SVG, and its layers for Apple's Icon Composer
site/methods.html public methods page
__tests__/ app tests (Jest); data-layer tests run on node:sqlite
The app has native modules, so it needs a development build rather than Expo Go.
npm install
npm run ios # or: npm run android (local Xcode / Android Studio)
# or in the cloud: npx eas-cli@latest build --profile development
npm start # dev server for an installed development build
npm run start:simulated # same, with the simulated microphone (30 s of night per real second)
npm test && npm run typecheck && npm run lint
cd server && npm install && npm test # API and aggregation (PGlite, no database needed)
In development builds, with no server configured, sign-in offers a development account, and Settings has a switch to unlock paid features.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗