You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DISCRAWL_NO_AUTO_UPDATE=1 discrawl --json sql "select count(*) from messages;"
40
108
```
41
109
42
-
Report absolute date spans, channel/DM names, counts, and known gaps. Use read-only SQL for exact counts/rankings. Never use `--unsafe --confirm` unless the user explicitly requests a reviewed DB mutation.
110
+
## SQL
111
+
112
+
Use `discrawl sql` for exact counts, joins, and ranking queries when normal
113
+
CLI reads are too coarse. The command is read-only by default, accepts SQL as
114
+
args or stdin, and supports `--json` for agent parsing.
115
+
116
+
Useful examples:
117
+
118
+
```bash
119
+
DISCRAWL_NO_AUTO_UPDATE=1 discrawl --json sql "select count(*) as messages from messages;"
120
+
DISCRAWL_NO_AUTO_UPDATE=1 discrawl --json sql "select coalesce(nullif(c.name, ''), m.channel_id) as channel, count(*) as messages from messages m left join channels c on c.id = m.channel_id group by m.channel_id order by messages desc limit 20;"
121
+
DISCRAWL_NO_AUTO_UPDATE=1 discrawl --json sql "select coalesce(nullif(mm.display_name, ''), nullif(mm.global_name, ''), nullif(mm.username, ''), m.author_id) as author, count(*) as messages from messages m left join members mm on mm.guild_id = m.guild_id and mm.user_id = m.author_id group by m.guild_id, m.author_id order by messages desc limit 20;"
122
+
```
123
+
124
+
Never use `--unsafe --confirm` unless the user explicitly asks for a database
125
+
mutation and the write has been reviewed.
126
+
127
+
When the installed CLI lacks a new feature, build or run from a verified
128
+
`openclaw/discrawl` checkout before concluding the feature is missing.
129
+
130
+
## Discord Boundaries
131
+
132
+
Bot API sync requires configured Discord bot credentials; do not invent token
133
+
availability. Desktop wiretap mode reads local Discord Desktop artifacts and
134
+
must not extract credentials, use user tokens, call Discord as the user, or
135
+
write to Discord application storage. Wiretap/Desktop cache DMs are local-only
136
+
and must not be described as part of the published Git snapshot. Git-share
137
+
snapshots must not include secrets or `@me` DM rows.
138
+
139
+
## Verification
140
+
141
+
For repo edits, prefer existing Go gates:
142
+
143
+
```bash
144
+
GOWORK=off go test ./...
145
+
```
146
+
147
+
Then run targeted CLI smoke for the touched surface, for example:
Boundaries: bot sync needs configured Discord bot credentials. Wiretap reads local Discord Desktop artifacts only; do not extract user tokens, call Discord as the user, or write to Discord storage. Git-share snapshots must not include secrets or `@me` DM rows.
165
+
This reader imports `https://github.com/openclaw/discord-store.git` into
166
+
`/root/clawsweeper-sandbox-workspace/.discrawl/discrawl.db` with
167
+
`discord.token_source = "none"`. The published Git snapshot is public-channel
168
+
filtered; do not use `/root/.discrawl/config.toml` or the rich writer DB from
0 commit comments