Skip to content

Sharing changes from server 1.6.0, and BerryTree import - #92

Merged
SiteRelEnby merged 6 commits into
mainfrom
feat/sharing-1.6-berrytree
Sep 24, 2026
Merged

SiteRelEnby merged 6 commits into
mainfrom
feat/sharing-1.6-berrytree

Conversation

@fullynocturnal

Copy link
Copy Markdown
Collaborator

Brings the app up to date with the sharing changes in server 1.6.0 and adds the new BerryTree importer. Also fixes a bug in the PATCH adapters that this work depends on.

Sharing

  • Show everyone set to Public: a new switch on a share view (include_all_public_members). It's treated like the other exposure flags, so on a live view it steps up and stages. While it's on, the members section explains that the hand-picked list is kept but not in use, and the Sharing audit line shows the served count on its own.
  • Staged member privacy: the member editor reads pending_privacy / privacy_activates_at and shows when a member will go Public. privacy is now only sent when it was edited, because the server treats any non-public value as a lowering, and a lowering cancels the staged raise. Before this, editing only a member's name would have silently cancelled the wait.
  • Creating a member as Public now passes re-auth credentials, since that can publish them when a view shows everyone set to Public.

Link previews were already supported.

BerryTree import (experimental)

Added as another source in the shared import flow. Template members are off by default, and the note on them explains they only come across when all members are selected. Fronting types are mentioned on front history. The unsupported sections and BerryTree's own export_errors are listed in the preview. The job detail page already shows the runner's warning events, so the list shows up there after the import too.

Fix: PATCH adapters dropped fields

MemberUpdate, GroupUpdate and SystemUpdate use hand-written adapters, and those never wrote password / totp_code. never_shareable and fronting_private were missing on members, and privacy was missing on groups. As a result, re-auth never reached the server, the member guard switches didn't save, and a group's privacy couldn't be changed. The new tests build each body with every field set and assert every key is written.

Testing

  • :app:testOpenDebugUnitTest passes (the new adapter tests failed before the fix)
  • :app:compileOpenDebugKotlin and :app:compilePlayDebugKotlin pass
  • Not yet tried on a device against a 1.6.0 server

fullynocturnal and others added 6 commits September 22, 2026 21:16
… system edits

The hand-written PATCH adapters only wrote the fields they listed, and the
list was missing password and totp_code on all three bodies, never_shareable
and fronting_private on members, and privacy on groups. So a re-auth prompt
never reached the server, the two member guards never saved, and a group's
privacy could not be changed at all.

Tests now build each body with every field set and check every key is on
the wire, so a field added later without an adapter entry fails here.
Adds include_all_public_members from server 1.6.0 as another exposure flag,
so it steps up and stages the same way the others do. While it is on, the
members section says the hand-picked list is kept but not in use, and the
audit line reports the served count instead of comparing it to that list.
Server 1.6.0 stages a member's privacy raise on the member itself
(pending_privacy, privacy_activates_at) instead of hiding them from views.
The editor now loads the level the member is heading for and says when it
takes effect. Privacy is only sent when it was edited, because any other
level counts as a lowering and would cancel the wait. Creating a member as
Public passes the re-auth credentials through, since that can now publish
them.
Uses the 1.6.0 preview endpoint and the shared import flow. Template
members are off by default, fronting types are noted on front history,
and the unsupported sections and BerryTree's own export errors are listed
before anything is imported.
@SiteRelEnby
SiteRelEnby merged commit bc2ec98 into main Sep 24, 2026
1 check passed
@SiteRelEnby
SiteRelEnby deleted the feat/sharing-1.6-berrytree branch September 24, 2026 01:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants