Repository navigation
Shared Tasks 0.5.0
Shared Tasks 0.5.0
Shared Tasks 0.5.0: collaboration you can do without learning the commands. A
visible pane and a card on the section lead you through sharing, inviting and
joining, show what needs attention with a direct way to fix it, and pick up
unfinished work after a restart. For catalog users updating from 0.4.2.
Requires Obsidian 1.13.4 or later, as 0.4.x.
The Markdown format of your notes and the sync protocol are unchanged. The
command palette commands keep their names and still work; everything about
sections is also in the pane and the card, and single tasks are still shared
with commands.
What is new since 0.4.2
- The Shared Tasks pane. One pane per workspace, opened from the ribbon
icon ("Open Shared Tasks pane"), the command of the same name, the section
card, or the editor's context menu. It follows the note you are in and
offers the next step for the cursor: "Share section…" on a heading,
"Invite collaborator…" on a shared section, "Insert into a note…" for a
section you joined and have not placed yet. It lists the shared sections
this device knows, where each is used, and what needs attention. - Share, then invite, in one place. Before you confirm, the pane shows
what a share will publish (the lines, the sync server, how comments are
handled). It says whether the section is on its server yet and offers the
invitation only when it is ready. An invitation says "One-time link, does
not expire; whoever opens it first joins." and you choose Read or
Read + write each time. "Link copied" means the link is on the clipboard:
Shared Tasks does not send it. - Join with a pasted link, then choose where it goes. "Join with a
link…" shows each step (the server accepted the claim, your access, the
section loaded), then inserts the section into a note you choose, with a
readable preview. A join you give up on, or one whose answer was lost, can
be checked again; it is never started a second time. - Problems with a direct way to each fix. A problem hub lists what needs
attention and opens the matching conflict dialog or "Repair shared sections
in this note". Local text that has not been sent is told apart from what
the server has accepted and from an empty queue. - Unfinished steps stay in view. A share cut short by closing Obsidian
resumes by itself after the restart. An unfinished insert or join is
listed in the pane, where you continue it or check the result. - Tips on demand. Short tips explain an action when it is offered. "Hide
tip" hides one in this vault; "Show tips again" brings them back. No tour
opens on install or update. - Neutral wording. Texts about sections no longer speak of
"collaborations"; the older shared-task commands no longer offer a shared
section as if it were a task collaboration. - Faster pane. A cursor move redraws the pane at once.
- From the keyboard. The pane and its dialogs work from the keyboard:
opening the pane puts focus on it, Tab reaches its buttons, Enter activates
them, Esc cancels joining, and focus stays inside a dialog and returns to
the button that opened it. Commands have no default hotkeys; assign them in
Obsidian's Hotkeys settings.
Fixed since 0.4.2
- Pasted lines are not overwritten. A Task or paragraph pasted into a
section that already syncs, which this device's sync record did not know,
is held for your choice instead of being replaced by the shared version.
This closes the known limit of 0.4.2
(#41). "Repair shared
sections in this note" shows both versions. - A line Obsidian's merge dropped comes back. The status says the line is
missing and points to "Repair shared sections in this note", which offers
to put it back. - A second Share is not stuck. Sharing two sections quickly, or Share
right after the plugin loads, no longer leaves a section "hosting pending"
without a message, and no longer creates its server record twice. A
section already damaged this way is repaired
(#72). - A deletion made while a section is suspended is kept. It is sent when
the section resumes and no longer reads as a lost binding
(#57). - A resumed edit is kept after a lost line. A batch of edits saved before
a restart is no longer sent twice when a line it touched was lost in
between. - The first click on a pane button counts ("Join with a link…" after a
restart, "Remove access…"). - An honest insert preview. It no longer says "Not inserted in any note
yet" for the note the section came from. - Notes you delete. The local record of a deleted note is forgotten, a
copy of its text you did not resolve is kept until you discard it, and a
record of a note missing for 30 days is cleaned up. Your own text is never
removed by that cleanup. - A clearer stopped-syncing notice. It names the section and says "the
sync server" instead of printing the server address (the address stays in
"Resource status"). A single conflict shows one "Review conflicts" button. - No work after unload. A pending status pass no longer runs after the
plugin is unloaded. - Dialogs no longer overlap. In the insert dialog "Choose another
note…" has a row of its own under the sentence; in "Repair shared sections
in this note" and in the recovery dialog the Apply button sits below the
choices instead of on top of their text. - "Link copied" is a short confirmation. It disappears a few seconds
after the copy and after the invitation dialog closes, instead of staying
in the pane. - Fewer races. Saving a note's sync record and its journal no longer
interleave when two passes overlap. - Under the hood. The TypeScript SDK is
@openlfcp/*0.2.2; spec
mvp-0.2-baseline.12; the project server runs the reference server 0.3.2,
unchanged.
Install and upgrade
From Settings → Community plugins → Updates. Your identity, keys, shared
sections, queued edits and unfinished operations are kept. The update opens
no tour and no dialog, because the sync data format is the same (IndexedDB
database version 2). The upgrade from 0.4.1 and 0.4.2 was rehearsed in real
Obsidian (report).
Going from 0.3.x straight to 0.5.0 is as for 0.4: the sync data is upgraded
once and 0.3.x cannot open it afterwards (details).
By hand: put main.js, manifest.json and styles.css from the release
page into <vault>/.obsidian/plugins/shared-tasks/ and compare them with
these checksums.
| File | SHA-256 |
|---|---|
main.js |
35fb226f28ddb6378ef85a425014873dbc96a63b0e6dcf348e8ed932ab9bae31 |
manifest.json |
5500adc55a32565311a9ad93745946540501045bf2c1eb6715ab84eed9139667 |
styles.css |
373028272ef8c3ed42c2c6b3b3c45ffaec3d030ee3ddd6b6163366d5f91a67c1 |
Built by CI from the commit the tag 0.5.0 points to (the release workflow
runs scripts/release-assets.mjs); the build was rehearsed on branch
mvp03/073-release-0.5.0 and gave these checksums in the native, performance
and release dry runs (candidate manifest).
@openlfcp/* 0.2.2, spec mvp-0.2-baseline.12, server lock 138030a. The
release page also carries a build provenance attestation: gh attestation verify main.js --repo openlfcp/obsidian.
Rolling back to 0.4.2
Install 0.4.2 over 0.5.0 (BRAT: choose version 0.4.2 for openlfcp/obsidian,
or put 0.4.2's three files into the plugin folder). It starts on the data
0.5.0 wrote: the same identity and sections, queued edits sent, an
unfinished share finished. The pane is a 0.5 feature and is not in 0.4.2;
hidden tips come back. Roll back to 0.4.2, not 0.4.1, which lacks the 0.4.2
fix for Task edits in copied sections. Going to 0.3.x is not supported.
Not rehearsed: after a rollback, a kept copy of a deleted note's text may not
show in the card (the text is not deleted); and if a crash cuts the cleanup
of a cancelled share before you roll back, 0.4.2 can list the section that
was never hosted as an ordinary one, with no data lost
(#53).
Known limits
- Desktop first. Tested by hand on desktop only; automated runs use real
Obsidian 1.13.4 and 1.14.4 on Linux, macOS and Windows runners. Not tested
by hand: Windows or Linux desktops, an input method (IME), mobile. Shared
sections are read-only on mobile and nothing about them was tried on a
real device. - Wording of the pane was not checked with people before this release;
expect rough edges. - A late move can be sent twice (#68).
- Pane timing. Pane updates measured at p95 108.1–146.5 ms on a macOS CI
runner for this build (goal 150 ms; the slowest case is the active note with
Tasks on); slower machines may take longer. - Repeat signs do not sync. The recurrence of a Task (🔁) stays on the
device that has it, by design, so two notes can show different titles of a
repeating Task. The date and the done state sync. - Put back after a lost marker and an edit. If a line lost its marker and
was edited in the same place, "Put back" can add a second copy. Check the
line after Repair. - 0.4.1 and 0.4.2 keep the double-creation race and lack the fix for a
newcomer who joins just after the inviter restarted; no 0.4.3 is planned. - Project server quotas. 24 open connections in all and 8 per network
address, 200 collaborations per identity, 50 new ones a day from one
address; past a limit an action is refused with "quota exceeded" and
nothing already shared is lost. - No notion of "seen". A ✓✓ means shared, not read. There are no read
receipts, no state of an invitation, no inbox, and no way to cancel an
unused invitation or give it an expiry. A link works once, for whoever
opens it first. - Beta software; not for data you need to protect. Data on the public
server can be lost. - From 0.4: about 200 tasks is the qualified size of a section, no headings
inside a section, one server per collaboration. See the
0.4.0 notes and the README's Limitations.
Earlier notes: 0.5.0-beta.2, 0.5.0-beta.1, 0.4.2.