尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Cairn - a shared trip companion for a group of friends travelling together. One nudge a day, and the day fills in from everyone's own hour.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A shared trip companion for a group of friends — eight of them, on one trip —
travelling together.
Today's plan on the way out, today's memories on the way back.檢視完整 README ↗A shared trip companion for a group of friends — eight of them, on one trip — travelling together.
Today's plan on the way out, today's memories on the way back.
One person pastes a rough itinerary before the trip — or imports the file it came in, which fills the same box with the plan's own text to correct before accepting. The trip renders as a winding path with one node per day and a flag on today; days advance by the clock, never by completing anything. Everyone opens it in the morning to see what the day holds. During the day, photos are taken — including BeReal-style dual shots — and photos from the camera roll are swept in when the app is opened (iOS offers no background import, and the app promises nothing more than that). Everything lands in a shared pool sorted by day, and the pool becomes a book when the trip ends.
This is a passion project, not a business. There is no monetisation goal.
Under construction, and running. The app builds and opens on a phone: paste a
rough itinerary, confirm what the parser read, and land on Today — the day
screen the Trail opens for every other day too. A plan can also be read out
of a file rather than typed: a document (.txt, .csv, .docx, .xlsx
or .pdf, and the app says which formats this build actually reads) or a photo
or screenshot put through on-device text recognition. Either way the text lands
in the paste box for the person to see and fix before the parser reads it, and
recognition quality is still to be judged on a real device rather than by the
test suite. The repository's printed Wanderlog fixture now reads as its three
real days. Repeated print controls are removed conservatively before the
explicit numbered day structure reaches the parser.
The Trail, the Pool and the capture that fills it are built, and five pure-Dart
packages sit under them.
Two things still keep Cairn from being a group: real-device notification
delivery remains unverified (the daily ping schedule is registered with iOS
through LocalNotificationEdge, but the edge has not yet been verified on a
phone), and no photograph has yet been seen on a second phone
(docs/roadmap.md holds the exact standing of the upload path). Nor can anybody
join a trip yet: the three-word invite code is real, the adapter can now ask the
server to redeem one, and no screen yet does.
The one server path that does exist — the itinerary and the roster — is live against a hosted Supabase project, and since 27 August 2026 it is live on an ordinary build: it had been silently switched off by a missing build-time default, so no binary anybody would have run had ever pushed a plan. The phone signs in as an anonymous account, which stands in until Sign in with Apple lands, and a plan that has not reached the server now says so on screen. It has still never been read by a second phone. A trip now ends as well as starting: when its last day passes it spends seventy-two hours taking late photographs and nothing else, and after that it is a read-only record — uploads shut, invite codes die, and the plan cannot be replaced. The book made from that record is still ahead.
docs/roadmap.md is the authority on what is built, what is not, and the order
the rest arrives in; docs/architecture.md maps every node and is honest about
the gaps. docs/storage-and-cost.md is what the shared photo pool costs to
keep, measured against a real camera roll rather than estimated.
android/ directory. Web and PWA
were ruled out because iOS evicts PWA storage.docs/decisions/2026-08-25-riverpod-and-drift.md, which says what they were
weighed against; the argument was first made in working code in
learning/riverpod-drift-demo/.supabase/README.md). R2 is not started.| Path | What it is |
|---|---|
lib/, ios/ | The Flutter app. lib/README.md is the authority on its layout. |
packages/ | Pure-Dart packages the app is written against, kept Flutter-free. |
supabase/ | The backend schema and its local tests, applied to a hosted Supabase project an ordinary build points at. |
learning/ | Throwaway demos built to make a technical decision. Not the app. |
The full design record — what was decided, what was rejected, and why — is kept
in docs/decisions/ and docs/design/. See those directories for the reasoning
behind the architecture, the design system, and the key decisions. This README is
deliberately thin; it is not the design document.
For what is actually built, what is not, and the order the rest arrives in, see
docs/roadmap.md.