Val Packett
36346ad1d2
Plugin: propagate sync changes between tabs too
2023-07-01 14:33:08 -03:00
Val Packett
b6402cb17c
Plugin: use newest change time as lastSync instead of actual last sync request time
...
This should be resilient against updates getting skipped due to timing issues,
since this is what syncing "since time X" should actually mean.
2023-07-01 14:33:08 -03:00
Val Packett
16f8d07f51
Plugin: fix lack of await inside conflict resolution
...
We were not getting the local copy at all, and instead trying to get the modification time from the promise.
2023-07-01 14:33:08 -03:00
Val Packett
56870e794c
Plugin: support realtime monitoring for changes to sync
2023-07-01 14:33:08 -03:00
Val Packett
275129a171
Offline: precache the current page when the worker is installed, etc.
2023-07-01 14:33:08 -03:00
Val Packett
c41a462a70
Refresh the app html in the background when sync has detected that it has changed on the server
2023-07-01 14:33:08 -03:00
Val Packett
9efc82ce50
Plugin: be resilient against lastSync getting corrupted in the DB
2023-07-01 14:33:08 -03:00
Val Packett
bbb8cef786
Offline: use non-force refresh in the refresh button
2023-07-01 14:33:08 -03:00
Val Packett
396a6ef667
Remove the dhash field
...
Won't actually be necessary for conflict resolution, we'll operate on decrypted text.
2023-07-01 14:33:08 -03:00
Val Packett
2024ccd6e9
Plugin: when deleting, put actual nulls into used fields
...
Somehow at least in Firefox just using put() with an object that lacks the
fields that the previous object with the same key did have resulted in
the string "null" ending up in those fields?
2023-07-01 14:33:08 -03:00
Val Packett
d9528e0f90
Plugin: make sync requests cancelable
2023-07-01 14:33:08 -03:00
Val Packett
0a5b9c5cbb
Plugin: fix time sync error name
2023-07-01 14:33:08 -03:00
Val Packett
bf3a722c28
Offline: send a "preflight" request for the html for waking up a hosting service
...
This is to avoid caching e.g. a Glitch.com "waiting for app wakeup" interstitial.
2023-07-01 14:33:08 -03:00
Val Packett
bfd1d7b1f7
Offline: use request.destination instead of URL heuristics
2023-07-01 14:33:08 -03:00
Val Packett
263c7850a5
Manifest: fix all the data URI generation
...
Now the SVG icon in the docs wiki shows up in the manifest inspector in desktop Firefox.
2023-07-01 14:33:08 -03:00
Val Packett
153b5cca1e
Add an 'authcode' to prevent syncing between wikis that have different keys (passwords)
2023-07-01 14:33:08 -03:00
Val Packett
7905c0e16e
Plugin: fix known error string support
...
*facepalm*
2023-07-01 14:33:08 -03:00
Val Packett
bb3eb18942
Plugin: support uploading to arbitrary sync servers
...
Not just the ones we're syncing with
2023-07-01 14:33:08 -03:00
Val Packett
3cf6393d0f
Plugin: extract app filter tiddler, rename demo to docs mode etc.
2023-07-01 14:33:08 -03:00
Val Packett
a78411660b
Plugin: perform a sync right after adding a server
2023-07-01 14:33:08 -03:00
Val Packett
ac9ca79b1e
Plugin: add a button for clearing the storage
2023-07-01 14:33:08 -03:00
Val Packett
e5ff66e048
Plugin: move loadedStoryList setting to be after the load is done
...
Mostly just for consistency / "to be sure"
2023-07-01 14:33:08 -03:00
Val Packett
533f307f08
Plugin: support uploading the app wiki to the server
2023-07-01 14:33:08 -03:00
Val Packett
b8e2dfe3c0
Plugin: add extra BroadcastChannel for updating session (key) status
2023-07-01 14:33:08 -03:00
Val Packett
b34c9a6da9
Plugin: add extra BroadcastChannel for reflecting servers db changes across tabs
2023-07-01 14:33:08 -03:00
Val Packett
6775c789dd
Plugin: key the changes BroadcastChannel by the pathname as well
...
All the things that are shared across the whole origin must be keyed
in the same way for multiple wikis on the same origin to work correctly on the same browser.
2023-07-01 14:33:08 -03:00
Val Packett
70860b046d
Plugin: use Web Locks when available for the syncing process
...
Because IndexedDB transactions aren't allowed to do other async things like fetch,
we need our own locking around the sync process. The isSyncing flag is not enough
because there can be multiple tabs trying to sync the same DB at the same time!
The relatively new Web Locks API gives us an easy solution for this.
2023-07-01 14:33:08 -03:00
Val Packett
58256a95f3
Plugin: avoid saving plugins/themes entirely
...
They should all go into the file, even though they *can* be dynamically loadable (non-JS).
2023-07-01 14:33:08 -03:00
Val Packett
a00f40ce99
Plugin: add saving the wiki without content (for plugin installation)
2023-07-01 14:33:08 -03:00
Val Packett
12c47a76db
Plugin: fix initial handover to DB-stored StoryList
...
hopefully the final StoryList fix
2023-07-01 14:33:08 -03:00
Val Packett
8520ff9d27
Plugin: fix sync button not showing up initially
2023-07-01 14:33:08 -03:00
Val Packett
da4949e529
Manifest: inline the manifest into the HTML file when saving
2023-07-01 14:33:08 -03:00
Val Packett
5b9ba70361
Plugin: remove unused tiddlypwa-install check
...
Now that we require a tiddlypwa-init click for initialization..
2023-07-01 14:33:08 -03:00
Val Packett
0bf1709ddc
Updates for the installer/demo wiki
2023-07-01 14:33:08 -03:00
Val Packett
57019fab9b
Plugin: don't sync StoryList between open tabs
2023-07-01 14:33:08 -03:00
Val Packett
1b72681a58
Plugin: apply synced deletions
2023-07-01 14:33:08 -03:00
Val Packett
c8de609d3b
Plugin: add button to sync with all changes included, just in case
2023-07-01 14:33:08 -03:00
Val Packett
0b826869b6
Plugin: do not lose changes to mtime changing earlier than the sync timestamp
...
By using a date created before calling the save callback as the sync timestamp
for automatic syncs
2023-07-01 14:33:08 -03:00
Val Packett
e614319a25
Plugin: fix the StoryList persistence issue correctly
2023-07-01 14:33:08 -03:00
Val Packett
5c4c51bc60
Plugin: better initialization experience
2023-07-01 14:33:08 -03:00
Val Packett
dcf67646be
Plugin: fix saving as ordinary file
2023-07-01 14:33:08 -03:00
Val Packett
fc8426487a
Plugin: more sync UX, fix wrong exception
2023-07-01 14:33:08 -03:00
Val Packett
7b0ca83ffb
Plugin: some more syncing UI stuff
2023-07-01 14:33:08 -03:00
Val Packett
9cd972bca2
Plugin: Add UI for the StorageManager API
2023-07-01 14:33:08 -03:00
Val Packett
03a4213596
Plugin: only overwrite with server change if local tiddler is older
2023-07-01 14:33:08 -03:00
Val Packett
b6abe2aff8
Plugin: do not sync $:/StoryList with servers
2023-07-01 14:33:08 -03:00
Val Packett
be3a55c0d0
Plugin: only display welcome-back notification if there was a password prompt
2023-07-01 14:33:08 -03:00
Val Packett
59db25d2d9
Cleanup getRandomValues usages
2023-07-01 14:33:08 -03:00
Val Packett
a4588de704
Plugin: switch to getUpdatedTiddlers
...
Now we only reflect to the wiki runtime what we know has changed in storage.
2023-07-01 14:33:08 -03:00
Val Packett
9354b220c2
Add reference sync server using Deno and SQLite
2023-07-01 14:33:08 -03:00