Skip to content

Commit 95d8c95

Browse files
sgx-labsclaude
andcommitted
docs: update public-facing docs for v0.12.0 and add release checklist
- SECURITY.md: update supported versions table, add memory integrity section - PRIVACY.md: add provenance hashes and trust state to data types table - AGENTS.md: update doctor check count (23) and hook file count (35) - README.md: remove hardcoded doctor check count - docs/design_context.md: update generated date - docs/release_checklist.md: comprehensive pre-release checklist Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a5f279f commit 95d8c95

6 files changed

Lines changed: 115 additions & 10 deletions

File tree

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ cmd/same/
4747
config_cmd.go # Config show/edit
4848
demo_cmd.go # Interactive demo
4949
display_cmd.go # Display mode switching
50-
doctor_cmd.go # 19 diagnostic checks
50+
doctor_cmd.go # 23 diagnostic checks
5151
feedback_cmd.go # Note relevance feedback
5252
graph_cmd.go # Knowledge graph query/path/stats/rebuild
5353
guard_cmd.go # Push protection
@@ -69,7 +69,7 @@ cmd/same/
6969
web_cmd.go # Local dashboard server (`same web`)
7070
7171
internal/
72-
hooks/ # Claude Code hook handlers (20 files)
72+
hooks/ # Claude Code hook handlers (35 files)
7373
runner.go # Hook execution engine
7474
context_surfacing.go # UserPromptSubmit: surface relevant notes
7575
session_bootstrap.go # SessionStart: orient with handoff + decisions

PRIVACY.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Privacy Policy
22

3-
**Last updated:** 2026-02-05
3+
**Last updated:** 2026-03-11
44

55
SAME (Stateless Agent Memory Engine) is designed to be local-first and privacy-respecting.
66

@@ -10,6 +10,8 @@ SAME (Stateless Agent Memory Engine) is designed to be local-first and privacy-r
1010
|-----------|---------------|-----------|
1111
| Your markdown notes | Read from disk, never transmitted | N/A (your files) |
1212
| Embeddings (vectors) | Stored locally in SQLite | Until you delete or reindex |
13+
| Provenance hashes | SHA256 of source files, stored locally in SQLite | Until you delete or reindex |
14+
| Trust state | Per-note metadata, stored locally in SQLite | Until you delete or reindex |
1315
| Search queries | Processed locally | Not stored |
1416
| Config settings | Stored in `.same/config.toml` | Until you delete |
1517

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ No telemetry. No cloud. Path traversal blocked. Config files written with owner-
230230
| `same search <query>` | Search your notes |
231231
| `same search --all <query>` | Search across all vaults |
232232
| `same status` | See what SAME is tracking |
233-
| `same doctor` | Run 19 diagnostic checks |
233+
| `same doctor` | Run diagnostic checks |
234234
| `same claim <path> --agent <name>` | Advisory file ownership for multi-agent |
235235
| `same pin <path>` | Always include a note in sessions |
236236
| `same graph stats` | Knowledge graph diagnostics |
@@ -294,7 +294,7 @@ cd statelessagent && make install
294294
<details>
295295
<summary><strong>Troubleshooting</strong></summary>
296296

297-
Start with `same doctor` -- it runs 19 checks and tells you what's wrong.
297+
Start with `same doctor` -- it runs 20+ checks and tells you what's wrong.
298298

299299
**"No vault found"** -- Run `same init` from inside your notes folder, or set `VAULT_PATH=/path/to/notes`.
300300

SECURITY.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
| Version | Supported |
66
| ------- | ------------------ |
7-
| 0.9.x | :white_check_mark: |
8-
| 0.8.x | :white_check_mark: |
9-
| 0.7.x | Security fixes only |
10-
| < 0.7 | :x: |
7+
| 0.12.x | :white_check_mark: |
8+
| 0.11.x | :white_check_mark: |
9+
| 0.10.x | Security fixes only |
10+
| < 0.10 | :x: |
1111

1212
## Reporting a Vulnerability
1313

@@ -61,10 +61,18 @@ SAME is designed with a local-first security model:
6161
### Path Traversal Protection
6262
- MCP `get_note` tool validates paths stay within vault boundary
6363
- Symlink resolution verifies real path stays inside vault (v0.8.3)
64+
- Provenance source paths validated before file reads (v0.12.0)
65+
- Source divergence checks validate stored paths before reads (v0.12.0)
6466
- Relative path components (`..`) are rejected
6567
- Null bytes in paths are rejected
6668
- Windows drive-letter paths are rejected regardless of host OS
6769

70+
### Memory Integrity (v0.12.0)
71+
- Provenance tracking records SHA256 hashes of source files at capture time
72+
- Trust state (`validated`, `stale`, `contradicted`, `unknown`) affects search ranking
73+
- Staleness and divergence context tags are sanitized against prompt injection
74+
- YAML frontmatter values are sanitized to prevent injection via newlines
75+
6876
### Input Validation
6977
- All user inputs are validated before processing
7078
- SQL queries use parameterized statements (no injection risk)

docs/design_context.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,4 +265,4 @@ These features have detailed design docs but no implementation yet. The developm
265265
---
266266

267267
*This document was generated from vault design sessions. It contains no PII, client data, or personal information.*
268-
*Last generated: 2026-02-06*
268+
*Last generated: 2026-03-11*

docs/release_checklist.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Release Checklist
2+
3+
Run through this checklist **every release**, no exceptions.
4+
5+
## 1. Version Bump
6+
7+
- [ ] `Makefile``VERSION` variable
8+
- [ ] `npm/package.json``"version"`
9+
- [ ] `server.json``"version"`
10+
- [ ] `CHANGELOG.md` — new section at top
11+
12+
## 2. Build & Test Gate
13+
14+
```bash
15+
make release-candidate # precheck + vet + migration test
16+
go test ./... -count=1 # full test suite
17+
```
18+
19+
## 3. MCP Tool Count
20+
21+
If tools were added/removed, update the count in **all** of these:
22+
23+
- [ ] `README.md` — badge, MCP tools table, description
24+
- [ ] `npm/README.md` — heading + table
25+
- [ ] `AGENTS.md``mcp/` line in project structure
26+
- [ ] `Dockerfile` — OCI label
27+
- [ ] `server.json` — description
28+
- [ ] `glama.json` — description + tools array
29+
- [ ] `npm/package.json` — description
30+
- [ ] `internal/setup/mcp.go` — print message + tool list
31+
32+
Quick check: `grep -rn "17 tools\|17 MCP" --include='*.md' --include='*.go' --include='*.json' --include='Dockerfile'`
33+
34+
## 4. Doctor Check Count
35+
36+
If checks were added/removed in `doctor_cmd.go`:
37+
38+
- [ ] `AGENTS.md``doctor_cmd.go` comment
39+
- [ ] `README.md` — do NOT hardcode a number (use "20+ checks" or "diagnostic checks")
40+
41+
Quick check: `grep -c 'check(' cmd/same/doctor_cmd.go`
42+
43+
## 5. Public-Facing Docs
44+
45+
- [ ] `SECURITY.md` — supported versions table
46+
- [ ] `PRIVACY.md` — data types table (add new stored data types)
47+
- [ ] `CHANGELOG.md` — no self-deprecating language ("aspirational", "inflated", etc.)
48+
- [ ] `README.md` — no inflated timing claims, feature list current
49+
- [ ] `docs/design_context.md` — "Last generated" date
50+
51+
## 6. Scrub
52+
53+
- [ ] No PII, banned terms, strategy language (see `.claude/CLAUDE.md`)
54+
- [ ] No embarrassing TODOs, HACKs, or debug prints in new code
55+
- [ ] Commit messages are clean (no banned terms — see `.claude/CLAUDE.md`)
56+
- [ ] No hardcoded test paths or personal directories
57+
58+
Quick check: `git log --oneline HEAD~5..HEAD` — review every message.
59+
60+
## 7. Security
61+
62+
- [ ] New MCP handlers use `neutralizeTags()` on output
63+
- [ ] New file reads validate paths with `safeVaultPath()`
64+
- [ ] New XML wrapper tags added to `sanitizeContextTags()` tag list
65+
- [ ] New frontmatter writes strip newlines from user input
66+
- [ ] `make security-test` passes
67+
68+
## 8. Tag & Push
69+
70+
```bash
71+
git tag vX.Y.Z
72+
same push-allow && git push origin main
73+
same push-allow && git push origin vX.Y.Z
74+
```
75+
76+
## 9. GitHub Release
77+
78+
```bash
79+
gh release create vX.Y.Z --title "vX.Y.Z — Title" --notes-file /tmp/release-notes.md
80+
```
81+
82+
## 10. npm Publish
83+
84+
```bash
85+
cd npm && npm publish
86+
```
87+
88+
Verify: `npm view @sgx-labs/same version` should show the new version.
89+
90+
## 11. Post-Release
91+
92+
- [ ] Verify `npx -y @sgx-labs/same version` shows new version
93+
- [ ] Verify `curl -fsSL https://statelessagent.com/install.sh | bash` works
94+
- [ ] Announce on Discord
95+
- [ ] Check GitHub release page renders correctly

0 commit comments

Comments
 (0)