feat: describe managed sharing activity

Every action a manage-level route files now renders as its own sentence in
the owner's activity view, in all six locales. A write delegate can only add,
so the generic "made a change" was at least the right shape of fact; a manager
changes and removes entries the owner made themselves, and the generic line
withholds the only part that matters — whether a reading was corrected or
deleted, whether a dose history was purged.

The inventory reads the routes and calls the map rather than matching `case`
in its source, so an action that falls through to the fallback fails, and it
follows each resolved key into all six bundles. Every sentence interpolates
the actor's name and nothing else: the audit table is not encrypted and a
value in a verb line would be a health figure in a second store.

The revoke dialog's retention disclosure no longer depends on which of two
requests answers first. `retentionDays` rides the grant list, so a client
holding a row to revoke holds the window it must state, and the branch that
omitted the sentence is gone.
This commit is contained in:
Marc-André Bombeck committed 2026-08-06 23:30:07 +02:00
1 parent 25b1b0eab6
commit c92a80ee4c
15 files changed
+1131 -61

No files matched your search

+9
View File
@@ -37000,9 +37000,18 @@ components:
type: array
items:
$ref: "#/components/schemas/AccountGrant"
retentionDays:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
description: How long the record's activity feed can still attribute an entry to the person who made it, in days.
Resolved from the instance's audit retention setting (365 by default, operator-configurable), NOT a
constant. It rides this payload so a client ending an access can state the window in the same breath,
without a second request whose timing would decide whether the owner was told.
required:
- given
- received
- retentionDays
additionalProperties: false
description: "Both directions at once: `given` are the grants this account has offered on its own record, `received` are
the ones offered to it. Capped at 100 rows per direction, newest first."