Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Customisation sync Select All Shiny selects older version of plugin #506

Open
zedtools opened this issue Oct 3, 2024 · 3 comments
Open

Comments

@zedtools
Copy link

zedtools commented Oct 3, 2024

Abstract

After updating a plugin, customisation sync's Select All Shiny button selects other devices with an older version of the plugin.

As a workaround, if I then manually update the plugins on all devices, Select All Shiny no longer shows changes for an older device.

Expected behaviour

  • The device with the latest version of the plugin does not select other devices with an older version of the plugin.

Actually happened

  • A device with an older version of the plugin is selected.

Reproducing procedure

This does not always happen, and seems to be intermittent. When it does the following seems to trigger it:

  1. Configure LiveSync and customisation sync.
  2. Ensure all devices are up to date with plugins, so that customisation sync says everything is up to date.
  3. When a new plugin update is available, update it on ONE device.
  4. On the updated device, click Refresh, Scan Changes, and then Select All Shiny.
  5. The updated device selects another device for that plugin, showing changes which are outdated.

Report materials

Report from the LiveSync

Report from hatch
---- Obsidian info ----
Navigator: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) obsidian/1.4.16 Chrome/114.0.5735.289 Electron/25.8.1 Safari/537.36
FileSystem: insensitive
---- remote config ----
cors:
  credentials: "true"
  headers: accept, authorization, content-type, origin, referer
  max_age: "3600"
  methods: GET, PUT, POST, HEAD, DELETE
  origins: app://obsidian.md,capacitor://localhost,http://localhost
chttpd:
  bind_address: any
  max_http_request_size: "4294967296"
  port: "5984"
  require_valid_user: "true"
admins: [redacted]
vendor:
  name: The Apache Software Foundation
feature_flags:
  partitioned||*: "true"
chttpd_auth:
  authentication_redirect: [redacted]/_utils/session.html
  hash_algorithms: sha256, sha
  require_valid_user: "true"
indexers:
  couch_mrview: "true"
prometheus:
  additional_port: "false"
  bind_address: 127.0.0.1
  port: "17986"
httpd:
  WWW-Authenticate: Basic realm="couchdb"
  bind_address: 127.0.0.1
  enable_cors: "true"
  port: "5986"
smoosh:
  state_dir: ./data
couch_httpd_auth:
  authentication_db: [redacted]
  secret: [redacted]
  authentication_redirect: [redacted]
couchdb_engines:
  couch: couch_bt_engine
couchdb:
  database_dir: ./data
  max_document_size: "50000000"
  single_node: "true"
  uuid: [redacted]
  view_index_dir: ./data

---- Plug-in config ---
version:0.23.23
remoteType: ""
useCustomRequestHandler: false
couchDB_URI: self-hosted(HTTPS)
couchDB_USER: [redacted]
couchDB_PASSWORD: [redacted]
couchDB_DBNAME: [redacted]
liveSync: true
syncOnSave: false
syncOnStart: false
savingDelay: 200
lessInformationInLog: false
gcDelay: 0
versionUpFlash: ""
minimumChunkSize: 20
longLineThreshold: 250
showVerboseLog: false
suspendFileWatching: false
trashInsteadDelete: true
periodicReplication: false
periodicReplicationInterval: 60
syncOnFileOpen: false
encrypt: false
passphrase: [redacted]
usePathObfuscation: false
doNotDeleteFolder: false
resolveConflictsByNewerFile: false
batchSave: false
batchSaveMinimumDelay: 5
batchSaveMaximumDelay: 60
deviceAndVaultName: macbook
usePluginSettings: false
showOwnPlugins: false
showStatusOnEditor: true
showStatusOnStatusbar: true
showOnlyIconsOnEditor: false
usePluginSync: true
autoSweepPlugins: false
autoSweepPluginsPeriodic: false
notifyPluginOrSettingUpdated: true
checkIntegrityOnSave: false
batch_size: 25
batches_limit: 25
useHistory: true
disableRequestURI: true
skipOlderFilesOnSync: true
checkConflictOnlyOnOpen: false
showMergeDialogOnlyOnActive: false
syncInternalFiles: false
syncInternalFilesBeforeReplication: false
syncInternalFilesIgnorePatterns: \/node_modules\/, \/\.git\/, \/obsidian-livesync\/, \/workspace(-mobile)?.json
syncInternalFilesInterval: 60
additionalSuffixOfDatabaseName: 1dbe8e24bbd55fe8
ignoreVersionCheck: false
lastReadUpdates: 23
deleteMetadataOfDeletedFiles: false
syncIgnoreRegEx: ""
syncOnlyRegEx: ""
customChunkSize: 50
readChunksOnline: false
watchInternalFileChanges: true
automaticallyDeleteMetadataOfDeletedFiles: 0
disableMarkdownAutoMerge: false
writeDocumentsIfConflicted: false
useDynamicIterationCount: false
syncAfterMerge: false
configPassphraseStore: ""
encryptedPassphrase: [redacted]
encryptedCouchDBConnection: [redacted]
permitEmptyPassphrase: false
useIndexedDBAdapter: true
useTimeouts: false
writeLogToTheFile: false
doNotPaceReplication: false
hashCacheMaxCount: 300
hashCacheMaxAmount: 50
concurrencyOfReadChunksOnline: 30
minimumIntervalOfReadChunksOnline: 25
hashAlg: xxhash64
suspendParseReplicationResult: false
doNotSuspendOnFetching: false
useIgnoreFiles: false
ignoreFiles: .gitignore
syncOnEditorSave: false
pluginSyncExtendedSetting: {}
syncMaxSizeInMB: 50
settingSyncFile: ""
writeCredentialsForSettingSync: false
notifyAllSettingSyncFile: false
isConfigured: true
settingVersion: 10
enableCompression: false
accessKey: [redacted]
bucket: [redacted](0 letters)
endpoint: Not configured or AWS
region: [redacted](4 letters)
secretKey: [redacted]
useEden: false
maxChunksInEden: 10
maxTotalLengthInEden: 1024
maxAgeInEden: 10
disableCheckingConfigMismatch: false
displayLanguage: ""
enableChunkSplitterV2: false
disableWorkerForGeneratingChunks: false
processSmallFilesInUIThread: false
notifyThresholdOfRemoteStorageSize: 800
usePluginSyncV2: true
usePluginEtc: false
handleFilenameCaseSensitive: false
doNotUseFixedRevisionForChunks: false
showLongerLogInsideEditor: false
sendChunksBulk: true
sendChunksBulkMaxSize: 25
useSegmenter: false
useAdvancedMode: false
usePowerUserMode: false
useEdgeCaseMode: false
configPassphrase: ""
preset: ""
syncMode: LIVESYNC
dummy: 0

Screenshots

MacBook showing iPad has a newer version of the Meta Bind plugin, when in reality my MacBook has the latest version:

image

Difference in the manifest file, confirming the iPad has an older version:

image

Other information, insights and intuition.

I also queried the CouchDB database for the plugin files. The ix:macbook files have a more recent mtime than ix:pad, so the database looks correct. For some reason the LiveSync plugin does not seem to be interpreting these correctly.

CouchDB data
{
 "_id": "ix:ipad/plugin_data/obsidian-meta-bind-plugin%data.json",
 "_rev": "1-497277813df4760924ed6ef77eca4b01",
 "children": [
  "h:kep6dkk3eaq"
 ],
 "path": "ix:iPad/PLUGIN_DATA/obsidian-meta-bind-plugin%data.json",
 "ctime": 1725512120612,
 "mtime": 1725512120612,
 "size": 693,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:ipad/plugin_main/obsidian-meta-bind-plugin%main.js",
 "_rev": "1-cbab5d8ffb6a31892e987fae396ab51a",
 "children": [
  "h:2n7ygh51ob1px"
 ],
 "path": "ix:iPad/PLUGIN_MAIN/obsidian-meta-bind-plugin%main.js",
 "ctime": 1725511892696,
 "mtime": 1725511892696,
 "size": 1525845,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:ipad/plugin_main/obsidian-meta-bind-plugin%manifest.json",
 "_rev": "1-6b9efa4ec710e572d0e0ee3b3fb06f1d",
 "children": [
  "h:dphbr9s95dqb"
 ],
 "path": "ix:iPad/PLUGIN_MAIN/obsidian-meta-bind-plugin%manifest.json",
 "ctime": 1725511891118,
 "mtime": 1725511891118,
 "size": 625,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:ipad/plugin_main/obsidian-meta-bind-plugin%styles.css",
 "_rev": "1-cf2cf08a43b32ffec7b2f57574e0828a",
 "children": [
  "h:2muc8eqjg3x12"
 ],
 "path": "ix:iPad/PLUGIN_MAIN/obsidian-meta-bind-plugin%styles.css",
 "ctime": 1725511894282,
 "mtime": 1725511894282,
 "size": 17817,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:iphone/plugin_data/obsidian-meta-bind-plugin%data.json",
 "_rev": "1-7ead755ba59d0c1b775ff08962ad5651",
 "children": [
  "h:kep6dkk3eaq"
 ],
 "path": "ix:iPhone/PLUGIN_DATA/obsidian-meta-bind-plugin%data.json",
 "ctime": 1722135813525,
 "mtime": 1722135813525,
 "size": 693,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:iphone/plugin_main/obsidian-meta-bind-plugin%main.js",
 "_rev": "1-feca3c44359ad7438f0dacc12a7f0b86",
 "children": [
  "h:2n7ygh51ob1px"
 ],
 "path": "ix:iPhone/PLUGIN_MAIN/obsidian-meta-bind-plugin%main.js",
 "ctime": 1722135810191,
 "mtime": 1722135810191,
 "size": 1525845,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:iphone/plugin_main/obsidian-meta-bind-plugin%manifest.json",
 "_rev": "1-3b5dfee5d513aa5e31e76e1bafb8fd84",
 "children": [
  "h:dphbr9s95dqb"
 ],
 "path": "ix:iPhone/PLUGIN_MAIN/obsidian-meta-bind-plugin%manifest.json",
 "ctime": 1722135808490,
 "mtime": 1722135808490,
 "size": 625,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:iphone/plugin_main/obsidian-meta-bind-plugin%styles.css",
 "_rev": "1-47b333f3a9aa1294fb8103340e638508",
 "children": [
  "h:2muc8eqjg3x12"
 ],
 "path": "ix:iPhone/PLUGIN_MAIN/obsidian-meta-bind-plugin%styles.css",
 "ctime": 1722135811515,
 "mtime": 1722135811515,
 "size": 17817,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:macbook/plugin_data/obsidian-meta-bind-plugin%data.json",
 "_rev": "1-485a990641e00223a8e83739e4d39119",
 "children": [
  "h:kep6dkk3eaq"
 ],
 "path": "ix:macbook/PLUGIN_DATA/obsidian-meta-bind-plugin%data.json",
 "ctime": 1722328100795,
 "mtime": 1722328100795,
 "size": 693,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:macbook/plugin_main/obsidian-meta-bind-plugin%main.js",
 "_rev": "2-a503e0ab888f4a96a23eb5f23fcb0337",
 "children": [
  "h:1535gjg0glpm8"
 ],
 "path": "ix:macbook/PLUGIN_MAIN/obsidian-meta-bind-plugin%main.js",
 "ctime": 1722328100794,
 "mtime": 1727916852859,
 "size": 1454053,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:macbook/plugin_main/obsidian-meta-bind-plugin%manifest.json",
 "_rev": "2-219d70ab853e455395163964dfe623a6",
 "children": [
  "h:34m82aqn8wc4b"
 ],
 "path": "ix:macbook/PLUGIN_MAIN/obsidian-meta-bind-plugin%manifest.json",
 "ctime": 1722328103002,
 "mtime": 1727916852861,
 "size": 585,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:macbook/plugin_main/obsidian-meta-bind-plugin%styles.css",
 "_rev": "2-18fcf438cb6b4517a3de7d7228946018",
 "children": [
  "h:s8d2ukuwuz4o"
 ],
 "path": "ix:macbook/PLUGIN_MAIN/obsidian-meta-bind-plugin%styles.css",
 "ctime": 1722328107392,
 "mtime": 1727916852862,
 "size": 21989,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:windows/plugin_data/obsidian-meta-bind-plugin%data.json",
 "_rev": "1-3034b1d6a61f27ac45c83fc3a7737973",
 "children": [
  "h:kep6dkk3eaq"
 ],
 "path": "ix:windows/PLUGIN_DATA/obsidian-meta-bind-plugin%data.json",
 "ctime": 1722064960294,
 "mtime": 1722064960294,
 "size": 693,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:windows/plugin_main/obsidian-meta-bind-plugin%main.js",
 "_rev": "1-d65919630f95a7ddfff741f15514bec8",
 "children": [
  "h:2n7ygh51ob1px"
 ],
 "path": "ix:windows/PLUGIN_MAIN/obsidian-meta-bind-plugin%main.js",
 "ctime": 1722064957436,
 "mtime": 1722064957436,
 "size": 1525845,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:windows/plugin_main/obsidian-meta-bind-plugin%manifest.json",
 "_rev": "1-fbf8884bba582f4f553424a17a897528",
 "children": [
  "h:dphbr9s95dqb"
 ],
 "path": "ix:windows/PLUGIN_MAIN/obsidian-meta-bind-plugin%manifest.json",
 "ctime": 1722064956000,
 "mtime": 1722064956000,
 "size": 625,
 "type": "plain",
 "eden": {}
}

{
 "_id": "ix:windows/plugin_main/obsidian-meta-bind-plugin%styles.css",
 "_rev": "1-b69bedc9f43f9f804c04d0f0ecc5d6f6",
 "children": [
  "h:2muc8eqjg3x12"
 ],
 "path": "ix:windows/PLUGIN_MAIN/obsidian-meta-bind-plugin%styles.css",
 "ctime": 1722064958868,
 "mtime": 1722064958868,
 "size": 17817,
 "type": "plain",
 "eden": {}
}
@AveryVeilfaire
Copy link

I've had this issue too. And can I tag on how much a option to change all the drop downs at once to a certain device would be? So many times I find myself going through to select my 'master' device.

@zedtools
Copy link
Author

I just updated to LiveSync 24.1, and am still seeing this issue.

Here is an example where my Windows installation has updated the Importer plugin, but Customisation Sync is offering the older Macbook version when I click Select All Shiny:

image

image

I did notice that the styles.css file seems to be newer on the Macbook (though the contents have not changed)... not sure if this is part of the issue.

image

@zedtools
Copy link
Author

This just happened again – my MacBook updated the QuickAdd plugin, and it is now selecting iPad when I click Select All Shiny. This time, my MacBook has more recent versions of all the plug-in files, so I don't know why iPad is being selected here.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants