Skip to content

Releases: Shimba-crypto/DumbCode

DumbCode v0.12.3 — self-healing upgrade + branding

Choose a tag to compare

@Shimba-crypto Shimba-crypto released this 05 Sep 21:35

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:

  • pickAsset now explicitly prefers dumbcode.exe and 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.txt instead of vanishing silently
  • New command: dumbcode repair — detects a setup-binary masquerading as the CLI, downloads the release CLI, verifies its SHA-256 against SHA256SUMS.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.exe reports v0.12.3; SHA256SUMS included

DumbCode v0.12.2 — image input + prompt-injection hardening

Choose a tag to compare

@Shimba-crypto Shimba-crypto released this 05 Sep 20:35

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 it

Provider 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.exe reports v0.12.2; SHA256SUMS included

DumbCode v0.12.0

Choose a tag to compare

@Shimba-crypto Shimba-crypto released this 05 Sep 18:58

Agent platform release

Big jump from 0.11.x: the agent loop grew into a small platform.

Agent loop

  • todo_write / todo_read live checklist (session-persisted)
  • Subagents via .dumbcode/agents/*.md + dispatch_agent; model-driven background agents via deploy_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 — deny overrides 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)
  • /goal project memory (.dumbcode/goal.md, goal_read/goal_update tools, attached to system prompt)
  • Skill evolution: dumbcode skills save and /skill save capture effective prompts

UX / context

  • Markdown rendering in chat (streaming-safe code blocks, headings, bold) — /markdown
  • Project context index: symbol_find tool, dumbcode index + /index, change status across sessions

95 unit tests passing. SHA256SUMS.txt included — verify with sha256sum -c SHA256SUMS.txt.