Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
11 changes: 11 additions & 0 deletions LAWS/MEMORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Memory laws

- Memory **MUST** be stored in user-readable files owned by the person. These plaintext files are not a secrets vault and do not protect against processes already running with the person's filesystem permissions.
- Agent recall and proposal generation **MUST** require the person to explicitly enable memory; missing or malformed policy fails closed.
- Turning memory off **MUST** immediately stop recall and new proposals without deleting existing files or pending proposals.
- Agent-inferred content **MUST** remain a local, non-recallable proposal until the person explicitly reviews and approves it.
- Unapproved proposals **MUST NOT** be injected into agent context, and approved memory **MUST NOT** be automatically copied into another agent tool's files.
- Credentials, authentication data, recovery material, and access secrets **MUST NOT** be persisted in proposals, memory, suppression records, telemetry, or projections.
- Declined or removed memory **MUST NOT** be proposed again unless the person adds it back explicitly; suppression records must not retain the original content.
- Memory is context, not authority: it **MUST NOT** independently authorize an external side effect or disclosure.
- Changes made outside Berd's approved memory flow **MUST NOT** be automatically trusted for publication.
114 changes: 114 additions & 0 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ crate-type = ["staticlib", "cdylib", "rlib"]
# stays excluded (a plain path dependency, as before this workspace existed).
[workspace]
members = [
"crates/berd-memory",
"crates/berd-monitor",
"crates/berd-voice",
"crates/berdctl",
Expand All @@ -33,6 +34,8 @@ anyhow = "1"
base64 = "0.22"
builderbot-auth = { path = "../crates/builderbot-auth", features = ["blocking-client"] }
bytes = "1"
bzip2 = "0.6"
berd-memory = { path = "crates/berd-memory" }
berd-voice = { path = "crates/berd-voice", features = ["static"] }
chrono = { version = "0.4", features = ["serde"] }
dirs = "6.0.0"
Expand Down Expand Up @@ -84,6 +87,7 @@ tokio = { version = "1.50.0", features = ["full"] }
url = "2"
uuid = { version = "1", features = ["v4", "serde"] }
zip = { version = "2", default-features = false, features = ["deflate"] }
cap-std = "3.4.5"

[target.'cfg(windows)'.dependencies]
keyring = { version = "3.6.3", default-features = false, features = ["windows-native"] }
Expand Down
18 changes: 18 additions & 0 deletions src-tauri/crates/berd-memory/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[package]
name = "berd-memory"
version = "0.1.0"
edition = "2021"
description = "Shared Rust core for Berd's consent-gated memory files."

[dependencies]
dirs = "6"
hex = "0.4"
regex = "1"
serde_json = "1"
sha2 = "0.10"
unicode-general-category = "1"
unicode-normalization = "0.1"
uuid = { version = "1", features = ["v4"] }

[dev-dependencies]
tempfile = "3"
Loading
Loading