Status Trio
Status Trio는 macOS 메뉴바 앱으로 Wi‑Fi·배터리·볼륨을 하나의 아이콘에 통합합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The complete FLOW web app, installable as a Progressive Web App. All files must stay together at the repo root (they reference each other with relative paths) — do not nest them in a subfolder.
index.html — the app itself (points at the production Supabase
project siqntfkpdstikrqffmep). Built from src/ — do not edit it
directly: change the file in src/ and run node tools/build.js
(see src/README.md). Both are committed; the tests
fail if they ever differ.src/ — the source of index.html, one file per part of the app
(pages, modals, styles, and the JavaScript by area: sync, ROB,
planner, loadings, deals…). Not deployed.tools/build.js — joins src/ into index.html (plain Node, no
dependencies). Not deployed.manifest.json — PWA metadata (name, icons, theme color)service-worker.js — caches the app shell (network-first) and the
exact-version-pinned CDN libraries (cache-first) so the app can open
offline; Supabase calls and Google Fonts always go straight to the networkvercel.json — security headers (Content-Security-Policy etc.) and the
SPA rewriteicon-192.png, icon-512.png — app icons for install/home screensupabase_role_setup.sql — database setup to run in the Supabase SQL
Editor (roles).index.html, manifest.json,
service-worker.js, vercel.json, the icons — not src/ or tools/)
are the file set that should be mirrored into the
Android project's www/ folder (flow-apk-project-fixed/flow-apk/www/
in FLOW---ANDROID) so the two never drift out of sync. That copy is
NOT an offline fallback: the Android app loads the live deployed URL
via capacitor.config.ts (server.url), and Capacitor never falls
back to the bundled www/ when that URL is unreachable. Offline launch
relies on the service worker cache (app shell + pinned CDN libraries).vercel.json sets a Content-Security-Policy. Any NEW external origin
(a CDN, API, font or image host, iframe source) must be added to the
matching directive there (script-src, connect-src, frame-src…),
or the browser will block it. CDN libraries must use exact-version
URLs (e.g. @2.117.3, not @2) so they are cacheable offline;
supabase-js and EmailJS also carry SRI integrity hashes, which must
be recomputed when bumping their versions.Each nomination card has an IMO box and an MMSI box ("IMO Number / MMSI *" — at least one is wanted).
{{IMO}} and {{MMSI}}. The nomination and
cancellation e-mails list both when filled in.tests/ holds a browser test suite (Playwright, headless Chromium) that
loads index.html against a fake Supabase — the real project is never
contacted. See tests/README.md for what it covers and
how to run it: cd tests && npm ci && npx playwright install chromium && npm test..github/workflows/test.yml) runs it on every push and
pull request; a red X on a commit means a test failed (logs are attached to
the run).tests/, src/, tools/ and .github/ are development-only (and supabase/
is server code): .vercelignore and _config.yml keep them off the live site,
and they should not be copied into the Android www/ folder.