You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
RFC-0001: Scopes & visibility — who may see a memory (format 1.2 proposal) #11
The format says where a memory belongs (contextID → context records, nested via parentID) and how sensitive it is (sensitivity), but not yet who may see it — a channel, one person, or a group. Vendor visibility settings survive a round-trip only as opaque ext/metadata: lossless, but not meaningful to a receiver, so a cross-vendor import can silently widen the audience of a private memory. This is the one layer of the format that still has no shared meaning (it is also the layer Stan Tyan's portability checklist grades hardest).
Proposal (short form — full text in the RFC document)
An optional visibility object — { "level": private | group | shared | public, "principals": ["user:…", "group:…", "channel:…"] } — on context records (scope defaults) and on individual records (overrides). Principals are opaque labels, not accounts: the format never resolves them; a receiver maps what it can and treats the rest default-deny. Most-restrictive-wins on merge; receivers MUST preserve it verbatim and SHOULD honor it. Minor bump to format 1.2.0; every field optional, so 1.0/1.1 bundles stay valid.
Principal identifiers — opaque prefixed strings (user:, group:, channel:, space:, agent:) vs. recommending W3C DIDs for the user type.
The default for bundles that carry no visibility at all: unspecified → receiver applies its own default, and MUST NOT widen beyond private-to-importer without consent (proposed) vs. private.
Whether shared should require a scope principal (channel:/space:), or may be bare.
Prerequisite: foreign-field carriage (ext) today exists only on episode; for visibility on other kinds to survive 1.0/1.1 readers losslessly, ext must extend to every record kind (candidate RFC-0002). Objections?
Process
Comment period until 2026-10-05, then decision by lazy consensus per GOVERNANCE. Accepted → implemented in both reference SDKs with a shared fixture before format 1.2.0 is stamped.
RFC text: #12 (Python repo) · MacPaw/portable-memory-swift#13 (Swift repo — same bytes). Read the rendered document at Spec/rfcs/0001-scopes-and-visibility.md on the rfc/scopes-visibility branch until the PRs merge.
Activity
Krivoblotsky commentedon Sep 14, 2026
RFC text: #12 (Python repo) · MacPaw/portable-memory-swift#13 (Swift repo — same bytes). Read the rendered document at
Spec/rfcs/0001-scopes-and-visibility.mdon therfc/scopes-visibilitybranch until the PRs merge.