mirror of
https://github.com/severian-dev/sucker.severian.dev.git
synced 2026-10-18 01:20:29 +00:00
94d43dbb9dd24291a9021a4e007ba90ae17159d7
Every failure produced the same reply: read the directions, and check your context size. For a card Janitor truncated that was fair. For a request shape the user never chose, or for a bug in sucker, it blamed them for something they could not have done anything about — and sent them back to directions they had already followed. Failures that can be explained now explain themselves: no card in the request, no greeting in the chat, a card that arrived truncated (which keeps the context-size advice, since that is where it belongs), and a request with nothing in it. Anything else is a bug nobody anticipated, so the reply says as much, says it is not the user's fault, and asks them to DM @lyseverian on Discord — an unexplained failure nobody reports never gets fixed. Internals are never echoed back. SuckerError is recognised by name as well as by identity, because Next can bundle a module into more than one chunk and a mismatched class would quietly send every explained error down the unknown-bug path. 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%