Any user, any environment
The day started with one question: how many bot user containers are running on sb2? The answer was one. By the evening a stranger could docker run a ScorpioX Bot node.
The bugs found by actually using it
Every real bug today came from running the product the way a user would, not from reading code:
- The bot couldn't see sessions. The CLI and the bot API disagreed on which session backend to use, because tmux happened to be installed. Pinning the backend in config fixed what we saw. The real fix was making sxmux a first-class Linux backend: one session registry, with screen and keys routed through the multiplexer.
- Two sessions shared one chat. Two named sessions in a plain folder both showed the same history. The API was guessing "the latest chat in this folder". Now each session tags its own chat, and the guess is only a fallback.
- Binaries that only ran on dev boxes. The packaged multiplexer needed a shared library that pointed at the build directory, and
peekneeded one that pointed at a dev checkout. Both worked on every machine we develop on and failed on every fresh install. A clean container found them in minutes. - A glibc shim isn't glibc. Alpine with gcompat looked promising until the binaries asked for the hardened
__*_chkfunctions. The honest answer is static/musl builds. Meanwhile a Debian-slim image ships and works.
Ideas worth keeping
- Agent onboarding should be a tool that explains itself, not a 10-step page.
scorpiox-onboardis being built to say what each thing is, why it matters, and what to do, in words a non-technical user understands. - Don't create things in someone's folder without asking. The image now asks before adding a starter workspace, and defaults to "no" when you already have projects.
- One login, one place. The Docker Hub login lives in one small account container. Images are streamed into it and pushed from there, the same way the cloud accounts work.
The pattern
Ship → install fresh → watch it fail → fix the root cause → ship again. The e2e test in a fresh container, pulled from the real registry and onboarded through real prompts, found more in an hour than the unit tests did all week.