@kehto/paja 0.9.0 → 0.11.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/README.md CHANGED
@@ -67,6 +67,34 @@ canonical failure and is not added to Paja's in-memory relay view. Paja's
67
67
  scoped-relay hook likewise waits for the backend result and returns `false`
68
68
  after denial or transport failure.
69
69
 
70
+ ## Standard identity and social-cache boundary
71
+
72
+ A signed-in napplet reads Paja identity and social data only through existing
73
+ `identity.getPublicKey`, `identity.getFollows`, and ordinary kind-0
74
+ `outbox.query` messages. Paja exposes no social namespace, direct networking,
75
+ or signer/key capability for this behavior.
76
+
77
+ Paja privately validates the active account's replacement kind-3 contact list,
78
+ then warms followed kind-0 profile records through its established outbox router.
79
+ The resulting snapshot is active-account-scoped and memory-only. It is distinct
80
+ from generic simulation cache mode; it is not napplet-owned storage and has no
81
+ durable-cache controls. Captured-key request correlation keeps a follows request
82
+ bound to the account that started it, while generation-safe background writes
83
+ prevent stale-account data from becoming the active snapshot.
84
+
85
+ A normal query can include matching cached `RelayEventResult` values, but Paja
86
+ retains the base router's query-wide `incomplete` and `error` fields. A cache hit
87
+ does not make a degraded query complete. Profile winner selection, pagination,
88
+ follow mutation, durable-cache management, and per-author completeness are
89
+ outside this behavior.
90
+
91
+ [NAP-IDENTITY at `6461e4b37c29dc09a20dff35d9515889c4433874`](https://github.com/napplet/naps/blob/6461e4b37c29dc09a20dff35d9515889c4433874/naps/NAP-IDENTITY.md)
92
+ is byte-identical to the recorded `napplet/naps` master document for this phase.
93
+ Pinned [NAP-OUTBOX at `4589a8f9a16d8aa29b3740e2b3b0cdca11e0976e`](https://github.com/napplet/naps/blob/4589a8f9a16d8aa29b3740e2b3b0cdca11e0976e/naps/NAP-OUTBOX.md)
94
+ together with installed `@napplet/nap@0.29.0` types is the PoC contract because
95
+ current master has no NAP-OUTBOX path. Paja therefore makes no current-master
96
+ OUTBOX conformance claim. Blossom behavior remains Phase 103 scope.
97
+
70
98
  The static Paja Runtime build is served at `/web/paja/` in the GitHub Pages
71
99
  artifact. It uses the same browser host and service adapters, but loads verified
72
100
  napplet HTML from pasted `naddr` or `nevent` pointers with `hmr: none`. Each
@@ -93,17 +121,16 @@ accepted only when it is an installed compatible handler and the invoking sender
93
121
  has been explicitly authorized for it. It is not a request to deliver to an
94
122
  arbitrary running frame.
95
123
 
96
- When Paja accepts an invocation, it first retains an immutable target delivery,
97
- then returns the accepted result. Only after that result can it reuse a current
98
- target or start a cold target. The controller waits for the target generation's
124
+ When Paja receives an invocation, it selects and opens or reuses a verified
125
+ target. The controller waits for the target generation's
99
126
  registered `MessageEvent.source` to establish its real `shell.ready` session;
100
- it checks that generation is still current and sends one target-only
101
- `intent.deliver`. The invoking source may be torn down after acceptance without
102
- changing that responsibility. A superseded target/source, failed open/readiness,
103
- or terminal send is handled by the controller's replacement/retry/terminal
104
- policy; it never turns into an INC carrier or a delivery acknowledgement.
127
+ it checks that generation is still current, sends one target-only `inc.event`
128
+ with the selected queryless convention, and returns the final handled target
129
+ identity. A superseded target/source, failed open/readiness, or terminal send is
130
+ handled by the controller's replacement/retry/terminal policy and produces a
131
+ canonical failed `IntentResult`.
105
132
 
106
- `@napplet/shim@0.27.0` supplies no generic shell API. Kehto deliberately keeps
133
+ `@napplet/shim@0.29.0` supplies no generic shell API. Kehto deliberately keeps
107
134
  its host-owned mandatory `window.napplet.shell` prelude: it installs the live
108
135
  receiver before the one bare `shell.ready`, caches the first `shell.init`, and
109
136
  provides local `ready()`, `supports()`, read-only `services`, and one-shot