···3843843853853. Telegram normal chat run (default path)
386386387387-- File: `cmd/mistermorph/telegramcmd/command.go`
387387+- File: `internal/channelruntime/telegram/runtime_task.go`
388388- Default payload when `job.Meta == nil`:
389389390390```json
···397397}
398398```
399399400400+- Message injection behavior:
401401+ - Non-heartbeat Telegram runs set `SkipTaskMessage=true` to avoid duplicating the same inbound text.
402402+ - The current inbound text is already included via `llmHistory` (`historyWithCurrent`).
403403+4004044. Telegram scheduled heartbeat
401405402402-- File: `cmd/mistermorph/telegramcmd/command.go`
406406+- Files:
407407+ - `internal/channelruntime/telegram/runtime.go` (heartbeat job creation + meta)
408408+ - `internal/channelruntime/telegram/runtime_task.go` (RunOptions wiring)
403409- Heartbeat worker payload from `buildHeartbeatMeta(...)`:
404410405411```json
···421427 }
422428}
423429```
430430+431431+- Message injection behavior:
432432+ - Heartbeat Telegram runs set `SkipTaskMessage=false`.
433433+ - This ensures `job.Text` (heartbeat checklist task, usually from `HEARTBEAT.md`) is appended as a user task message and reaches the model.
4244344254355. MAEP inbound auto-reply run
426436