Skip to content

wiretap: 0 messages ingested from Discord Desktop 0.0.387 cache layout #48

@rbxlive

Description

@rbxlive

Summary

discrawl wiretap (v0.6.0 release + post-release main build at commit 4f6d708) reads files from Discord Desktop 0.0.387's cache directory but extracts zero messages, channels, or guilds. The pre-0.0.387 cache layout worked fine — historical messages dating back to ~2025-09 were ingested successfully on prior Discord versions.

This is filed to flag the layout shift, not as a feature request — wanted to report what we observed in case it's useful for upstream.

Environment

  • macOS (intel x86_64 + apple silicon arm64 both tested)
  • Discord Desktop 0.0.387 (auto-installed 2026-04-26 ~08:40 PT), ~/Library/Application Support/discord/0.0.387/ directory cohort
  • discrawl v0.6.0 (release binary) and main @ 4f6d708 (built locally with go 1.26.2)

Reproduction

discrawl wiretap --watch-every 3s
# OR
discrawl wiretap --path "$HOME/Library/Application Support/discord"
# OR
discrawl wiretap --path "$HOME/Library/Application Support/discord/0.0.387"

Output (any of the above):

path=/Users/.../Library/Application Support/discord/0.0.387
files=57
skipped=882
objects=56
guilds=0
channels=0
messages=0
dm_messages=0
dm_channels=0
guild_messages=0

files and objects are non-zero so files are being read; messages / guilds / channels are zero so the parser doesn't recognize the content format.

Cache layout snapshot (Discord 0.0.387)

Subdirectories under ~/Library/Application Support/discord/:

  • 0.0.387/ (new this version — created 2026-04-26 08:40 PT)
  • 0.0.387/modules/ (mtime 08:44)
  • Cache/Cache_Data/ (HTTP cache only — avatars/images, not message content)
  • Local Storage/leveldb/strings extraction shows preview/store metadata only (e.g. GChannelMessagePreviewStore, lastSeenInfos), no message content
  • shared_proto_db/ (NEW — leveldb structure with CURRENT, LOCK, MANIFEST-000001, 000003.log, metadata/). mtime cohort with launch (08:41), not active during chat traffic. Likely client config, not message store.
  • Service Worker/CacheStorage/7d571773fef4871f82ca0457379cf2a39317562f/ — possible IndexedDB replacement, not investigated deeply
  • IndexedDB/https_discord.com_0.indexeddb.leveldb/ — mtime 2025-12-08, stale; suggests Discord moved off IndexedDB at some point
  • DawnGraphiteCache/, DawnWebGPUCache/ — graphics, irrelevant
  • blob_storage/, Session Storage/, Code Cache/, WebStorage/, GPUCache/, VideoDecodeStats/, logs/

Hypothesis

Discord 0.0.387 may have moved from disk-cached message storage to in-memory + on-demand API fetch, OR to a new disk subsystem (Service Worker CacheStorage / shared_proto_db / something else) that the current internal/discorddesktop/import.go parser doesn't know about. We tried --path overrides at every plausible subdirectory; same zero result.

What works

  • Discord Desktop is running and signed in normally (Robert's account, no flags)
  • Pre-0.0.387 historical data in DB is queryable (discrawl messages, discrawl search work fine)
  • wiretap itself runs without error — just produces no rows

Happy to provide additional layout dumps, file samples, or strace/dtrace output if it helps narrow it down. Thanks for maintaining this — the wiretap mode was a great approach for the no-bot use case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions