M1-11: Memo list on real data #11
Labels
No labels
area/agent
area/capture
area/editor
area/geo
area/security
area/sync
area/transcription
area/ui
area/vault
area/voice-memos
blocked
milestone/M1
milestone/M2
milestone/M3
milestone/M4
needs-decision
needs-hardware
p0
p1
p2
type/bug
type/enhancement
type/feature
type/idea
type/infrastructure
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Stash/stash-android#11
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The memo list stops showing sample data and reads what is actually on disk.
The principle this issue protects
There is no database and no index. The list is a reading of the directory, not a cache of it.
Relaunching shows the same memos because there was never anything else to show, and a memo can be
added or removed from outside the app without anything needing to be told. That is what keeps the
format portable to every future client, and it is the thing to defend when something later would be
easier with an index.
Scope
not-synced cloud.
reaching the file.
Four decisions the iOS version arrived at the hard way
Worth taking rather than rediscovering — from
stash-ios.agent/m1-11-memo-list/SUMMARY.md:time with no UTC offset, so it cannot name an instant — a memo made in California and read on a
phone still set to Eastern parses three hours out, which relative dates put straight on screen.
The name stays authoritative for identity and for the vault.
recording flag before it closes the file and assembles the transcript, so the narrower rule shows
a half-written memo in the list.
row on screen, so keeping it keeps the memo visible and the deletion retryable.
check, and once M1-12 opens the storage up, treating one as a memo means the first delete removes
it recursively.
A listing failure is not an empty list
A directory that cannot be enumerated must say so. The iOS version reported it as "No Memos", which
tells the user their recordings are gone.
Done when
The list shows real captures from disk, survives a relaunch, deletes cleanly, and says something
truthful when the directory cannot be read.
Milestone 1 of Stash for Android, mirroring
stash-iosM1. M1 is a functioning app on the testdevice with no sync at all — record voice memos reliably and get them off the device by hand.
Sync arrives in M3.
Test device is a Pixel 6 (Tensor G1) borrowed from a friend, until something better turns up.
Stock Android, so no OEM battery-killer behaviour to fight — worth remembering that a phone from
another manufacturer may not be as forgiving about background work.
Translation of
Stash/stash-ios#11. Where the platform forces a different answer this issue says so; where itdoes not, the iOS issue is the fuller statement of intent and should be read alongside this one.
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.