v7: Editor-side outbound — send signed writes + remote-project edit UI #62

Closed
opened 2026-06-29 21:28:04 +00:00 by claude-bot · 0 comments
Contributor

The other half of the round-trip. The host-inbound first pass (#9 / #10 / #11 / #12) makes a host instance accept signed entry writes from invited remote editors, validated with a signing test harness. This issue builds the editor's side: the instance a remote collaborator is logged into, so a real person — not a test harness — can drive the write path end-to-end across two live instances.

Deferred from the host-inbound first pass by design (scope decision during v7 planning). Build once #9/#10/#11/#12 have landed and the inbound protocol is proven.

Scope (editor's instance)

  • "Shared with me (remote)" surface. Show projects on other instances this user has been invited to edit. The discovery layer already tracks remote public projects (federated_projects + the federation-sync worker); extend it to record invitations (where this instance's local user is the invited remote_actor_url on a remote host).
  • Remote-project read view. Fetch the host project's entries for display (over the existing federation read path / an authenticated AP fetch).
  • Edit UI → outbound delivery. On create/update, deliver a signed AP Create/Update (Note object, addressed to the host owner's inbox with context = the project URL — the convention #10 defines on the receiving side) via the existing apDeliveryWorker + HTTP-signature signing (apCrypto).
  • Outcome feedback. Surface the host's disposition back to the editor — applied vs. conflict vs. rejected — so they know whether their edit took (the host records this in remote_contributions; needs a way to report it back, e.g. an AP Accept/Reject to the editor's inbox, or a status fetch).

Dependencies

Hard-depends on #10 (the host-side addressing convention + authorization) and #12 (schema). Pairs with #9 (the invite that this side consumes).

Out of scope

Real-time presence/collaboration; offline edit queueing beyond the existing IndexedDB capture.


Filed as the tracked editor-side follow-up to the v7 host-inbound-first scope decision.

The other half of the round-trip. The host-inbound first pass (#9 / #10 / #11 / #12) makes a host instance **accept** signed entry writes from invited remote editors, validated with a signing test harness. This issue builds the **editor's** side: the instance a remote collaborator is logged into, so a real person — not a test harness — can drive the write path end-to-end across two live instances. **Deferred from the host-inbound first pass by design** (scope decision during v7 planning). Build once #9/#10/#11/#12 have landed and the inbound protocol is proven. ### Scope (editor's instance) - [ ] **"Shared with me (remote)" surface.** Show projects on other instances this user has been invited to edit. The discovery layer already tracks remote public projects (`federated_projects` + the federation-sync worker); extend it to record *invitations* (where this instance's local user is the invited `remote_actor_url` on a remote host). - [ ] **Remote-project read view.** Fetch the host project's entries for display (over the existing federation read path / an authenticated AP fetch). - [ ] **Edit UI → outbound delivery.** On create/update, deliver a signed AP `Create`/`Update` (`Note` object, addressed to the host owner's inbox with `context` = the project URL — the convention #10 defines on the receiving side) via the existing `apDeliveryWorker` + HTTP-signature signing (`apCrypto`). - [ ] **Outcome feedback.** Surface the host's disposition back to the editor — applied vs. conflict vs. rejected — so they know whether their edit took (the host records this in `remote_contributions`; needs a way to report it back, e.g. an AP `Accept`/`Reject` to the editor's inbox, or a status fetch). ### Dependencies Hard-depends on #10 (the host-side addressing convention + authorization) and #12 (schema). Pairs with #9 (the invite that this side consumes). ### Out of scope Real-time presence/collaboration; offline edit queueing beyond the existing IndexedDB capture. --- _Filed as the tracked editor-side follow-up to the v7 host-inbound-first scope decision._
rbrooks referenced this issue from a commit 2026-06-30 15:08:13 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rbrooks/TeaLeaves#62
No description provided.