sync app filled in
This commit is contained in:
@@ -192,6 +192,7 @@ Response:
|
||||
"type": "update",
|
||||
"path": "guide.md",
|
||||
"hash": "client-hash",
|
||||
"content": "# Guide\n\nClient edit\n",
|
||||
"size": 58,
|
||||
"modified": "2026-05-14T12:05:00Z"
|
||||
}
|
||||
@@ -212,6 +213,7 @@ Response:
|
||||
"modified": "2026-05-14T12:03:00Z"
|
||||
}
|
||||
],
|
||||
"newSnapshotId": "snap:device:new-timestamp",
|
||||
"conflicts": [
|
||||
{
|
||||
"path": "guide.md",
|
||||
@@ -225,6 +227,11 @@ Response:
|
||||
}
|
||||
```
|
||||
|
||||
For create/update deltas, native clients should send inline UTF-8 markdown in
|
||||
`content`. The server stores the bytes content-addressably, verifies any claimed
|
||||
`hash`, writes the markdown into the content tree, and returns a fresh
|
||||
`newSnapshotId` for the client's next sync request.
|
||||
|
||||
### Resolve
|
||||
|
||||
`POST /api/sync/resolve`
|
||||
|
||||
@@ -112,6 +112,7 @@ Upload client changes and receive server changes + conflicts.
|
||||
"type": "update",
|
||||
"path": "hello.md",
|
||||
"hash": "d4e5f6...",
|
||||
"content": "# Hello\n\nUpdated content\n",
|
||||
"size": 50,
|
||||
"modified": "2024-01-15T10:05:00Z"
|
||||
}
|
||||
@@ -131,6 +132,7 @@ Upload client changes and receive server changes + conflicts.
|
||||
"modified": "2024-01-15T10:02:00Z"
|
||||
}
|
||||
],
|
||||
"newSnapshotId": "snap:macbook-pro-1:1234567999",
|
||||
"conflicts": [
|
||||
{
|
||||
"path": "hello.md",
|
||||
@@ -144,6 +146,10 @@ Upload client changes and receive server changes + conflicts.
|
||||
}
|
||||
```
|
||||
|
||||
For client create/update changes, the server accepts inline UTF-8 markdown in
|
||||
`content` and recomputes the SHA-256 hash before writing the file. If `content`
|
||||
is omitted, the supplied `hash` must already exist in the server content store.
|
||||
|
||||
### POST /api/sync/resolve
|
||||
|
||||
Resolve conflicts and finalize the sync.
|
||||
|
||||
Reference in New Issue
Block a user