mirror of
https://github.com/runbear-io/beardrive.git
synced 2026-08-25 08:08:08 +02:00
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>
17 lines
793 B
HTML
17 lines
793 B
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>BearDrive</title>
|
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='%23f5a623'><rect x='4' y='4' width='5.6' height='24'/><rect x='11.2' y='4' width='14.4' height='11.2'/><rect x='11.2' y='16.8' width='16.8' height='11.2'/></svg>">
|
|
<script type="module" crossorigin src="/assets/index-CZVWnc_F.js"></script>
|
|
<link rel="modulepreload" crossorigin href="/assets/_commonjsHelpers-CqkleIqs.js">
|
|
<link rel="modulepreload" crossorigin href="/assets/mermaid-DQuCJ8Gi.js">
|
|
<link rel="stylesheet" crossorigin href="/assets/index-vCqznddJ.css">
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
</body>
|
|
</html>
|