feat: queued mutations while reloading or offline
This commit is contained in:
25
README.md
25
README.md
@@ -79,7 +79,11 @@ When GitHub reports that the authenticated user has permission, diple can:
|
||||
|
||||
The UI explains unavailable actions through its write-capability gate.
|
||||
Metadata and reply drafts are persisted locally so cancellation or a restart
|
||||
does not silently discard work.
|
||||
does not silently discard work. Replies, thread resolution changes, and PR
|
||||
metadata or people edits are also placed in a durable FIFO queue before they
|
||||
are sent. If the most recent cached snapshot granted the action, it may be
|
||||
queued while offline and is replayed automatically after connectivity returns.
|
||||
Merge and auto-merge actions remain online-only.
|
||||
|
||||
Reactions are currently read-only. Assigning labels or milestones is not
|
||||
implemented yet.
|
||||
@@ -521,9 +525,22 @@ Cached data is labelled when first shown. A normal refresh does not repeatedly
|
||||
reintroduce the cached header.
|
||||
|
||||
Read state and recoverable drafts live beside the configuration file as
|
||||
`state.json` and `drafts.json`. Experimental AI data defaults to the `ai`
|
||||
directory beside the configuration. These files are versioned and written
|
||||
atomically; sensitive user-authored state uses restrictive permissions.
|
||||
`state.json` and `drafts.json`. Confirmed reversible GitHub writes are kept in
|
||||
`mutation-queue.json` until GitHub confirms them. Experimental AI data defaults
|
||||
to the `ai` directory beside the configuration. These files are versioned and
|
||||
written atomically; sensitive user-authored state uses restrictive permissions.
|
||||
|
||||
Cached permission gates are treated as the last known truth while offline:
|
||||
actions granted by the snapshot can be queued, while actions denied by it stay
|
||||
disabled. Pending replies and projected PR or thread changes are labelled in
|
||||
the UI without being written into the read cache. Replay preserves global
|
||||
enqueue order, including across repositories.
|
||||
|
||||
If GitHub permissions or the target changed, replay pauses before the first
|
||||
unsafe operation and presents choices to keep it queued, discard that item and
|
||||
continue, or discard the remaining queued changes for that PR. A lost reply
|
||||
response is checked against fresh GitHub thread data first; only when delivery
|
||||
cannot be determined does diple ask whether to retry or treat it as applied.
|
||||
|
||||
## Experimental local AI review
|
||||
|
||||
|
||||
Reference in New Issue
Block a user