From 2575f860f0e137339cd65a92d91e2a54552b7e2a Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 31 May 2026 13:00:37 +0100 Subject: [PATCH] Add Sai VoidBot face state --- .gitignore | 3 +++ .voidbot/state/README.md | 4 ++++ .voidbot/state/sai.cc | Bin 0 -> 12751 bytes .voidbot/voice/README.md | 4 ++++ .voidbot/voice/identity.json | 10 ++++++++++ .voidbot/voice/sai.png | Bin 0 -> 3576 bytes 6 files changed, 21 insertions(+) create mode 100644 .voidbot/state/README.md create mode 100644 .voidbot/state/sai.cc create mode 100644 .voidbot/voice/README.md create mode 100644 .voidbot/voice/identity.json create mode 100644 .voidbot/voice/sai.png diff --git a/.gitignore b/.gitignore index 43a9af4..bc9b26a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ node_modules *.log .DS_Store dist/*.map +.voidbot/birth/ +.voidbot/logs/ +.voidbot/state/*.msgpack diff --git a/.voidbot/state/README.md b/.voidbot/state/README.md new file mode 100644 index 0000000..2cbd1bd --- /dev/null +++ b/.voidbot/state/README.md @@ -0,0 +1,4 @@ +# Repo Face State + +This folder stores birth and continuity state for `Sai`. +Do not treat these files as arbitrary editable projections. Persistent memory should cross typed operation boundaries. diff --git a/.voidbot/state/sai.cc b/.voidbot/state/sai.cc new file mode 100644 index 0000000000000000000000000000000000000000..7b42f261aaf5e396006458cae47a6b05812536b5 GIT binary patch literal 12751 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 literal 0 HcmV?d00001 diff --git a/.voidbot/voice/README.md b/.voidbot/voice/README.md new file mode 100644 index 0000000..b5623a9 --- /dev/null +++ b/.voidbot/voice/README.md @@ -0,0 +1,4 @@ +# Repo Face Voice + +This folder belongs to the Discord-facing Face for `Sai`. +Discord roles address the Face; VoidBot's webhook persona pipe is the mouth. diff --git a/.voidbot/voice/identity.json b/.voidbot/voice/identity.json new file mode 100644 index 0000000..b3bd954 --- /dev/null +++ b/.voidbot/voice/identity.json @@ -0,0 +1,10 @@ +{ + "schemaVersion": "voidbot.repo_face_identity.v0", + "identityId": "sai", + "repoName": "Sai", + "displayName": "Sai", + "roleId": null, + "avatarUrl": "https://raw.githubusercontent.com/GameCult/VoidBot/codex/voidbot-cultcache-replace-retry/assets/repo-faces/sai.png", + "repoPath": "E:\\Projects\\Sai", + "createdOrRefreshedAt": "2026-05-31T11:58:32.405Z" +} diff --git a/.voidbot/voice/sai.png b/.voidbot/voice/sai.png new file mode 100644 index 0000000000000000000000000000000000000000..06e3234193b078dd504e9e27634e9a0ad6763af5 GIT binary patch literal 3576 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