[Feature] Git storage carries media and sidecars, not just a warning #515
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#515
Loading…
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?
Saving a deck to a git repository leaves work behind: video, audio, drawings (
.ink.json) and user notes do not travel.deck_repo_serializer.dart(around line 129) skips the media; nothing underlib/services/git/writes the two sidecars.A blocking warning before the first commit now exists, naming what will not go along — so the user is told. But being told you are about to lose work is not the same as not losing it.
What to weigh before building. Media in a git repository is a size question: large binaries in history are a lasting cost. Consider routing them through the asset pool the way the other storage kinds do, and whether a per-file size limit belongs there. The two sidecars are small and textual and can simply travel.
Also check what the three-way merge should do with a changed
.ink.json—docs/design/GIT_STORAGE.mdlists sidecar ink merge as an open point, and stroke identity is the hard part there.Follows the warning added under "five paths where work silently disappeared".
Media is done and merged (#540): video and audio now go through the same content-addressed pool as images, and come back as a staged file on desktop /
mem:on web. The design gap was the return path, now recorded as D12 —WebAssetStoreis an in-memory map, so the gigabyte thatmaxMediaBytesallows cannot go there.One correction on my earlier reading of this issue: D5 had already decided the policy (partial clone plus a size warning, explicitly no hard cap). I said this needed a design decision first; it did not, and I should have read the design before saying so.
The sidecars are split off into their own issue, because they are three different problems rather than one: notes are decided and small, ink needs per-stroke identity settled in the annotation format before the D7 merge driver can be written, and the seal raises a question nobody has answered yet — what a seal means once the deck lives in a branch that can be rewritten or force-pushed.
Closing this one as the media half; the sidecar half continues there.