Skip to content

feat: interactive enhancements — AskUserQuestion, export, browse, cost, triggers#1

Merged
nathanschram merged 1 commit intomasterfrom
feature/interactive-enhancements
Feb 25, 2026
Merged

feat: interactive enhancements — AskUserQuestion, export, browse, cost, triggers#1
nathanschram merged 1 commit intomasterfrom
feature/interactive-enhancements

Conversation

@nathanschram
Copy link
Contributor

Summary

Major feature batch adding interactive UX, cost visibility, and file browsing to Untether:

  • AskUserQuestion support (A1) — Claude's clarifying questions shown in Telegram; user replies with text, answer routed back via control channel. Supports both {"question": "..."} and {"questions": [{"question": "..."}]} input formats
  • /export command (A3) — Session transcript export as markdown or JSON (/export json). Records up to 20 sessions with full event timeline and usage stats
  • Cost budget system (A4) — Configurable per-run/daily budgets via [cost_budget] in untether.toml with warning thresholds and optional auto-cancel
  • Cost display (CC5) — Running cost shown in progress footer: 💰 $0.37 · 9 turns · 1m 47s API · 11 in / 1.2k out
  • Diff preview (CC4) — Compact Edit/Write/Bash previews in tool approval messages
  • /browse command (CC6) — Navigate project files via inline keyboard buttons. Project-aware per chat route, 2-per-row button layout, path registry for 64-byte callback_data limit
  • Trigger system — Webhook HTTP server (aiohttp) + cron scheduler, Jinja2 templating, HMAC/bearer auth, rate limiting
  • Inline cancel button (A5) — Cancel button alongside approval buttons on progress messages

Test plan

  • 812 tests passing, 80.69% coverage
  • 0 ruff lint errors
  • Live tested via Telegram MCP: /browse, /export, /export json, AskUserQuestion flow, cost display, approval buttons, chat routing across multiple project groups
  • Docs updated: CLAUDE.md, runner docs, rules

🤖 Generated with Claude Code

…ost tracking, diff preview, triggers

Phase 1 — Quick wins:
- Inline cancel button on progress messages (A5)
- Cost display in progress footer: 💰 $X.XX · N turns · Xs API (CC5)
- /export command for markdown/JSON session transcripts (A3)

Phase 2 — Interactive enhancements:
- AskUserQuestion support: Claude's questions shown in Telegram, user replies
  with text, answer routed back via control channel (A1)
- Diff preview in tool approval messages: compact Edit/Write/Bash previews (CC4)
- Cost budget system: per-run/daily budgets with warning thresholds (A4)

Phase 3 — File browser & triggers:
- /browse command: navigate project files via inline keyboard buttons (CC6)
  - Project-aware root resolution per chat route
  - 2-per-row button layout, path registry for 64-byte callback_data limit
- Trigger system: webhook HTTP server + cron scheduler, Jinja2 templating,
  HMAC/bearer auth, rate limiting

Tests: 812 passing, 80.69% coverage, 0 lint errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@nathanschram nathanschram merged commit e0673dc into master Feb 25, 2026
2 checks passed
@nathanschram nathanschram deleted the feature/interactive-enhancements branch February 25, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant