ソース情報
- リポジトリ
- AzureFoxStudios/wabi
- ソースの最終更新活動
- 2026年8月28日 15:43
- 検出された SKILL.md の言語
- 英語
- スター
- 4
- フォーク
- 2
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/AzureFoxStudios/wabi --skill wabi-privacyコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SKILL.md を表示中
Implementation pattern for Wabi channel categories: adding ChannelKind::Category, position/parentId support, and type updates.
Wabi production deployment and runtime debugging. Covers the Rust wabi-server binary (rust_embed static frontend), the SvelteKit build-mode mismatch (adapter-static SPA vs adapter-node SSR and why the Rust server needs index.html), Cloudflare/caddy/cloudflared tunnel WebSockets, WabiDB data-dir locks, and the selfhostability check. Use when a Wabi deploy will not boot, the login page is blank or stuck on "Starting Wabi"/"Work Offline", socket.io WS fails through Cloudflare, wabi-server restart-loops with "engine already running", or the user asks whether Wabi is still selfhostable or hardwired to wabi.chat.
Verify a Wabi binary before swap: addons, probes, locks.
| name | wabi-privacy |
| description | Audit Wabi data privacy, deletion semantics, and retention. |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos"] |
| metadata | {"hermes":{"tags":["wabi","privacy","retention","audit","gdpr","ephemeral","data-deletion"],"related_skills":["wabidb-troubleshooting","wabi-deploy"]}} |
Audit and harden Wabi's data privacy posture. Covers what the server stores, what gets logged, how deletion actually works, and the gap between WabiDB's designed retention system and what's actually wired up.
| Location | Content | Size on Tim |
|---|---|---|
data/wabi-server/wabidb/ | All persistent state — messages, channels, DMs, users, presence, projections | ~200M |
data/wabi-server/wabidb/commit-log/ | Append-only event log (WabiDB source of truth) | Included above |
data/wabi-server/wabidb/snapshots/ | Periodic materialized snapshots of projections | Included above |
data/uploads/ | User-uploaded files (images, media) | Varies |
data/.plugin-storage/ | Plugin crash logs (usually empty) | negligible |
data/launch-page.json | Custom login page branding | 1 file |
data/blacklist.txt | Banned user IDs | 1 file |
data/revocations.json | Revoked JWT user IDs | 1 file |
| Docker container logs | Server runtime logs (info/warn/error tracing) | auto-rotated |
core/crates/wabi-server/src/socket.rs:67 logs every incoming socket message at INFO level:
tracing::info!("Received socket message: {}", text);
This means chat messages, DMs, typing indicators, and presence events are written verbatim to the server log file. The log is a plaintext copy of everything users send.
Fix (shipped): Downgrade to DEBUG so message content doesn't appear in default info-level logs.
Remaining concern: RUST_LOG=wabi_server=info or higher still captures message content. Operators should set RUST_LOG=wabi_server=warn or rely on the default (which excludes DEBUG).
Wabi now ships with daily log rotation and retention pruning:
./logs/wabi-server.log (configurable via WABI_LOG_DIR)tracing-subscriber rolling file appenderWABI_LOG_RETENTION_DAYS (default: 7)core/crates/wabi-server/src/adapter/mod.rs:907 — delete_message():
m.is_deleted = true;
m.edited_at_micros = Some(now_micros());
// emits "message_deleted" event
This is a soft delete. The message content stays in the commit log forever, just marked is_deleted = true. The projection (materialized view) hides it from queries, but the event log still contains the original message_created event with full content.
main.rs:694-736)delete_message() — same soft delete"Wabi is self-hosted. All data lives on my server, not a third party's. There's no telemetry, no analytics, no cloud exfiltration. Voice and video are real-time only — never recorded. Message deletion hides content from the UI; the server's internal event log retains a technical record until log rotation. I don't sell, share, or report that data to anyone."
Do NOT claim "I don't record shit" — the commit log stores every message. Do NOT claim "deleted messages are gone" — they're soft-deleted, content still in log.
The core/crates/wabidb/src/retention/ module is a complete design that exists on paper but is completely disconnected from the running server:
| Module | Purpose | Wired up? |
|---|---|---|
retention/reaper.rs | Streams that hit retention deadline | ❌ No |
retention/compaction.rs | Rewrite segment files, drop tombstones | ❌ No |
retention/key_destruction.rs | Crypto-shredding (destroy keys = data unreadable) | ❌ No |
retention/tombstone.rs | Tombstone table for dead streams | ❌ No |
main.rs:694-736 (actual active code) | Per-channel retention, soft delete only | ✅ Yes |
Retention deadline → reaper → key destruction → crypto-shred (unreadable)
↓
compaction → rewrite segments (gone from disk)
User clicks delete → adapter/mod.rs:907 → m.is_deleted = true → emits "message_deleted"
↑
Original content STAYS in commit log
retention/compaction.rs implements segment-level compaction:
commit_seq is in the tombstone setretention/key_destruction.rs implements crypto-shredding:
StreamKeyRegistryTo honestly claim "data gets erased when it's supposed to," wire up one of:
Wire the retention reaper to:
destroy_stream_keys() on retention deadline (crypto-shred)TombstoneTablecompact_segment() on segments with high tombstone ratioThis gives you:
After deploying privacy fixes, verify:
socket.rs message logging is DEBUG (not INFO)WABI_LOG_RETENTION_DAYS is set (default 7)grep -r "Received socket message" logs/ returns nothingwabidb-troubleshooting — WabiChat deployment and runtime issueswabi-deploy — Deploy wabi-server to Tim or other hostswabidb-core-capabilities — WabiDB engine reference