@ai-matrx/records 0.47.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog — @ai-matrx/records
2
2
 
3
+ ## 0.48.0
4
+
5
+ **A portal principal carries the link the office copies for them.** (lane TAILS-5.)
6
+
7
+ * **`PortalPrincipal.accept_path`** — `/invitations/portal/accept/<token>`, the same path
8
+ `custom.portal_invite` hands back when somebody is asked, read off the same `iam.invitations`
9
+ row and never re-templated. `custom.portal_card` carries it per person as of the migration
10
+ `tails5b_the_portal_card_carries_the_link.sql`.
11
+ * **`null` is an answer, not an absence.** It is null when they have already followed the link,
12
+ when the office took it back (a revoke withdraws the invitation in the same statement), when
13
+ it expired, or when they arrived through the server's own magic-link route, which binds
14
+ without an invitation at all. A screen that meets `null` says so in words — it never draws a
15
+ dead control.
16
+ * **Why it exists**: PORTAL-BIND left this named — *"the office's own copy-link is one line
17
+ short"*. The door answered the office once, with one sentence and one link, and the moment
18
+ that sentence scrolled away the link was gone: the panel redraws from `portal_card`, which
19
+ knew somebody was "invited and waiting" and had no way to say what they were waiting on. So
20
+ texting a customer their link — which INVITE-DELIVERY measured as the ORDINARY case, not the
21
+ fallback — meant inviting them a second time to see it again.
22
+
23
+ **Consumer action:** none. `accept_path` is a new field on an existing answer; nothing that
24
+ reads `PortalPrincipal` today has to change. A surface that offers a copy-link must handle the
25
+ `null` case with a sentence.
26
+
3
27
  ## 0.47.0
4
28
 
5
29
  **A refusal this package does not recognise no longer becomes a sentence about this package.**