NEC-132: Share link: no way to turn it off or replace it from the plugin #196

Merged
nectenda-agent merged 2 commits from worktree-nec-132-share-link-no-way-to-turn-it-off-or-repl into main 2026-09-27 10:50:29 +01:00
Collaborator

Task: NEC-132 — https://projectron.nerchure.com/tasks/132

The organisation page offered only Copy for the share link, so an owner who sent it to the wrong person could not take it back, though the shard has had PATCH /account/share-key and /rotate all along. The page now has a Share link row with Copy, Replace… and Turn off… while it is on, and Turn on while it is off. The row shows Copy alone until the server says which. Turning it back on revives the same key, so the confirmation points at Replace for a link that went astray. The claim that a link turned off or replaced stops working at once is pinned as WIRE-063 and tested on the hosted /auth/join path; mutation-checked by dropping the enabled condition from findAccountByShareKey.

Spec: docs/changes/NEC-132-share-link-off-and-replace/spec.md

Changelog

Owners and admins can now turn their organisation's share link off, or replace it with a new one, from the organisation page; the old link stops working at once.

Task: NEC-132 — https://projectron.nerchure.com/tasks/132 The organisation page offered only Copy for the share link, so an owner who sent it to the wrong person could not take it back, though the shard has had PATCH /account/share-key and /rotate all along. The page now has a Share link row with Copy, Replace… and Turn off… while it is on, and Turn on while it is off. The row shows Copy alone until the server says which. Turning it back on revives the same key, so the confirmation points at Replace for a link that went astray. The claim that a link turned off or replaced stops working at once is pinned as WIRE-063 and tested on the hosted /auth/join path; mutation-checked by dropping the enabled condition from findAccountByShareKey. Spec: `docs/changes/NEC-132-share-link-off-and-replace/spec.md` ## Changelog Owners and admins can now turn their organisation's share link off, or replace it with a new one, from the organisation page; the old link stops working at once.
The organisation page offered only "Share link" (copy). An owner who sent
the link to the wrong person had no way to take it back, though the shard
has had PATCH /account/share-key and /rotate all along.

The page now has a Share link row: Copy, Replace… and Turn off… while it
is on, Turn on while it is off. It shows only Copy until the server says
which, so no button guesses at the state. Turning it back on revives the
same key, so the Turn off confirmation points at Replace for a link that
went astray, and Turn on says an old copy works again.

"Stops working at once" is pinned as WIRE-063: the shard checks the key
at every join rather than trusting the directory. It now has a test on
the hosted /auth/join path, not only the self-hosted register.

Task: NEC-132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017DtdAG3rXuR5vyYZcEMERc
Tell the owner the old link is dead even when copying the new one fails
All checks were successful
Release note / release-note (pull_request) Successful in 14s
CI / build (pull_request) Successful in 5m2s
CI / e2e (pull_request) Successful in 5m33s
CI / promote (pull_request) Has been skipped
54855907d0
From review of the first commit:
- Replace put the rotate and the clipboard write in one try, so a failed
  copy hid a successful replace. It now says the old link is dead either way.
- Rotating leaves the on/off switch alone. If another admin turned the
  link off meanwhile, Replace copied a link that admits nobody. It now
  re-reads the state and copies only a live link.
- An action finishing after a redraw took the section's generation for
  a detached row, discarding the live row's answer. It now skips.
- The spec cited unit tests for wording and redraw they do not check;
  those lines now say they are read, not tested.

Task: NEC-132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017DtdAG3rXuR5vyYZcEMERc
cruelacid force-pushed worktree-nec-132-share-link-no-way-to-turn-it-off-or-repl from 54855907d0
All checks were successful
Release note / release-note (pull_request) Successful in 14s
CI / build (pull_request) Successful in 5m2s
CI / e2e (pull_request) Successful in 5m33s
CI / promote (pull_request) Has been skipped
to 11b9f4e9d5
All checks were successful
Release note / release-note (pull_request) Successful in 13s
CI / build (pull_request) Successful in 4m45s
CI / e2e (pull_request) Successful in 5m22s
CI / promote (pull_request) Has been skipped
CI / build (push) Successful in 4m59s
CI / e2e (push) Successful in 5m20s
CI / promote (push) Successful in 30s
2026-09-27 10:44:28 +01:00
Compare
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
Nectenda/nectenda!196
No description provided.