M1-11: Memo list on real data #11

Closed
opened 2026-08-06 10:53:42 -04:00 by agent · 0 comments
Member

Replace issue 03's sample data with the recordings actually on disk.

Scope

  • Enumerate completed captures from the Documents directory and render them in the list.
  • Sort newest first.
  • Sync status renders as not synced for everything, because nothing syncs in M1. The
    other two states stay in the code and are exercised by previews only.
  • Delete a memo, with confirmation.

Design note

The on-disk files are the source of truth, not a database. Wes's original vision was plain
files, and it is what makes the format portable to every future client — "I'm trying not to
have any native file formats that are a problem."
If an index or cache becomes necessary for
performance later, it is derived state that can be thrown away and rebuilt, never the record.

Done when

Recordings made on the device appear in the list, survive relaunch, and can be deleted.

Milestone 1 of the Stash v3 rebuild, scoped 2026-08-06. M1 is a functioning iOS app on Wes's
phone with no sync at all — the entire goal is recording voice memos reliably and getting
them off the device by hand. Sync arrives in M3.

Working agreement for every issue in this repo: feature branch, tested before the PR opens
(on-device where the label says so), then Wes reviews the PR and we walk the code together.
Docs update in the same commit. A PR that takes more than 20 minutes to review is too big —
say so and split it.

Replace issue 03's sample data with the recordings actually on disk. ## Scope - Enumerate completed captures from the Documents directory and render them in the list. - Sort newest first. - Sync status renders as **not synced** for everything, because nothing syncs in M1. The other two states stay in the code and are exercised by previews only. - Delete a memo, with confirmation. ## Design note The on-disk files are the source of truth, not a database. Wes's original vision was plain files, and it is what makes the format portable to every future client — *"I'm trying not to have any native file formats that are a problem."* If an index or cache becomes necessary for performance later, it is derived state that can be thrown away and rebuilt, never the record. ## Done when Recordings made on the device appear in the list, survive relaunch, and can be deleted. --- *Milestone 1 of the Stash v3 rebuild, scoped 2026-08-06. M1 is a functioning iOS app on Wes's phone with **no sync at all** — the entire goal is recording voice memos reliably and getting them off the device by hand. Sync arrives in M3.* *Working agreement for every issue in this repo: feature branch, tested before the PR opens (on-device where the label says so), then Wes reviews the PR and we walk the code together. Docs update in the same commit. A PR that takes more than 20 minutes to review is too big — say so and split it.*
wk closed this issue 2026-08-08 18:22:11 -04:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stash/stash-ios#11
No description provided.