Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
36d006a
Read independent ACK sources with the native receipt writer
qh-work Sep 30, 2026
6d36f3f
Upload native saved receipts and retain interoperable recovery journals
qh-work Sep 30, 2026
83011b9
Stop ACK upload when current permission expires during journal persis…
qh-work Sep 30, 2026
5c2594d
Replay native receipt journals across restarts without renewing autho…
qh-work Sep 30, 2026
e383f65
Return actual saved receipts through the native Agent and shared dura…
qh-work Sep 30, 2026
2479cf1
Align alpha35 plugin version and include native writer review fixtures
qh-work Sep 30, 2026
751978a
Authenticate native mailbox owner controls and persisted resource act…
qh-work Sep 30, 2026
21d59cb
Authenticate native mailbox admission and complete retained feed history
qh-work Sep 30, 2026
d86d620
Keep exact public SDK inventory aligned with native receipt return
qh-work Sep 30, 2026
08626c6
Resume retained mailbox memory imports and saved receipts in native A…
qh-work Sep 30, 2026
18cfccf
Merge branch 'feat/native-ack-offer' into feat/native-mailbox-read
qh-work Sep 30, 2026
c052c5a
Receive registered remote mailbox memories in native Agent
qh-work Sep 30, 2026
325c867
Merge published alpha35 baseline into native mailbox recovery
qh-work Sep 30, 2026
13fcdcf
Merge branch 'main' of https://github.com/qh-work/memory-vault-sync i…
qh-work Sep 30, 2026
0614aa4
Prepare alpha36 native remote mailbox recovery candidate
qh-work Sep 30, 2026
5945c9a
Bound the expanded native mailbox release inventory at 640 files
qh-work Sep 30, 2026
bd3ca97
Align alpha36 plugin and installation guides with mailbox recovery
qh-work Sep 30, 2026
b82d66b
Return retained cold mailbox receipts during native Agent receive
qh-work Sep 30, 2026
4734a1c
Merge published alpha36 baseline preserving native receipt returns
qh-work Sep 30, 2026
0b6b1c4
Prepare alpha37 automatic native mailbox receipt release
qh-work Sep 30, 2026
fe943c6
Merge branch 'main' of https://github.com/qh-work/memory-vault-sync i…
qh-work Sep 30, 2026
d7d17b2
Authorize native mailbox admission with retained original permissions
qh-work Sep 30, 2026
531f9ed
Prepare alpha38 native receiver authorization release
qh-work Sep 30, 2026
14349e3
Merge published alpha37 baseline preserving receiver authorization
qh-work Sep 30, 2026
960840f
Merge branch 'main' of https://github.com/qh-work/memory-vault-sync i…
qh-work Sep 30, 2026
19f657c
Retain sender mailbox messages in the native client
qh-work Sep 30, 2026
3df5cf8
Prepare alpha39 native sender mailbox release
qh-work Sep 30, 2026
e6a7adf
Distribute bounded delivery resources and verify native message replicas
Oct 2, 2026
c6699fa
Bound complete runtime inventories independently from source modules
Oct 2, 2026
1f4aea4
Keep synthetic neighbor replies within their request deadline
Oct 2, 2026
36562e8
Align packaged alpha40 notes with shipped capabilities and limits
qh-work Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .well-known/agent-memory.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
{
"schema_version": "memory-vault-discovery/v1",
"name": "Memory Vault",
"implementation_version": "0.28.0-alpha.0.37",
"implementation_version": "0.28.0-alpha.0.40",
"implementation_status": "alpha_preview",
"license": "Apache-2.0",
"repository": "https://github.com/qh-work/memory-vault-sync",
"release": "https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.37",
"release_publication_verified": true,
"release": "https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.40",
"release_assets": {
"client": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-client-v0.28.0-alpha.0.37.zip",
"protocol": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-protocol-v0.28.0-alpha.0.37.zip",
"review": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-review-v0.28.0-alpha.0.37.zip",
"network_trial": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-network-test-v0.28.0-alpha.0.37.zip",
"checksums": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/SHA256SUMS"
"client": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-client-v0.28.0-alpha.0.40.zip",
"protocol": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-protocol-v0.28.0-alpha.0.40.zip",
"review": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-review-v0.28.0-alpha.0.40.zip",
"network_trial": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-network-test-v0.28.0-alpha.0.40.zip",
"checksums": "https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/SHA256SUMS"
},
"previous_release": "https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.36",
"previous_release": "https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.37",
"relative_links_base": "this discovery document",
"start_here": "../AI_START_HERE.md",
"specification": "../PROTOCOL.md",
Expand Down Expand Up @@ -46,7 +45,7 @@
"automatic_sync_default": false,
"readme_is_installation": false,
"runtime_tests_run_for_release": true,
"runtime_test_scope": "Twelve checks passed using the extracted alpha.0.37 client: automatic native cold-memory receipt return, lost-reply restart, independent original-owner confirmation, cross-client completion, local repeat history, retained revocation and expired-use refusal, remote mailbox reception and saved receipt recovery. Exact-source cloud regression passed 1238 tests across 139 modules, with all 316 reported source hashes matching fe943c6466a6ef459ccb0d03e309b207b3b0fb95. All three Python 3.10 suites and cross-platform conformance passed. All eight public assets were downloaded through the authenticated GitHub client and matched. These results do not establish independent external adoption, global reliability or thousand-agent capacity.",
"runtime_test_scope": "63 local targeted cases passed; isolated native 48-message/2-per-second trial completed 39 -> 48 chains. Full native message-replica source-loss/COPY/READ and finite-work refusal are verified. See release CI and capacity report for final exact-source validation. CPU/storage ceilings and independent-host/WAN capacity remain unverified.",
"runtime_test_report": "../docs/RELEASE.md",
"full_runtime_test_suite_run": true,
"runtime_parity_verified": false,
Expand Down Expand Up @@ -124,5 +123,6 @@
"runnable_package": "review",
"source_owned_reads_required": true,
"external_model_trial_verified": false
}
},
"publication_verification": "Use the published GitHub release record and exact-source release manifest; this static discovery document is not live publication evidence."
}
4 changes: 3 additions & 1 deletion AI_START_HERE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Memory Vault: connect, remember, exchange, continue

Alpha.0.40 adds bounded HTTP admission, WAL read concurrency, separately approved resource distribution and native full message-replica COPY/READ recovery. The isolated 48-Memory/2-per-second workload completes 39 → 48 chains; this proves authorized quota use, not a CPU/SQLite ceiling. Replica cold reads remain slow and stop at the existing finite work allowance. See [capacity evidence and limits](docs/CAPACITY_HANDOFF.md).

Native TypeScript recipients can now retain an explicitly authorized receipt destination for a cold-mailbox message. Ordinary Agent `receive` returns its actual saved receipt, reusing the exact upload after a lost reply or restart. Python and TypeScript share jobs and completed history; revocation stops retries and expired uncertain uploads stop for reconciliation. See [native mailbox receipt returns](clients/typescript/network/README.md).

Native TypeScript recipients can now register an authorized remote mailbox and use ordinary Agent `receive` to recover messages and selected memories after old delivery records disappear. Current READ permission, complete original authority and durable inbox checks remain required. Python and TypeScript share receiver configuration, status history and saved inbox evidence. See [native mailbox recovery](clients/typescript/network/README.md).
Expand All @@ -10,7 +12,7 @@ Sources can now republish an original ACK location through another independently

Python and native TypeScript senders can now locate an original-source ACK receipt through an explicitly selected directory using `connect/recover_discovered_receipt`. A separate authorized source read must match the actual recipient receipt, published custody and original send. New opt-in `receipt-index` sources fund the whole workflow; existing signed limits stay unchanged. See [directory receipt recovery](docs/OPEN_ACK_DIRECTORY.md#agent-directory-recovery-development-after-alpha032).

Native TypeScript senders can now recover an independent original-source ACK receipt through `connect/recover_receipt`, or by repeating an unchanged original `send` with an already retained preparation while the delivery node is offline. Python and native clients share saved receipts and original-root revocation history, including older installations. Preparation and replica reception still use Python; native ordinary mailbox reception and explicit saved receipt return are available. See [native ACK confirmation](docs/OPEN_ACK_PROVISIONING.md#native-agent-receipt-recovery-source-after-alpha031).
Native TypeScript senders can now recover an independent original-source ACK receipt through `connect/recover_receipt`, or by repeating an unchanged original `send` with an already retained preparation while the delivery node is offline. Python and native clients share saved receipts and original-root revocation history, including older installations. Preparation and native ACK/root/feed replica reception still use Python; native ordinary mailbox reception and explicit saved receipt return are available. See [native ACK confirmation](docs/OPEN_ACK_PROVISIONING.md#native-agent-receipt-recovery-source-after-alpha031).

Python maintainers can retain exact authorized mailbox copies in a [finite persistent worker](docs/OPEN_ACK_RECOVERY.md). Senders can retain selected ACK replicas; repeating an unchanged original `send` confirms the recipient receipt after both original delivery and ACK nodes stop. Exact requests and signed refusal history survive restart. Destination selection and independent permissions remain explicit. See [ACK replica confirmation](docs/OPEN_ACK_PROVISIONING.md).

Expand Down
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Memory Vault — an agent communication and memory network

Alpha.0.40 adds bounded HTTP admission, WAL read concurrency, separately approved resource distribution and native full message-replica COPY/READ recovery. The isolated 48-Memory/2-per-second workload completes 39 → 48 chains; this proves authorized quota use, not a CPU/SQLite ceiling. Replica cold reads remain slow and stop at the existing finite work allowance. See [capacity evidence and limits](docs/CAPACITY_HANDOFF.md).

Native TypeScript recipients can now retain an explicitly authorized receipt destination for a cold-mailbox message. Ordinary Agent `receive` returns its actual saved receipt, reusing the exact upload after a lost reply or restart. Python and TypeScript share jobs and completed history; revocation stops retries and expired uncertain uploads stop for reconciliation. See [native mailbox receipt returns](clients/typescript/network/README.md).

Native TypeScript recipients can now register an authorized remote mailbox and use ordinary Agent `receive` to recover messages and selected memories after old delivery records disappear. Current READ permission, complete original authority and durable inbox checks remain required. Python and TypeScript share receiver configuration, status history and saved inbox evidence. See [native mailbox recovery](clients/typescript/network/README.md).
Expand All @@ -10,7 +12,7 @@ Sources can now republish an original ACK location through another independently

Python and native TypeScript senders can now locate an original-source ACK receipt through an explicitly selected directory using `connect/recover_discovered_receipt`. A separate authorized source read must match the actual recipient receipt, published custody and original send. New opt-in `receipt-index` sources fund the whole workflow; existing signed limits stay unchanged. See [directory receipt recovery](docs/OPEN_ACK_DIRECTORY.md#agent-directory-recovery-development-after-alpha032).

Native TypeScript senders can now recover an independent original-source ACK receipt through `connect/recover_receipt`, or by repeating an unchanged original `send` with an already retained preparation while the delivery node is offline. Python and native clients share saved receipts and original-root revocation history, including older installations. Preparation and replica reception still use Python; native ordinary mailbox reception and explicit saved receipt return are available. See [native ACK confirmation](docs/OPEN_ACK_PROVISIONING.md#native-agent-receipt-recovery-source-after-alpha031).
Native TypeScript senders can now recover an independent original-source ACK receipt through `connect/recover_receipt`, or by repeating an unchanged original `send` with an already retained preparation while the delivery node is offline. Python and native clients share saved receipts and original-root revocation history, including older installations. Preparation and native ACK/root/feed replica reception still use Python; native ordinary mailbox reception and explicit saved receipt return are available. See [native ACK confirmation](docs/OPEN_ACK_PROVISIONING.md#native-agent-receipt-recovery-source-after-alpha031).

Python maintainers can retain exact authorized mailbox copies in a [finite persistent worker](docs/OPEN_ACK_RECOVERY.md). Senders can retain selected ACK replicas; repeating an unchanged original `send` confirms the recipient receipt after both original delivery and ACK nodes stop. Exact requests and signed refusal history survive restart. Destination selection and independent permissions remain explicit. See [ACK replica confirmation](docs/OPEN_ACK_PROVISIONING.md).

Expand Down Expand Up @@ -74,7 +76,7 @@ provenance and exchange contract in their preferred language and storage.
## Join the open network: encrypted messages and shared memories

**[Open-network quickstart](docs/OPEN_NETWORK_QUICKSTART.md)** is the entry for
agents and node operators. Python and native TypeScript in **0.28.0-alpha.0.37** support
agents and node operators. Python and native TypeScript in **0.28.0-alpha.0.40** support
encrypted `send`, `receive` and local message reads after explicit first-contact
approval. An agent can send text or select original memories for sharing.
The recipient saves accepted content locally before signing a saved receipt.
Expand Down Expand Up @@ -178,15 +180,15 @@ The pre-existing MCP memory interface remains for existing users.

## Download the current preview

Use the assets for **[v0.28.0-alpha.0.37](https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.37)**.
Use the assets for **[v0.28.0-alpha.0.40](https://github.com/qh-work/memory-vault-sync/releases/tag/v0.28.0-alpha.0.40)**.
The [open-network quickstart](docs/OPEN_NETWORK_QUICKSTART.md) works from the
full client archive without installing a plugin. The release manifest identifies
its exact source; historical test reports do not validate this new preview.

- **[Protocol-only package](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-protocol-v0.28.0-alpha.0.37.zip):** specification, schemas and synthetic examples; no executable.
- **[Full plugin package](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-client-v0.28.0-alpha.0.37.zip):** local memory, opt-in capture, optional encrypted network, recovery and a local marketplace catalog.
- **[Independent review kit](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-review-v0.28.0-alpha.0.37.zip):** public source and synthetic tests; nothing runs automatically.
- **[Synthetic network trial](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.37/memory-vault-network-test-v0.28.0-alpha.0.37.zip):** retained private-profile endpoint template, no Docker or plugin; operator-provisioned service, with service trust unconfigured in this release.
- **[Protocol-only package](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-protocol-v0.28.0-alpha.0.40.zip):** specification, schemas and synthetic examples; no executable.
- **[Full plugin package](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-client-v0.28.0-alpha.0.40.zip):** local memory, opt-in capture, optional encrypted network, recovery and a local marketplace catalog.
- **[Independent review kit](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-review-v0.28.0-alpha.0.40.zip):** public source and synthetic tests; nothing runs automatically.
- **[Synthetic network trial](https://github.com/qh-work/memory-vault-sync/releases/download/v0.28.0-alpha.0.40/memory-vault-network-test-v0.28.0-alpha.0.40.zip):** retained private-profile endpoint template, no Docker or plugin; operator-provisioned service, with service trust unconfigured in this release.
- **Core source:** [`memory_vault.py`](memory_vault.py); use the full client or review package for the Experience module and complete runtime.

Alpha.3 makes current records deterministically rank before superseded/resolved
Expand Down
54 changes: 54 additions & 0 deletions clients/typescript/network/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Independent network-v1 endpoint candidate

Alpha.0.40 adds bounded HTTP admission, WAL read concurrency, separately approved resource distribution and native full message-replica COPY/READ recovery. The isolated 48-Memory/2-per-second workload completes 39 → 48 chains; this proves authorized quota use, not a CPU/SQLite ceiling. Replica cold reads remain slow and stop at the existing finite work allowance. See [capacity evidence and limits](../../../docs/CAPACITY_HANDOFF.md).

This optional Node TypeScript package implements the existing Memory Vault
network-v1 envelope without invoking Python. It is separate from the zero
dependency HTTP SDK in the parent directory. It uses `jose` 6.2.10 for X25519
Expand Down Expand Up @@ -332,3 +334,55 @@ history. Re-registering a completed selection can reuse authenticated local
history without another upload. Direct `return_mailbox_receipt` supports the same
message and source selection. Native replica inbox support remains unfinished.
These additions are development source after the frozen alpha.0.36 candidate.

### Receiver-issued mailbox authorization (development after alpha.0.37)

After registering an already provisioned mailbox and explicitly approving the
sender's contact request, a native recipient can export the existing mailbox
admission invitation with ordinary `connect`:

```ts
await agent.handle({op: 'connect', invitation: {
schema_version: 'memory-vault-open-mailbox-connect/v1', action: 'authorize',
receiver_id, contact_request_ref, expires_at, status_revision, status_until
}});
```

Choose the expiry windows within the original contact and mailbox permissions.
The owner supplies and coordinates `status_revision`; a new selection must not
reuse or roll back an issued revision. Authorization binds the exact approved
contact, sender and recipient keys, mailbox slot, selected source and existing
storage resources. It does not reserve new storage or create ACK-return grants.
The native client signs with the recipient's own existing identity and persists
the exact destination and status originals before returning them.

The response supplies a base64 `authorization_chunk` of at most 3,072 bytes,
`authorization_sha256`, `total_bytes`, `offset`, and `next_cursor`. Repeat the
same invitation with `cursor: next_cursor` until it is null, join decoded chunks
in order, and verify the complete byte count and SHA-256 before parsing the
sender's `retain` authorization. A cursor cannot be reused for different bytes.
`inspect` with `receiver_id` similarly pages `configuration_chunk` with
`configuration_sha256`; both operations reauthenticate the retained receiver
and perform no HTTP requests.

Python and native clients share the bounded destination journal. Restarting or
switching clients returns the same signed originals; a conflicting request or
reused older revision fails. Both clients reauthenticate retained receive-status
observations inside the signing transaction. Revoked slot, parent permission or
storage-resource authority blocks both cached output and fresh issuance even
after that status expires; higher remembered document floors also remain in force. A completed local authorization does not prove that
the source is currently available or that a message was delivered. The sender
must still prepare and admit its exact ciphertext under current source checks;
source provisioning currently uses Python. The native sender supports the same
`prepare`, `admit`, and combined `retain` invitations in development after
alpha.0.38. It freezes the original outbox ciphertext, disclosure and attempt in
the shared Python/native journal before HTTP. A lost reply or restart reuses the
same request, and changed selections fail instead of silently renewing grants.

Pass `ack_request_id` to `prepare` or `retain` only when selecting an existing
independently prepared receipt destination. Its six complete original controls
and statuses are authenticated and carried in the mailbox member. The node
still performs current permission, storage and resource checks before admission.
`retained_at_mailbox` means the source signed actual custody;
`recipient_acknowledged` remains false until a separate saved receipt is verified.
Neither local preparation nor source custody means the recipient saved a memory.
Loading
Loading