Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
7e1a0de
rename memwal_v2 to memwal, redeploy testnet, add packageId metadata …
ducnmm Mar 19, 2026
200009a
remove tmp-rememe and tmp-smashblob
ducnmm Mar 19, 2026
da00896
feat: add account management to SDK, delegate key management UI in da…
ducnmm Mar 20, 2026
0e29855
feat: add Enoki sponsored transactions for gasless frontend UX + dire…
ducnmm Mar 20, 2026
15ed607
feat: landing page buttons + fix build errors across apps
ducnmm Mar 20, 2026
547f9f9
refactor(sdk): move account exports to @cmdoss/memwal/account, root e…
ducnmm Mar 20, 2026
5e20f83
Merge pull request #10 from MystenLabs/feat/docs
daniellam258 Mar 23, 2026
aebb227
feat: update new colors
ducnmm Mar 23, 2026
dce8250
feat(docs): add light/dark logos and generate favicon from logo
daniellam258 Mar 23, 2026
ebaac25
fix(docs): update GitHub links to MystenLabs/MemWal
daniellam258 Mar 23, 2026
5af9886
style(docs): update light mode accent color to yellow (#E8FF75)
daniellam258 Mar 23, 2026
45a62d4
chore: pnpm
daniellam258 Mar 23, 2026
e5e681c
feat: add Walrus Sites deploy workflow and ws-resources config
ducnmm Mar 23, 2026
1b9403f
feat: new key for seal in sdk
ducnmm Mar 23, 2026
a665616
Merge pull request #11 from MystenLabs/feat/update-new-colors
ducnmm Mar 23, 2026
0b5025b
fix: revert SEAL key server to Overclock (Open) and bump SDK to alpha.7
ducnmm Mar 23, 2026
9ab38d0
refactor(docs): restructure SDK tab — co-locate reference, consolidat…
daniellam258 Mar 23, 2026
9a5e9f1
refactor(docs): restructure Relayer tab — consolidate pages, clarify …
daniellam258 Mar 23, 2026
49066ff
fix(docs): comprehensive docs audit — fix accuracy, add missing conte…
daniellam258 Mar 23, 2026
153e373
feat: add SDK auto-publish pipeline with Changesets + GitHub Actions
ducnmm Mar 23, 2026
907af5d
feat: rename SDK to @mysten/memwal + upgrade CI/CD release pipeline
ducnmm Mar 23, 2026
faf957d
Merge pull request #12 from MystenLabs/feat/release-sdk-pipeline
ducnmm Mar 23, 2026
5bb52ba
fix: CI/CD release workflow issues
ducnmm Mar 23, 2026
8a25ebe
rename @cmdoss/memwal to @mysten/memwal & update branding colors
ducnmm Mar 23, 2026
8177e91
add railway-*.md to gitignore
ducnmm Mar 23, 2026
b222d1a
update landing page & favicon
ducnmm Mar 23, 2026
6161ead
ci: switch walrus deploy trigger to dev branch for testing
ducnmm Mar 23, 2026
715da94
Merge pull request #13 from MystenLabs/feat/deploy-app-walrus
ducnmm Mar 24, 2026
cec0f24
ci: switch walrus deploy trigger to main branch and update action
ducnmm Mar 24, 2026
3f9049f
chore: reduce default Walrus storage epochs from 50 to 2
ducnmm Mar 24, 2026
32b8883
feat: updating deployment environment variables.
ducnmm Mar 24, 2026
bdf9c6d
update landing page: reorganize nav and hero CTAs
daniellam258 Mar 24, 2026
69e86f0
switch to react-router-dom and put playground behind /playground
daniellam258 Mar 24, 2026
309381e
docs: refresh onboarding and relayer docs
Aaron1924 Mar 24, 2026
7a60bf7
restyle playground, dashboard & setup wizard to match landing page
daniellam258 Mar 24, 2026
df091b1
fix routing: give dashboard its own route and protect playground
daniellam258 Mar 24, 2026
3e839d8
add syntax highlighting, install tabs, docs link & fix routing
daniellam258 Mar 24, 2026
6d1bdb9
Merge pull request #15 from MystenLabs/daniel/homepage
daniellam258 Mar 24, 2026
c2f9ebb
docs(relayer): update testnet package ids and overview graph
useername Mar 24, 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
24 changes: 24 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Changesets

This project uses [Changesets](https://github.com/changesets/changesets) to manage versioning and changelogs for `@mysten/memwal`.

## How to add a changeset

When you make a change that should be released:

```bash
pnpm changeset
```

This will prompt you to:
1. Select which packages have changed (`@mysten/memwal`)
2. Choose the semver bump type (major / minor / patch)
3. Write a summary of the change

A markdown file will be created in this directory describing the change.

## Release flow

1. Changesets bot creates a **"Version Packages"** PR on `main`
2. That PR bumps versions and updates `CHANGELOG.md`
3. When you **merge** the PR, GitHub Actions automatically **publishes to npm**
19 changes: 19 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "CommandOSSLabs/MemWal" }
],
"commit": true,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [
"@memwal/app",
"@memwal/noter",
"@memwal/chatbot",
"researcher"
]
}
89 changes: 89 additions & 0 deletions .github/workflows/deploy-app-walrus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Deploy App to Walrus Site

on:
push:
branches:
- main
paths:
- 'apps/app/**'
- '.github/workflows/deploy-app-walrus.yml'
workflow_dispatch:

permissions:
contents: write

jobs:
deploy-app:
runs-on: ubuntu-latest
environment: mainnet

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Validate ws-resources.json exists
run: |
if [ ! -f "./apps/app/ws-resources.json" ]; then
echo "## Deployment Failed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Missing required file: \`apps/app/ws-resources.json\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "This file is generated after your first manual deployment with \`site-builder\`." >> $GITHUB_STEP_SUMMARY

echo "ERROR: apps/app/ws-resources.json not found!"
echo "This file is generated after your first manual deployment with site-builder."
exit 1
fi
echo "ws-resources.json found!"

- name: Build SDK
run: pnpm build:sdk

- name: Build app for Mainnet
working-directory: ./apps/app
run: |
pnpm build
if [ -f "ws-resources.json" ]; then
cp ws-resources.json dist/
fi
env:
VITE_SUI_NETWORK: mainnet
VITE_MEMWAL_SERVER_URL: ${{ vars.VITE_MEMWAL_SERVER_URL }}
VITE_MEMWAL_PACKAGE_ID: ${{ vars.VITE_MEMWAL_PACKAGE_ID }}
VITE_MEMWAL_REGISTRY_ID: ${{ vars.VITE_MEMWAL_REGISTRY_ID }}
VITE_SEAL_KEY_SERVERS: ${{ vars.VITE_SEAL_KEY_SERVERS }}
VITE_DOCS_URL: ${{ vars.VITE_DOCS_URL }}

- name: Deploy to Walrus Site (Mainnet)
id: deploy-mainnet
uses: MystenLabs/walrus-sites-github-actions/deploy@v1
with:
SUI_ADDRESS: ${{ vars.SUI_ADDRESS }}
SUI_KEYSTORE: ${{ secrets.SUI_KEYSTORE }}
DIST: ./apps/app/dist
SUI_NETWORK: mainnet
EPOCHS: ${{ vars.WALRUS_EPOCHS || '3' }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SITES_CONFIG: |
contexts:
mainnet:
portal: wal.app
package: 0x26eb7ee8688da02c5f671679524e379f0b837a12f1d1d799f255b7eea260ad27
staking_object: 0x10b9d30c28448939ce6c4d6c6e0ffce4a7f8a4ada8248bdad09ef8b70e4a3904
general:
wallet_env: mainnet
walrus_context: mainnet
walrus_package: 0xfdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77
gas_budget: 500000000
default_context: mainnet
80 changes: 80 additions & 0 deletions .github/workflows/release-sdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Release SDK

on:
push:
branches:
- main
- staging
- dev
paths:
- 'packages/sdk/**'
- '.changeset/**'
- '.github/workflows/release-sdk.yml'
workflow_dispatch:

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
release:
name: Version & Publish
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
id-token: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup PNPM
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Typecheck
run: pnpm --filter @mysten/memwal typecheck

- name: Build SDK
run: pnpm build:sdk

# ── main branch → stable release (latest) ──
- name: Create Release PR or Publish to npm
if: github.ref == 'refs/heads/main'
uses: changesets/action@v1
with:
title: 'chore: version packages'
commit: 'chore: version packages'
publish: pnpm changeset publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

# ── staging branch → release candidate (rc tag) ──
- name: Publish staging release candidate
if: github.ref == 'refs/heads/staging'
run: |
PKG_VERSION=$(node -p "require('./packages/sdk/package.json').version")
npm view @mysten/memwal@$PKG_VERSION version 2>/dev/null && echo "Version $PKG_VERSION already published, skipping" && exit 0
cd packages/sdk && npm publish --tag rc --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

# ── dev branch → prerelease (dev tag) ──
- name: Publish dev prerelease
if: github.ref == 'refs/heads/dev'
run: |
PKG_VERSION=$(node -p "require('./packages/sdk/package.json').version")
npm view @mysten/memwal@$PKG_VERSION version 2>/dev/null && echo "Version $PKG_VERSION already published, skipping" && exit 0
cd packages/sdk && npm publish --tag dev --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,6 @@ CLAUDE.md
x-wallet
tmp-rememe/
tmp-smashblob/

# Railway sensitive docs
railway-*.md
28 changes: 13 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
# MemWal

Privacy-first AI memory SDK and protocol stack for storing encrypted memories on Walrus and
Privacy-first AI memory layer for storing encrypted memories on Walrus and
retrieving them with semantic search.

> MemWal is currently in beta. It is usable today, but the protocol, SDK, and operational
> surfaces may still evolve as we harden the system. The docs site is the primary source of
> truth for the supported integration path and current architecture, and contributions are very
> welcome as we improve the stack.
> MemWal is currently in beta and actively evolving. While fully usable today, we continue to refine the developer experience and operational guidance. We welcome feedback from early builders as we continue to improve the product.

## Install

```bash
pnpm add @cmdoss/memwal
pnpm add @mysten/memwal
```

Peer dependencies (install as needed):
Expand All @@ -23,11 +20,12 @@ pnpm add @mysten/sui @mysten/seal @mysten/walrus ai zod
## Quick Start

```ts
import { MemWal } from "@cmdoss/memwal";
import { MemWal } from "@mysten/memwal";

const memwal = MemWal.create({
key: "your-delegate-key-hex",
serverUrl: "https://your-memwal-server.com",
accountId: "your-memwal-account-id",
serverUrl: "https://your-relayer-url.com",
namespace: "demo",
});

Expand All @@ -40,11 +38,11 @@ await memwal.restore("demo");

- Docs source of truth: `docs/`
- Docs site entry points:
- [Overview](docs/about/what-is-memwal.md)
- [Build Your First Integration](docs/getting-started/for-developers.md)
- [SDK Overview](docs/sdk/overview.md)
- [What is MemWal?](docs/getting-started/what-is-memwal.md)
- [Quick Start](docs/getting-started/quick-start.md)
- [SDK Quick Start](docs/sdk/quick-start.md)
- [Relayer Overview](docs/relayer/overview.md)
- [SDK API Reference](docs/reference/sdk-api.md)
- [SDK API Reference](docs/sdk/api-reference.md)

## Contributing

Expand Down Expand Up @@ -78,9 +76,9 @@ For broader local setup guidance, see:

| Entry | Description |
|---|---|
| `@cmdoss/memwal` | Default client (`MemWal`). The relayer handles embedding, encryption, Walrus upload/download, retrieval, and restore. |
| `@cmdoss/memwal/manual` | Manual client flow (`MemWalManual`). You handle embedding calls and local SEAL operations. The relayer still handles upload relay, registration, search, and restore. |
| `@cmdoss/memwal/ai` | Vercel AI SDK integration - wraps `MemWal` as middleware for use with `streamText`, `generateText`, etc. |
| `@mysten/memwal` | Default client (`MemWal`). The relayer handles embedding, encryption, Walrus upload/download, retrieval, and restore. |
| `@mysten/memwal/manual` | Manual client flow (`MemWalManual`). You handle embedding calls and local SEAL operations. The relayer still handles upload relay, registration, search, and restore. |
| `@mysten/memwal/ai` | Vercel AI SDK integration - wraps `MemWal` as middleware for use with `streamText`, `generateText`, etc. |

## How It Works

Expand Down
4 changes: 2 additions & 2 deletions apps/app/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ COPY apps/app/package.json ./apps/app/
# Install all workspace deps
RUN pnpm install

# Build SDK first (apps/app depends on @cmdoss/memwal via workspace:*)
# Build SDK first (apps/app depends on @mysten/memwal via workspace:*)
COPY packages/sdk/ ./packages/sdk/
RUN pnpm --filter @cmdoss/memwal build
RUN pnpm --filter @mysten/memwal build

# Copy app source
COPY apps/app/ ./apps/app/
Expand Down
21 changes: 18 additions & 3 deletions apps/app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,29 @@
<head>
<meta charset="UTF-8" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/svg+xml" href="/memwal-icon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="preload" href="/fonts/Ratch-Variable.ttf" as="font" type="font/ttf" crossorigin>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description"
content="memwal — privacy-preserving AI memory. store your AI conversations encrypted on Walrus, searchable with embeddings. you own your data." />
<meta name="theme-color" content="#0a0a0f" />
<title>memwal — AI memory dashboard</title>
content="MemWal — privacy-preserving AI memory. Store your AI conversations encrypted on Walrus, searchable with embeddings. You own your data." />
<meta name="theme-color" content="#000000" />

<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:title" content="MemWal — AI Memory Dashboard" />
<meta property="og:description" content="Privacy-preserving AI memory. Store conversations encrypted on Walrus, searchable with embeddings." />
<meta property="og:image" content="/og-image.jpg" />

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="MemWal — AI Memory Dashboard" />
<meta name="twitter:description" content="Privacy-preserving AI memory. Store conversations encrypted on Walrus, searchable with embeddings." />
<meta name="twitter:image" content="/og-image.jpg" />

<title>MemWal — AI Memory Dashboard</title>
</head>

<body>
Expand Down
4 changes: 3 additions & 1 deletion apps/app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
"preview": "vite preview"
},
"dependencies": {
"@cmdoss/memwal": "workspace:*",
"@mysten/dapp-kit": "^1.0.3",
"@mysten/enoki": "^1.0.4",
"@mysten/memwal": "workspace:*",
"@mysten/seal": "^1.1.0",
"@mysten/sui": "^2.6.0",
"@mysten/walrus": "^1.0.3",
Expand All @@ -29,6 +29,7 @@
"react": "^19.2.0",
"react-dom": "^19.2.0",
"react-router-dom": "^7.13.1",
"react-syntax-highlighter": "^15.6.6",
"tailwind-merge": "^3.5.0",
"tailwindcss": "^4.2.1",
"three": "^0.183.2",
Expand All @@ -39,6 +40,7 @@
"@types/node": "^24.10.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@types/react-syntax-highlighter": "^15.5.13",
"@vitejs/plugin-react": "^5.1.1",
"eslint": "^9.39.1",
"eslint-plugin-react-hooks": "^7.0.1",
Expand Down
Binary file modified apps/app/public/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified apps/app/public/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified apps/app/public/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified apps/app/public/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified apps/app/public/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified apps/app/public/favicon.ico
Binary file not shown.
Binary file added apps/app/public/fonts/Ratch-Variable.ttf
Binary file not shown.
Binary file added apps/app/public/memwal-grid-bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/app/public/memwal-hero-full.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions apps/app/public/memwal-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/app/public/memwal-mascot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/app/public/og-image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 11 additions & 1 deletion apps/app/public/site.webmanifest
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
{
"name": "MemWal",
"short_name": "MemWal",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#000000",
"background_color": "#FAF8F5",
"display": "standalone"
}
Loading
Loading