mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-07-09 18:57:08 +08:00
1a3c3eaf9b
SSF-002 — the telegram pairing card renders via clack's static note/log primitives instead of bare console.log. hostExecStream tees non-status lines verbatim, and static clack output is just lines — only interactive/animated widgets need the TTY the piped child doesn't have. SSF-003 — an either/or nc:prompt (validate:^(a|b)$) renders as an arrow-key p.select; the options come from the validate regex itself (literalChoices), so no grammar addition and zero skill edits. Prefixes and format unions keep the text prompt. The `?` help-escape doesn't apply to selects — every choice is valid and self-describing. SSF-004 — a bounced step no longer dumps a raw stacktrace or the skill's reference prose into the wizard. hostExec recomposes failures as `exit <code>: <first stderr line>` (full stderr kept below for the agentTask reason an agent fixes from); run-channel-skill shows one line per bounce and writes the full text to a logs/setup-steps raw log, which fail() forwards to the Claude handoff. The directive engine (scripts/skill-apply.ts, skill-directives.ts) is untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HB8rQxJN7itcFhNYVDntpm