Summary
Redesign the message footer for clarity and space efficiency. Three changes:
1. Replace π· dir: <project> with π <project>
Before: π· dir: claude-test | opus 4.6 (1M) Β· plan
After: π claude-test | opus 4.6 (1M) Β· plan
- Drop the π· (label) emoji β it's decorative with no semantic meaning
- Replace
dir: text prefix with π emoji β saves 5 characters, more scannable
- π (open file folder, U+1F4C2) is universally recognised on all platforms
- When no project context exists (DM chats), the line starts with model info directly
2. Ambient trigger indicators on human-initiated runs
When a chat has active crons or webhooks, show bare emoji indicators in the footer even on normal (non-trigger) runs:
Human run in chat WITH crons: π myapp | opus 4.6 (1M) Β· plan Β· β°
Human run in chat WITH webhooks: π myapp | opus 4.6 (1M) Β· plan Β· β‘
Human run in chat WITH both: π myapp | opus 4.6 (1M) Β· plan Β· β° β‘
Trigger-initiated run (full label stays): π myapp | codex-mini Β· β° cron:daily-review
Webhook-initiated run: π myapp | codex-mini Β· β‘ webhook:github-push
The bare emoji signals "triggers are active here" without cluttering every message with labels. The full β° cron:<id> / β‘ webhook:<id> label is reserved for runs that were actually caused by a trigger.
3. Separate emojis for crons vs webhooks
- β° = crons (time-based, scheduled)
- β‘ = webhooks (event-based, on-demand)
These become the universal Untether emojis for these concepts β used consistently across /ping, footers, /config, and startup messages.
Implementation
Files to modify:
src/untether/directives.py:150-151 β format_context_line(): change f"dir: {alias}" to f"π {alias}"
src/untether/markdown.py:392 β _format_footer(): remove \N{LABEL} prefix, lead with context_line or meta_line directly
src/untether/markdown.py:312-328 β format_meta_line(): add ambient trigger indicator logic (query TriggerManager for active crons/webhooks in the chat)
src/untether/runner_bridge.py β pass chat_id context to ProgressTracker so it can query active triggers
Tests to update:
test_meta_line.py β update 54 tests for new footer format
test_exec_bridge.py β footer rendering tests
Related
Summary
Redesign the message footer for clarity and space efficiency. Three changes:
1. Replace
π· dir: <project>withπ <project>Before:
π· dir: claude-test | opus 4.6 (1M) Β· planAfter:
π claude-test | opus 4.6 (1M) Β· plandir:text prefix with π emoji β saves 5 characters, more scannable2. Ambient trigger indicators on human-initiated runs
When a chat has active crons or webhooks, show bare emoji indicators in the footer even on normal (non-trigger) runs:
Human run in chat WITH crons:
π myapp | opus 4.6 (1M) Β· plan Β· β°Human run in chat WITH webhooks:
π myapp | opus 4.6 (1M) Β· plan Β· β‘Human run in chat WITH both:
π myapp | opus 4.6 (1M) Β· plan Β· β° β‘Trigger-initiated run (full label stays):
π myapp | codex-mini Β· β° cron:daily-reviewWebhook-initiated run:
π myapp | codex-mini Β· β‘ webhook:github-pushThe bare emoji signals "triggers are active here" without cluttering every message with labels. The full
β° cron:<id>/β‘ webhook:<id>label is reserved for runs that were actually caused by a trigger.3. Separate emojis for crons vs webhooks
These become the universal Untether emojis for these concepts β used consistently across
/ping, footers,/config, and startup messages.Implementation
Files to modify:
src/untether/directives.py:150-151βformat_context_line(): changef"dir: {alias}"tof"π {alias}"src/untether/markdown.py:392β_format_footer(): remove\N{LABEL}prefix, lead with context_line or meta_line directlysrc/untether/markdown.py:312-328βformat_meta_line(): add ambient trigger indicator logic (query TriggerManager for active crons/webhooks in the chat)src/untether/runner_bridge.pyβ pass chat_id context to ProgressTracker so it can query active triggersTests to update:
test_meta_line.pyβ update 54 tests for new footer formattest_exec_bridge.pyβ footer rendering testsRelated
β° cron:<id>footer)