Releases: Shimba-crypto/DumbCode
Release list
DumbCode v0.12.3 — self-healing upgrade + branding
Fix: upgrade self-heal
The v0.12.2 upgrade had a nasty bug: the asset picker matched any .exe, and GitHub lists release assets alphabetically — so it downloaded dumbcode-setup.exe (the net installer) and swapped it over your real CLI. Symptom: dumbcode --version printed the setup banner instead of a version.
This release fixes the updater and lets broken installs repair themselves:
pickAssetnow explicitly prefersdumbcode.exeand skips*-setup/ installer names- The Windows swap finisher is hardened: verifies the staged exe, waits headless-safe, retries through AV file locks, and on failure keeps the staged exe + writes
<target>.update-failed.txtinstead of vanishing silently - New command:
dumbcode repair— detects a setup-binary masquerading as the CLI, downloads the release CLI, verifies its SHA-256 againstSHA256SUMS.txt, and swaps it in safely
If your install is broken (prints "DumbCode setup" on --version)
npm i -g dumbcode # option A: reinstall via npm
# or download this release's dumbcode.exe and replace the installed one(Existing broken installs from v0.12.2's updater can't run dumbcode repair themselves — the binary is the installer. Run the installer: it now refuses self-overwrite and installs the correct CLI.)
Also
- Branding generator (
scripts/gen-branding.mjs): zero-dependency PNG renderer producing the DumbestBOT avatar, banner, and social-preview art - Docs: org profile for DumbestBOT (the live GitHub App bot)
Verification
- 127/127 tests pass (2 new covering the asset picker and finisher hardening)
dumbcode.exereports v0.12.3; SHA256SUMS included
DumbCode v0.12.2 — image input + prompt-injection hardening
New features
🖼️ Image input
Attach images (PNG/JPG/GIF/WebP, ≤5 MB) to any question or chat turn — they're sent as multimodal content parts to vision-capable models:
dumbcode ask "what's wrong with this UI?" --file screenshot.png
dumbcode chat # then: /file diagram.png and ask about itProvider shapes are converted automatically: OpenAI-compatible content parts, Anthropic base64 image blocks, Gemini inline_data, and Ollama native images — in both streaming and non-streaming paths. Text-only flows are completely unchanged.
🛡️ Prompt-injection hardening
Tool output (file reads, greps, shell, tests, web fetches) can carry attacker-written instructions. DumbCode now:
- Fences untrusted content: everything from guarded tools is wrapped in
<<<UNTRUSTED CONTENT>>>markers at the single choke point shared by the CLI and MCP — and the system prompt instructs the model to treat fenced content as data, never directives. - Scans for injection smells: "ignore previous instructions", secret-exfil requests, fake tool-call syntax, mode-override attempts — flagged on the console when they appear in tool output.
- Protects the GitHub bot: issue/PR comment text that summons DumbestBOT is wrapped the same way, so a comment can't steer the agent.
Also in this release
- GitHub App bot scaffold (DumbestBOT): webhook server, in-process agent runs, per-PR fix PRs, one-command app registration via
npm run bot:setup -- --org <org>
Verification
- 125/125 tests pass (10 new covering images + guard)
dumbcode.exereports v0.12.2; SHA256SUMS included
DumbCode v0.12.0
Agent platform release
Big jump from 0.11.x: the agent loop grew into a small platform.
Agent loop
todo_write/todo_readlive checklist (session-persisted)- Subagents via
.dumbcode/agents/*.md+dispatch_agent; model-driven background agents viadeploy_agent - Hooks:
PreToolUse/PostToolUse/UserPromptSubmit/SessionStart(config-driven shell events) - Rule-based permissions + modes (
default | plan | acceptEdits | bypassPermissions) enforced in tools, chat, subagents, and MCP —denyoverrides even--yes
Checkpoints / rewind / blame
- One checkpoint per agent run;
dumbcode checkpoints | rewind <id> | restore <id> | blame <file> - Provenance on every tool call: who (session/agent/subagent), permission decision, approval, checkpoint
- In chat:
/undo,/checkpoints,/rewind,/restore,/blame
Extensions
- Custom slash commands (
<project>/.dumbcode/commands/*.md,{args}expansion) /goalproject memory (.dumbcode/goal.md,goal_read/goal_updatetools, attached to system prompt)- Skill evolution:
dumbcode skills saveand/skill savecapture effective prompts
UX / context
- Markdown rendering in chat (streaming-safe code blocks, headings, bold) —
/markdown - Project context index:
symbol_findtool,dumbcode index+/index, change status across sessions
95 unit tests passing. SHA256SUMS.txt included — verify with sha256sum -c SHA256SUMS.txt.