Design decisions
The choices that shaped Kaizen Manas, what else was considered, and what each choice cost.
In this section
Python for the hostPython for the host: Python chosen; one language for the bot.Chat-only controlChat-only control: All control is through Discord or Telegram.Approval buttonsApproval buttons: Four buttons: Once, Session, Always (exact), Deny.Always Allow is exact textAlways Allow is exact text: Only identical commands match.Subprocess sandbox, not a containerSubprocess sandbox, not a container: Limited subprocess plus an optional external sandbox.Core code is hard blockedCore code is hard blocked: No button exists for protected paths.Allow-list fails closedAllow-list fails closed: Everyone is refused until a list is set.One processOne process: Bot, scheduler and workers share one process.Rename to Kaizen ManasRename to Kaizen Manas: Display rename on 2026-09-17. Repo name unchanged.Time-boxed /allowTime-boxed /allow: A window of 5, 10 or 30 minutes.Tool groupsTool groups: Groups can be switched off.Tiers customised by commands onlyTiers customised by commands only: Only commands write the routing file.Supervisor with rollbackSupervisor with rollback: deploy_watch.py rolls back on early exit.Shell off by defaultShell off by default: Operator-only switch.
Checked against the source at commit f4fd89f on 29 Oct 2026. Everything here is merged on the main branch; no release has been tagged yet. The source is private, so these pages are the public description.