mirror of
https://github.com/severian-dev/sucker.severian.dev.git
synced 2026-10-18 01:20:29 +00:00
bf74a85fec0089891ede7bc0d6f99fc04a1cdcfe
The previous commit split failures into explained and unexplained, but the split that matters is fixable and not. A request with no card, no greeting, or nothing in it cannot come out of Janitor. Telling someone to "open the chat until the bot's first message shows" is the dingus message wearing a new coat: instructions for something they did not do and cannot undo. Only the truncated card is a user's to fix, so only it is shown verbatim, with the context-size advice. The rest are ImpossibleRequest now: the reply says plainly that it is not their fault and there is nothing for them to fix, and asks them to report it, carrying a short tag so the report says which assumption broke rather than expecting the user to explain it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NX2SsmUqQftWTZAY4BDuFa
Sucker
Environment Variables
Add these to your .env.local file (optional):
# Disable Discord community banner (defaults to showing banner)
NEXT_PUBLIC_DISABLE_DISCORD_BANNER=true
Usage
Pull this repostory and build with npm run build. You can start the server with node ./.next/standalone/server.js
You can also build and run Sucker as a Docker container with docker compose build and docker compose up.
Changelog
- 2.5: Real error messages instead of one blanket "dingus" reply; unexplained failures now ask you to DM @lyseverian. Unread dot on the Changelog button. Fixed extraction for users whose Janitor sends a request without the blank turn before the first message — sucker read the parts by position rather than by role, so for them it read the wrong ones and errored. Now resolved by role, with tests for both shapes.
- 2.4: CSS editor for Janitor profiles. New banner links to the live-preview editor at tools.from-avalon.com/janitor-profile-maker.
- 2.3: ECHO. Put ECHO: anywhere in a message and sucker repeats whatever comes after it in the reply — for triggering char-side script and lorebook keywords.
- 2.2: Added support for directly inputting webp file names or character image links when creating PNG character cards
- 2.1: updated deps, note about image fetching, list of mirrors
- 2.0: from Tui: Multimessage support! Tracks changes to character descriptions and scenarios across multiple extractions. Shows version badges, message counts, and provides detailed change history viewer.
- also 2.0: V2 charcard format and alternate greetings.
- 1.9: Not again. They changed stuff again. What is this?
- 1.8: Handling for new prompt structure, new instructions
- 1.7: Handling for nested XML character tags
- 1.6: First message formatting, copy button for first message and other fields
- 1.5: {{user}} substitution for user persona name
- 1.4: Mooth just keeps finding bugs, damn.
- 1.3: Mooth found a bug, fixed it.
- 1.2: Fix for Janitor having changed their prompt system
- 1.1: Fix for R1 handling change, blank user persona bug
- 1.0: Yup.
Description
Languages
TypeScript
96.4%
JavaScript
2.3%
CSS
1.3%