Security: isolate Discord conversations per user #492

Open
nsaspy wants to merge 0 commits from rage/29-discord-user-isolation into main
Owner

Fixes #29 and advances #26.

  • starts with a deterministic RED contract proving two users in one guild/channel or DM must receive distinct Zara conversation IDs
  • conversation IDs now contain numeric Discord guild/channel/user IDs only; no usernames/display names
  • applies the same isolation to message routing and /zara ask
  • rejects malformed non-integer identifiers instead of silently stringifying identity input
  • documents the transcript-isolation boundary
  • bumps zara-discord to 0.2.1 in runtime metadata, discovery metadata, and plugins.json

Security property: bounded in-memory transcript history can no longer cross Discord users merely because they share a channel. Zara Core remains authoritative for runtime principal/tool authorization; this slice does not claim to solve the broader public-principal boundary in #26.

Fixes #29 and advances #26. - starts with a deterministic RED contract proving two users in one guild/channel or DM must receive distinct Zara conversation IDs - conversation IDs now contain numeric Discord guild/channel/user IDs only; no usernames/display names - applies the same isolation to message routing and `/zara ask` - rejects malformed non-integer identifiers instead of silently stringifying identity input - documents the transcript-isolation boundary - bumps `zara-discord` to 0.2.1 in runtime metadata, discovery metadata, and `plugins.json` Security property: bounded in-memory transcript history can no longer cross Discord users merely because they share a channel. Zara Core remains authoritative for runtime principal/tool authorization; this slice does not claim to solve the broader public-principal boundary in #26.
Some checks failed
CI / test (pull_request) Failing after 18s
This branch is already included in the target branch. There is nothing to merge.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin rage/29-discord-user-isolation:rage/29-discord-user-isolation
git switch rage/29-discord-user-isolation

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff rage/29-discord-user-isolation
git switch rage/29-discord-user-isolation
git rebase main
git switch main
git merge --ff-only rage/29-discord-user-isolation
git switch rage/29-discord-user-isolation
git rebase main
git switch main
git merge --no-ff rage/29-discord-user-isolation
git switch main
git merge --squash rage/29-discord-user-isolation
git switch main
git merge --ff-only rage/29-discord-user-isolation
git switch main
git merge rage/29-discord-user-isolation
git push origin main
Sign in to join this conversation.
No description provided.