d4fd7eb372
feat(webapp): say what a conflict copy is, where a reader meets it (BEA-128) ( #177 )
...
A concurrent edit is preserved as `<name>.bdrive-conflict-<device>-<utc>`
— the guarantee the whole shared-folder promise rests on. Until now that
promise appeared in the README, the docs and syncer.go, and nowhere in
the hub: a conflict copy was an ordinary row with an alarming name, and a
user could only learn what it was by reading the README.
conflictName is a pure function of the path, so the frontend recovers the
device and the moment from the string alone — no server route, no journal
field, no request. lib/conflict.ts holds the parser (anchored suffix, a
strictly narrower match of the Go convention; anything malformed is null,
never a throw), the listing marks the row, and ConflictBanner explains the
file and links the version that kept the original name.
History and the Dashboard stay out, per the spec's stated cut.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-19 11:09:43 -07:00
..
2026-08-19 11:09:43 -07:00
2026-08-19 11:09:43 -07:00
2026-08-11 00:38:44 +09:00
2026-08-13 14:50:25 -07:00
2026-08-13 14:50:25 -07:00
2026-08-03 16:20:51 +09:00
2026-08-11 08:23:34 -07:00
2026-08-03 16:20:51 +09:00
2026-08-11 08:23:34 -07:00
2026-08-03 16:20:51 +09:00
2026-08-13 07:18:37 -07:00
2026-07-30 14:31:44 +09:00
2026-08-19 10:41:28 -07:00
2026-08-13 11:04:23 -07:00
2026-08-11 08:23:34 -07:00
2026-08-13 12:20:36 -07:00
2026-08-11 04:18:53 +09:00
2026-08-11 04:18:53 +09:00
2026-08-11 04:18:53 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 04:18:53 +09:00
2026-08-13 07:18:37 -07:00
2026-08-11 08:23:34 -07:00
2026-08-10 14:18:18 -07:00
2026-07-08 07:13:00 -07:00
2026-07-20 03:06:19 -07:00
2026-07-20 03:06:19 -07:00
2026-08-19 11:09:43 -07:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 04:18:53 +09:00
2026-08-18 14:04:35 -07:00
2026-07-27 09:56:59 +09:00
2026-07-08 13:12:49 -07:00
2026-08-03 07:43:35 +09:00
2026-07-15 16:17:08 -07:00
2026-07-15 16:17:08 -07:00
2026-08-11 02:52:20 +09:00
2026-08-11 02:52:20 +09:00
2026-07-31 07:11:20 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 04:18:53 +09:00
2026-08-05 16:20:16 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 00:38:44 +09:00
2026-08-11 04:18:53 +09:00
2026-07-31 07:11:20 +09:00
2026-08-13 14:50:25 -07:00
2026-08-03 16:20:51 +09:00
2026-08-11 02:52:20 +09:00
2026-08-13 14:50:25 -07:00
2026-08-03 16:20:51 +09:00
2026-08-11 08:23:34 -07:00
2026-08-03 16:20:51 +09:00
2026-08-13 07:18:37 -07:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 04:18:53 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 08:23:34 -07:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 19:16:42 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-03 16:20:51 +09:00
2026-08-11 02:52:20 +09:00
2026-08-18 14:04:35 -07:00
2026-08-11 04:18:53 +09:00
2026-08-19 10:41:28 -07:00
2026-08-19 10:41:28 -07:00
2026-08-13 12:20:36 -07:00
2026-07-31 18:09:30 +09:00
2026-08-13 14:50:25 -07:00
2026-07-31 14:56:58 +09:00
2026-08-03 16:20:51 +09:00
2026-08-18 14:04:35 -07:00
2026-08-18 14:04:35 -07:00
2026-07-08 07:13:00 -07:00
2026-08-18 14:04:35 -07:00
2026-07-31 14:56:58 +09:00