Repository navigation
Shared Tasks 0.5.0-beta.2
Pre-releaseShared Tasks 0.5.0-beta.2 (candidate)
Candidate, not published. These are the notes for the 0.5.0-beta.2
candidate (LFCP-03-067). The files, their checksums and the commit they were
built from are fixed below. No tag and no release page exist yet: the
owner creates them. Nothing here says a release exists.
Shared Tasks 0.5.0-beta.2: the second pre-release of the 0.5 line, to be
checked before the stable 0.5.0 (no pilot). It keeps everything of
0.5.0-beta.1 (the Shared Tasks pane, share, invite and
join in one place) and fixes four things found since. Install it with BRAT.
Catalog users are not updated.
Requires Obsidian 1.13.4 or later, as 0.4.x.
New since 0.5.0-beta.1
- A line you delete while a section is waiting is not forgotten. When a
section is suspended (for example after a lost binding), a line you delete
is kept and sent once the section resumes. Before, it could read as a lost
binding on later passes until you ran "Repair shared sections in this
note". No data was lost
(#57). See Known limits
for three edges. - The notice that syncing stopped names the section. When your access to
a section is removed, the notice uses the section's shared title (folded to
one line and cut at 80 characters) instead of "a shared section", and no
longer prints the server address; the address stays in "Resource status". - One "Review conflicts…" button for one conflict. With a single conflict
the pane drew the same button twice. With several conflicts each row still
opens its own item. - No status pass after the plugin is unloaded. Disabling or reloading the
plugin cancels a pending status refresh
(#78). - Checked, no change needed: a Task completed with the Tasks plugin keeps
its ref line hidden and bound. The screenshot that suggested otherwise shows
the caret on the ref line, which reveals it by design
(#68, C-7).
Unchanged from beta.1: the notes' Markdown format, the sync protocol, the sync
data format on this device (IndexedDB database version 2), @openlfcp/*
0.2.2, spec mvp-0.2-baseline.12, the reference server 0.3.2.
Install
Needs Obsidian 1.13.4 or later. Desktop first: this beta is tested by hand
only on desktop (see Known limits).
With BRAT (the way to try this beta):
- Install and enable BRAT
from Settings → Community plugins. - Run "BRAT: Add a beta plugin for testing", enter
openlfcp/obsidian, and
choose Latest version (a specific version is pinned and BRAT will not
update it). - Enable "Shared Tasks" in Settings → Community plugins and check that the
version listed is0.5.0-beta.2.
By hand: from the release page, download main.js, manifest.json and
styles.css into a new folder <vault>/.obsidian/plugins/shared-tasks/, then
enable the plugin. Compare the files with the checksums below before you
enable it.
| File | SHA-256 |
|---|---|
main.js |
2292fd62bb68fbd03e2af1a6b3178a82db3a4199cbb4637de013af9104b369af |
manifest.json |
5c6136abd4c20b829b40d379634bcf13f0ae055a2158a2f89f177fa297ab8f74 |
styles.css |
b8dd6c368d0c194d127bb85105a2bf3bbb5654ad0d945916d6f1d7ff52c6bb30 |
Built from 0d69b98 (full SHA in the
candidate manifest; a branch
commit: the repository merges by rebase, so the tag commit has a new SHA but
the same src/, lockfile and styles, and the checksums are re-verified at
release). Its source is that of main 75cad16. The tag 0.5.0-beta.2 and
the release page will be created by the owner. @openlfcp/* 0.2.2, spec
mvp-0.2-baseline.12, server lock 138030a. The manifest.json asset is the
file manifest-beta.json.
The default server is the project server wss://sync.openlfcp.org/v1/ws; see
Choosing a sync server before you use it.
Upgrading
From 0.5.0-beta.1: BRAT's update check ("BRAT: Check for updates to all
beta plugins") installs it over the beta; with "Latest version" chosen it
arrives by itself. Nothing is migrated: the sync data format is the same, no
tour or dialog opens. The new field a suspended section may now keep for a
pending deletion is optional.
From 0.4.1 or 0.4.2: install the beta over it (BRAT does this when you add
it). Your identity, keys, shared sections, queued edits and unfinished
operations are kept; an unfinished share or insert is finished under its own
operation. The upgrade from 0.4.1 and 0.4.2 was rehearsed in real Obsidian on
this build (see Under the hood) and, with a queued edit and an unfinished
share, in the
report of beta.1.
Going from 0.3.x straight to this build is as for 0.4: 0.4 upgrades the sync
data once, and 0.3.x cannot open it afterwards
(details).
Rolling back
To 0.5.0-beta.1 or to 0.4.2: install that version over the beta (BRAT:
choose the version for openlfcp/obsidian, or put its three files into the
plugin folder). It starts on the data this beta wrote. A deletion this beta
was still holding for a suspended section is lost on the way back; the line
then reads as lost, as before the fix, and "Repair shared sections in this
note" puts it right. To 0.4.2, what you lose: the hidden tips come back if
0.4.2 saves its settings; the pane is a 0.5 feature and is not there. Roll back
to 0.4.2, not 0.4.1, which lacks the 0.4.2 fix for Task edits in copied
sections. Not supported: going to 0.3.x.
Not rehearsed: the rollback with the kept copies of a deleted note's text
that this beta keeps by section (the 048 change): 0.4.2 reads them by its
older rule, so a kept copy may not show in the card; the text is not deleted.
Nor a crashed share discard followed by a rollback: 0.4.2 can list a section
that was never hosted as an ordinary one; no data is lost
(#53). The rollback to
beta.1 was not rehearsed in real Obsidian; it reads the same data format.
Known limits
- Pane timing. The pane's redraw after a cursor move was measured at
p95 127 to 161 ms on a CI runner against a 150 ms goal before the redraw
was made immediate (three of six series over). After that fix
(#54) two runs on a
macOS CI runner (runs 39063168092 and 39063609331, 200-task section, on a
temporary branch with the same pane code) gave p95 119.0 to 136.5 ms, all
six series within 150 ms, with a small margin. On the exact beta files
(run 39215444645, macOS CI runner, Obsidian 1.14.4) p95 was 108.7 to
123.3 ms in all six series, within 150 ms; another machine can come out
slower. - Not tried by new users yet. The pane has been checked by automated
tests in real Obsidian and by the maintainers, not in a study with new
users; expect rough edges and report them in the
issues. - Not tested by hand: a physical desktop other than CI runners, Windows
or Linux by hand, an input method (IME), or mobile. Shared sections are
read-only on mobile and nothing about them was tried on a real device. - A deletion made while a section is suspended. A line you delete while
a section is waiting (for example after a lost binding) is now kept and sent
once the section resumes
(#57); it no longer
reads as a lost binding. Three edges remain. The deletion goes out without
a check of the line's revision: if a collaborator edited or moved that line
during the wait, your deletion wins and Repair is not offered. If a change
of yours is held back (a pasted line waiting for your choice, or an update
not taken), the kept deletions are forgotten, the line reads as lost again
and the section stays waiting until "Repair shared sections in this note".
No data is lost. A crash between sending the deletion and saving that it was
sent was not tested; the deletion may be sent twice. - Put back after a lost marker and an edit. If a line lost its marker and
its text was changed in the same place, "Put back" can add a second copy of
the line. Check the line after Repair. - A section damaged by the double creation of 0.4.x. Share right after
the plugin loaded could create the server record twice in 0.4.1 and 0.4.2.
This beta cannot do it again, and it repairs a section already damaged
(#72): every save said
"the DEK is not the one committed for epoch 0" and "Check the result"
answered "not known". Run "Check the result", then "Share again"; the text
of your note stays. 0.4.1 and 0.4.2 stay as they are: no 0.4.3 patch is
planned. - Smaller known issues of the pane. A second
node.movecan be sent for
one move (about one run in 40 on Windows), and a few smaller notes of the
review remain
(#68). The text of the
stopped-syncing notice and the double "Review conflicts…" button are fixed
in this beta. - Recurring Tasks. The recurrence of a Task (the 🔁 rule) is not shared:
collaborators get the Task without it (by design; Shared Tasks flags it with
a warning). Completing a recurring Task still gives you the
next occurrence on your side. - 0.4.x. 0.4.1 and 0.4.2 have the double-creation race above and lack
the fix for a newcomer who joins just after the inviter restarted: the
invitation waits for the epoch's snapshot only in this beta
(#73). The newcomer then
cannot load the section until the inviter retries; no access is leaked. A 0.4.3
patch is not planned; report it if you meet it. - Rolling back after a crashed discard. If you cancel a share and a crash
cuts the cleanup, then roll back to 0.4.2, 0.4.2 can list a section that was
never hosted as an ordinary one. No data is lost; the beta finishes the
cleanup when it runs again
(#53). - Project server quotas. The server accepts 24 open connections in all
and 8 per network address, 200 collaborations per identity, 50 new ones a
day from one address. Several people on one network share the per-address
limit; past a limit the action is refused with "quota exceeded" and nothing
already shared is lost. - No notion of "seen". A ✓✓ on a section means it is shared; it does not
mean anyone has read it. There are no read receipts, no delivery state of
an invitation, no inbox of incoming invitations, and no way to cancel an
unused invitation or give it an expiry. An invitation link works once, for
whoever opens it first. - Everything else from 0.4: section size (about 200 tasks is the qualified
size), no headings inside a section, local-only Tasks tokens, one server
per collaboration, data on the public server can be lost. See the
0.4.0 notes and the README's Limitations.
Under the hood
- Native evidence (real Obsidian, with the reference server): the full native
set on the exact betamain.js(release_build; two real Obsidian apps,
and the upgrade and rollback specs against 0.4.2): run 39215441248, Ubuntu, macOS and Windows with Obsidian
1.13.4 and 1.14.4, 51 specs, 6 of 6 jobs passed. One job (Ubuntu, Obsidian
1.13.4) failed at the first attempt inpane-access-copy-detach(a dialog
the spec waited for did not open) and passed when rerun once (the same spec failed in earlier matrix runs: F7 in
the native matrix report,
"product defect or click race, not settled"); the other
five passed at the first attempt - Pane performance: run 39215444645, macOS, Obsidian 1.14.4: B1 p95 108.7 to 123.3 ms
in six series (budget 150 ms) - Smoke of the exact files: the native and performance runs built
main.js
andstyles.csswith the checksums above (printed in their summaries). The
manifest.jsonasset differs from the file those runs used only in its
versionfield (they used the catalogmanifest.json); see the
candidate manifest.