v1.5.6 — Kilo + Windows/Unicode fine-tune
[1.5.6] — 2026-06-19
Fine-tune release from a live Kilo Code + z.ai (GLM) field test. The structural
root was three drifted IDE lists; they are now two named constants.
Fixed
- Kilo-only installs got "no scripts dir found" from the CLI. The wrapper's
IDE-discovery loop hardcodedclaude cursor qwen windsurf codex— nokilo—
sobootstrap --ide kiloproduced a.tausik/tausikthat couldn't find
.kilo/scripts. The loop is now injected frombootstrap_config.IDE_DIRS
(the single source of truth) into the wrapper template at install time via an
__IDE_LIST__placeholder; add an IDE toIDE_DIRSand every consumer picks
it up.--ide alland the--ideargparse choices now derive from a sibling
SCAFFOLD_IDESconstant. (P0/P4) - Windows UnicodeEncodeError on Cyrillic / ✓ output. Layered UTF-8 hardening:
the CLI wrapper exportsPYTHONUTF8=1; every hook runs viapython -X utf8
(one injection point in the hook-command builder, covering all hooks); and the
standalone entry points —bootstrap.pyand all MCP servers — call
fix_stdio_encoding()at startup. Note:PYTHONUTF8/-X utf8fix the locale
default but do not override an explicitPYTHONIOENCODING; the runtime
reconfigure does. (P1) - Skill/rules paths resolved to
.claudeunder Kilo/Qwen. The runtime IDE
layer (ide_utils) only knew claude/cursor/windsurf/codex, so under a
Kilo-only installdetect_ide()fell back to claude and skill install /
SessionStart profile rebuild targeted.claudeinstead of.kilo.qwen
(.qwen/QWEN.md) andkilo(.kilo/AGENTS.md) are now registered and
detected via their project dirs +TAUSIK_IDE. (Env-var auto-detection for
kilo/qwen is intentionally deferred until verified on a live build.) (P5)
Added
task quick --ac/--acceptance. Quick-create a task with its acceptance
criteria in one command, so it is QG-0-ready (goal + AC) without a follow-up
task update. Blank/whitespace AC is ignored — QG-0 is unchanged. Exposed on
thetausik_task_quickMCP tool as well. (P2)tausik doctorvalidates the Kilo MCP config. When a.kilo//.kilocode/
install is present, doctor checks thatkilo.jsonc/mcp.jsonparse (JSONC
tolerated), carry atausik-projectmcpstanza with acommandarray, and
that the referencedserver.pyresolves (${workspaceFolder}expanded). Each
finding tells you to re-bootstrap and restart Kilo. Silent for non-Kilo
projects. (P3)
Internal
- Guard tests lock the IDE single-source invariant (
SCAFFOLD_IDES ⊆ IDE_DIRS,
argparse choices and--ide allderive from the constants, no hardcoded IDE
list literal inbootstrap/) and the Unicode-stdio fixes (wrapper, hooks, MCP
servers, bootstrap).