Channels: default-only threading + automation (read-only) channels — threading (topic switcher, Ctrl+T, auto-threading) is now only active on the default channel, and the gateway ignores auto_thread for other channels; new channel.set_automation frame marks a channel read-only for cron/webhook output (app hides the composer behind a notice, gateway rejects message.send, default channel cannot be marked, flag syncs to all devices via the full-entry channel.renamed response, gear badge in the list); header pill drops the 'Bot' subtitle and shows the chat_id on automation channels (tap to copy for cron delivery targeting); also fixes a pre-existing stray brace that made frames.schema.json invalid JSON

This commit is contained in:
ARIA committed 2026-08-21 09:39:32 +02:00
1 parent d7cd59b685
commit 10e9565e2e
9 files changed
+256 -37

No files matched your search

+13
View File
@@ -44,6 +44,10 @@ gateway identity concepts**.
target a specific thread.
- The gateway's `create_handoff_thread` is used where hermes wants to open a
named thread (e.g. continuable cron).
- **Threading is only active on the default channel.** The topic switcher,
the "new topic" affordance (Ctrl+T), and auto-threading all apply to the
default channel only; user channels stay flat (the gateway also ignores
`auto_thread` for non-default channels).
### 6.3.1 Auto-threading (Telegram topic-mode workflow)
@@ -83,6 +87,15 @@ lane (nothing to title / session-scoped, not conversation starters).
- **`channel.rename` / `channel.set_default` / `channel.delete`** manage the
directory (rename broadcasts `channel.renamed`; delete is soft — marks
archived, keeps history for search).
- **Automation channels:** a channel can be marked *automation*
(`channel.set_automation {on}`, long-press / right-click menu; the default
channel cannot be marked). Automation channels are **read-only for the
user**: they exist only to receive gateway-originated output (cron job
output, webhook output). The app replaces the composer with a read-only
notice, and the gateway rejects `message.send` into them
(`error unsupported`). The flag is server-authoritative (synced to all
devices via the `channel.renamed` full-entry response) and shown as a gear
badge in the channel list.
- **App affordance for threads:** long-press (touch) / right-click (desktop) a
topic chip → "Rename" (`channel.rename`) or "Delete" (`channel.delete`).
Deleting the open thread falls the app back to the channel's flat lane.