Discord9 of 10
Honest limits
On this page
- Reminders asked for in a channel do not ring there
- Approval cards for anything on the host need the owner
- There is no screen
- Her reply is not streamed
- A background job runs with everything her person has
- A guest can spend your credit
- One channel is one memory, shared by everybody in it
- Only images and PDFs reach her eyes
- Reading a channel back is capped
- She will not take a secret here
- Small things that surprise people
Everything on this page is a thing she does not do. Read it before you promise any of it to the people in your server.
Reminders asked for in a channel do not ring there
The bot process starts no cron ticker, on purpose: cron delivers into the event queues of whichever process is ticking, and a second ticker would claim a due reminder and announce a private one into whichever channel happened to be listening.
So a reminder set from Discord is written to the shared database and rings where your screen is — the browser or the terminal — and waits if neither is open. She says so herself when she sets one:
It will not ring in this Discord channel: reminders ring where your screen is, the browser or the terminal, and wait if neither is open.
On a Discord-only install, with no web app and no terminal session ever running, it waits forever.
Only the owner can set one at all: cronjob is not on the guest list.
Approval cards for anything on the host need the owner
A card for something running on the machine she is installed on can only be answered by the account
in KOTOBA_DISCORD_OWNER_ID. Not by a server administrator, not by whoever asked.
With no owner id set, that whole branch is unreachable anyway: the tools that touch the host are withheld from everybody.
There is no screen
A Discord message and an approval card with two buttons are the whole of what she can draw. No task
list, no progress, no steps, no panels, no secure boxes. ask_user and open_link are withheld from
everybody for that reason, and she is told plainly not to send anyone to look at something that is
not there.
The one exception is a background job: when it finishes she posts her own summary of it in the channel it was asked for. That announcement is attributed to her person and is skipped when no owner id is set — which is moot, since without one nobody can start a job from Discord in the first place.
Her reply is not streamed
She shows the typing indicator while she works and posts the answer when the turn ends.
A background job runs with everything her person has
Only the owner can start one. It inherits the turn's exclusion — which for the owner is nearly nothing — so a job started from a Discord channel runs the full work-mode toolset on the host, including families that are never offered in an ordinary conversation: subagents, MCP installation, the credential tools. Its approval cards appear in that channel, and the host ones are still the owner's alone.
A guest can spend your credit
discord_voice is on the guest list, so any member can ask her into a voice channel. Once there she
opens a transcriber per person who speaks and synthesises every sentence she says. A room is many
people talking, and every message she answers is a full model turn.
The defaults hold this down: she answers only when named, she opens nothing for somebody who has not made a sound, and she leaves a channel she has been alone in for five minutes. A home channel undoes the first of those — in a home channel she answers everything.
One channel is one memory, shared by everybody in it
There is no per-person conversation inside a channel. What she reads back when she answers you includes what other people said there.
Only images and PDFs reach her eyes
Up to 8 MB and four per message. She is told to say plainly which ones did not arrive. Any other file type is skipped without a word — she does not see it and does not know it was there.
Reading a channel back is capped
discord_read_history reads at most 100 messages per channel by default and 400 at the outside, and
fits what it read into about 12,000 characters by dropping from the middle — never the ends,
because a summary needs where it started and where it ended. It says when a range was cut short.
It reads a channel back only if the person asking may see it. "No such channel" and "not yours to see" come back as the same sentence, so a guess about a private channel is not confirmed.
She will not take a secret here
A card asking for a key or a password is refused in a channel, with a sentence explaining why. Give her secrets in the terminal or in Settings.
Small things that surprise people
- The bot will not start without the voice dependencies, even for text only. PyNaCl and the DAVE
library come with the
discordextra and all three are checked at startup. - Being the owner is not being an administrator. The four server-shaping tools are gated on Discord's own bit.
discord_peoplewith no name given only works in a server. In a DM there is no roster, and it says so rather than listing everybody she has ever met.- A DM is answered by anyone at all unless you set
KOTOBA_DISCORD_GUILDS. - The stall watchdog is a voice feature. A spoken turn is abandoned after 75 seconds of nothing
happening or 10 minutes in total; a written turn has no such clock of its own. The bound there is
the per-tool timeout inside the loop — 30 seconds by default, raised by the tools that need it
(
discord_voicetakes 90, applying a plan takes 600). - The bot shares one database and one workspace with your other surfaces. A file she writes from
Discord is the same file the web app's Files panel shows, under
~/.kotoba/filesby default.
