Repository navigation
Conversation
cache.Sync skips the API call when nothing changed locally and the last sync was under five minutes ago, so a new run could miss changes made in other clients. Force the first sync in each process with AlwaysSync, and route sn-cli's direct cache.Sync calls through the same helper. Later syncs in a run can still skip the call. The Sync wrapper also no longer drops AlwaysSync when it copies SyncInput. Fixes jonhadfield#138
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Owner
|
Landed on main as ea96bfb. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #138
Summary
cache.Syncskips the API call when nothing changed locally and the last sync was under 5 minutes ago, so a newsnrun could miss changes made in other clients. The first sync in each process now always calls the API. Later syncs in the same run can still skip it, so the savings from gosn-v2#92 within a run are kept.SyncQuiet(si) # was: sync(si), unexported cache.Sync(SyncInput{ Session, Close, + AlwaysSync: si.AlwaysSync || !syncedWithServer, }) + syncedWithServer = true (on success)The 20 direct
cache.Synccalls incmd/sncliandinternal/sncli/tasks.gonow go throughSyncQuiet(no spinner, same as before). The oldsynchelper also copied onlySessionandClose, so it droppedAlwaysSync.Evidence
Two cache directories, one standing in for another client:
go test ./...passes.Merge Danger
Door: two-way
Blast Radius: API calls
Each run makes at most one extra sync request, and only when it would have skipped. Runs within 5 minutes of each other no longer reuse the cached state.