Memory Boundaries (Personal / Shared / Sandbox)

Memory Boundaries: Personal, Shared & Sandbox

Status — Design contract v1 (locked 2026-10-13). The personal and shared layers are available today; the task sandbox and the unified scope metadata are in development. Every claim on this page carries its status — see what is enforced today.

Every memory product has to answer one question precisely: what can an agent write, and where may that data travel? If the answer depends on convention rather than a verifiable contract, the first cross-agent accident is only a matter of time.

Awareness makes the boundary explicit at three layers — personal, shared, and sandbox — with a read/write matrix, a single legal direction for data flow, and fail-closed enforcement points.


The three layers

LayerWhat it isWhere it livesDefault visibilityLifecycle
PersonalYour long-term memory — the core assetLocal .awareness/{memories,knowledge,...} (Markdown + SQLite index); cloud memories with owner ACLOnly you (+ members you explicitly add)Permanent (evolves with growth / archive)
Shared① Team / organization memory ② Public knowledge (KaaS) ③ (future) multi-agent shared board① Cloud multi-tenant + memory membership ② Published knowledge + organization knowledge policies ③ PlannedTeam members / knowledge consumers / authorized agentsGoverned by retention policies
SandboxPer-task / per-agent-run scratch scopeIn development — designed as an isolated per-task storeOnly that task / that agent runTTL after the task ends (default 7 days)

The read/write matrix

Reader \ Datapersonalsharedsandbox
Your session (default)✅ Read / Write✅ Read (within authorization) + Write (explicit share only)✅ Read / Write (your own task)
Sandboxed task agent✅ Read-only (bounded context)✅ Read (within authorization)✅ Read / Write (this task only)
Other agents / external callers❌ fail-closed✅ Read (authorized)❌

The important asymmetry: a sandboxed agent may read your personal memory to do its job — it can never write it.


      promote                    share
sandbox ────────▶ personal ────────────▶ shared
                     ▲                     │
                     └──── consume ────────┘
  • Sandbox never writes personal automatically. The only path is an explicit promote, carrying provenance (task_id, agent_role, source runtime) and producing an audit event.
  • Personal never enters shared automatically. Sharing is always an explicit action governed by the existing authorization model (memory membership / organization policies).
  • Shared can be consumed into personal with an explicit action (for example, importing the result of a knowledge retrieval).

The planned promotion tool is awareness_sandbox_promote — the name deliberately avoids collision with the unrelated card-extraction "promotion" concept.


Fail-closed enforcement

TriggerExpected behavior
Sandbox context tries to write personalRejected with a structured error (including promotion guidance); the attempt is audited
Promotion without provenanceRejected; the error states which field is missing
Historical data without a scope fieldTreated as personal; never cleared or lossy-migrated
Concurrent promotions of the same itemExactly-once (idempotency key / CAS); duplicates return "already promoted"
TTL clock drift / timezoneStorage timestamps in UTC; cleanup is re-entrant and idempotent
Policy change revokes sharingExisting two-way reconciliation applies — no side channel

These are the acceptance criteria the sandbox implementation must satisfy before it ships.


Status: what is enforced today

CapabilityStatusNotes
Personal memory isolation (cloud)✅ AvailablePer-memory owner ACL; nobody else sees it unless explicitly added
Personal memory isolation (local)✅ AvailableFiles live on your own disk under .awareness/
Explicit team sharing✅ AvailableMemory membership + organization knowledge policies
Public knowledge (KaaS)✅ AvailablePublished knowledge with policy-driven retention
Project-level separation✅ AvailableProject workspaces — see the axes table below
Task sandbox layer🚧 Design-locked, in developmentDaemon slice first, then cloud; no shipped-date claims
Unified scope metadata🚧 Design-locked, in developmentFollows the sandbox implementation; default personal keeps existing installs behavior-identical

We publish this table because an enterprise boundary is only worth what is actually enforced. If you need the sandbox layer for a specific compliance story, contact us — we will tell you precisely where it stands.


Three different axes: scope vs workspace vs agent_role

These three fields are routinely confused. They are orthogonal:

FieldAnswersValuesExample
scopeHow far may this data travel?personal · shared · sandboxA draft insight stays personal until explicitly shared
workspace_idWhich project does this belong to?A workspace rootThe same personal memory can belong to the client-x workspace
agent_roleWho wrote this? (provenance, not permission)A role label (reviewer, external_task, …)An agent's event carries agent_role=reviewer

One card can simultaneously be scope=personal, workspace_id=client-x, agent_role=reviewer — one owner, one project, one author. None of the three implies the others, and changing one never silently changes another.


What this means for enterprise buyers

  1. Personal memory is private by default. Only you can read the memories in your personal layer — additional members only when explicitly added.
  2. Sharing is always an explicit action. Every item visible to your team was deliberately shared; revocation removes visibility.
  3. Task runs are isolated and auditable — in development. Agent work products land in a sandbox; promotion into your memory requires you (or your policy) to approve, with a full audit trail.

The first two are enforced today. The third is the contract this page specifies — we mark it as in development rather than sell it early.


Roadmap

SliceScopeStatus
A · Local daemonscope metadata, write guard, recall filter, sandbox store, promotion + auditNext
B · Cloudscope columns, API filters, sharing semantics, audit eventsAfter backend stabilization
C · DocumentationThis page✅ Published

Contact

Enterprise evaluation, DPA, or self-hosted deployment: everest9812@gmail.com


© 2026 Awareness. All rights reserved.