You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`prompt`| string | required | Text description of the video |
49
49
|`duration`| int |`8`| Duration in seconds: `4`, `6`, or `8`|
50
50
|`aspect_ratio`| string |`16:9`|`16:9` or `9:16`|
51
+
|`image_path`| string | — | Path to a workspace image to use as starting frame (image-to-video). Omit for text-to-video. Supported formats: PNG, JPEG, WebP, GIF. Max 20 MB. |
52
+
|`filename_hint`| string | — | Short descriptive filename without extension (e.g. `cat-playing-piano`) |
53
+
54
+
### Image-to-Video
55
+
56
+
Provide an `image_path` to generate a video starting from a reference image. The image is encoded as base64 and sent to the provider. When using image-to-video mode, duration is fixed at **8 seconds** (API constraint).
57
+
58
+
**Example agent prompt:***"Animate this product photo with a slow zoom and subtle lighting changes"* (with `image_path` pointing to a workspace image)
59
+
60
+
> **Note:** Not all providers support image-to-video. Gemini (Veo 3.1 Lite) supports it natively. Unsupported providers in the chain are skipped automatically.
51
61
52
62
Video generation is slow — both Gemini and MiniMax poll up to ~6 minutes. The timeout per provider defaults to 120 seconds but can be increased via chain settings.
53
63
@@ -182,4 +192,4 @@ Downloaded media files are capped at **200 MB**. Files exceeding this limit will
182
192
-[Custom Tools](/custom-tools) — Build your own tools
183
193
-[Provider Overview](/providers-overview) — Configure API keys
|`schedule.tz`| string | IANA timezone for cronexpressions; omit to use the gateway default timezone |
104
+
|`schedule.tz`| string | IANA timezone — applies to **all** schedule kinds (`at`, `every`, `cron`), not just cron expressions. Omit to use the gateway default timezone |
105
105
|`message`| string | Text the agent receives as its input |
106
106
|`stateless`| bool | Run without session history — saves tokens for simple scheduled tasks. Default `false`|
107
107
|`deliver`| bool |`true` = deliver result to a channel; `false` = agent processes silently. Auto-defaults to `true` when the job is created from a real channel (Telegram, etc.) |
@@ -318,4 +318,4 @@ When a session's conversation history exceeds **60% of the context window**, the
318
318
-[Skills](/skills) — inject domain knowledge so scheduled agents are more effective
319
319
-[Sandbox](/sandbox) — isolate code execution during scheduled agent runs
GoClaw tracks the runtime health of each channel instance and provides actionable diagnostics when issues occur. Health state is exposed via the `channels.status` WebSocket method and the dashboard overview page.
106
+
107
+
### Health States
108
+
109
+
| State | Meaning |
110
+
|-------|---------|
111
+
|`registered`| Channel is configured but not yet started |
112
+
|`starting`| Channel is initializing |
113
+
|`healthy`| Running normally |
114
+
|`degraded`| Running with issues |
115
+
|`failed`| Stopped due to an error |
116
+
|`stopped`| Manually stopped |
117
+
118
+
### Failure Classification
119
+
120
+
When a channel fails, GoClaw classifies the error into one of four categories:
121
+
122
+
| Kind | Typical Cause | Remediation |
123
+
|------|---------------|-------------|
124
+
|`auth`| Invalid or expired token/secret | Review credentials or re-authenticate |
|`network`| Timeout, connection refused, DNS failure | Check upstream service reachability and proxy settings |
127
+
|`unknown`| Unrecognized error | Inspect server logs for the full error |
128
+
129
+
Each failure includes a **remediation hint** — a short operator instruction pointing to the specific UI surface (credentials panel, advanced settings, or details page) where the issue can be resolved. The dashboard surfaces these hints directly on channel cards.
130
+
131
+
### Health Tracking
132
+
133
+
The health system tracks failure history per channel:
134
+
-**Consecutive failures** — resets when the channel recovers
135
+
-**Total failure count** — lifetime counter
136
+
-**First/last failure timestamps** — for diagnosing intermittent issues
137
+
-**Last healthy timestamp** — when the channel was last operational
138
+
139
+
---
140
+
102
141
## Implementation Checklist
103
142
104
143
When adding a new channel, implement these methods:
@@ -156,4 +195,4 @@ Channels may enforce per-user rate limits. Configure via channel settings or imp
156
195
-[WebSocket](/channel-websocket) — Direct agent API via WS
-`full` — All status transitions with debouncing and stall detection
229
+
230
+
**Status → Emoji mapping** (use `/reactions` in chat to see this legend):
231
+
232
+
| Status | Emoji | Description |
233
+
|--------|-------|-------------|
234
+
| queued | 👀 | Waiting to process |
235
+
| thinking | 🤔 | Processing your request |
236
+
| tool | ✍ | Executing a tool |
237
+
| coding | 👨💻 | Running code |
238
+
| web | ⚡ | Browsing / API call |
239
+
| done | 👍 | Completed |
240
+
| error | 💔 | Something went wrong |
241
+
| stallSoft | 🥱 | No activity for 10s |
242
+
| stallHard | 😨 | No activity for 30s |
243
+
244
+
Each status has fallback emoji variants in case the primary emoji is restricted by the chat's allowed reactions. Intermediate states (thinking, tool, etc.) are debounced at 700ms to avoid reaction spam.
231
245
232
246
### Bot Commands
233
247
@@ -245,6 +259,7 @@ Commands processed before message enrichment:
245
259
|`/task_detail <id>`| View task | -- |
246
260
|`/subagents`| List all active subagent tasks with status | -- |
247
261
|`/subagent <id>`| Show detailed view of a subagent task from DB | -- |
Copy file name to clipboardExpand all lines: deployment/upgrading.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ A GoClaw upgrade has two parts:
9
9
1.**SQL migrations** — schema changes applied by `golang-migrate` (idempotent, versioned)
10
10
2.**Data hooks** — optional Go-based data transformations that run after schema migrations (e.g. backfilling a new column)
11
11
12
-
The `./goclaw upgrade` command handles both in the correct order. It is safe to run multiple times — it is fully idempotent. The current required schema version is **34**.
12
+
The `./goclaw upgrade` command handles both in the correct order. It is safe to run multiple times — it is fully idempotent. The current required schema version is **35**.
13
13
14
14
```mermaid
15
15
graph LR
@@ -227,6 +227,7 @@ These five migrations are auto-applied on startup when upgrading to v2.x. No man
227
227
| 032 | Creates `secure_cli_user_credentials` for per-user CLI credential injection; adds `contact_type` column to `channel_contacts`|
228
228
| 033 | Cron payload columns | Promotes `stateless`, `deliver`, `deliver_channel`, `deliver_to`, `wake_heartbeat` from `payload` JSONB to dedicated columns on `cron_jobs`|
| 035 |`contact_thread_id`| Adds `thread_id VARCHAR(100)` and `thread_type VARCHAR(20)` to `channel_contacts`; cleans up `sender_id` by stripping `\|username` suffixes; rebuilds unique index as `(tenant_id, channel_type, sender_id, COALESCE(thread_id, ''))`|
230
231
231
232
### Breaking Changes in v2.x
232
233
@@ -279,4 +280,4 @@ Before each upgrade, check the release notes for:
279
280
-[Database Setup](/deploy-database) — PostgreSQL and pgvector setup
280
281
-[Observability](/deploy-observability) — monitor your gateway post-upgrade
@@ -993,6 +995,7 @@ Centralized key-value store for per-tenant system settings. Falls back to master
993
995
| 32 | Creates `secure_cli_user_credentials` for per-user credential injection (mirrors `mcp_user_credentials` pattern); adds `contact_type VARCHAR(20) DEFAULT 'user'` to `channel_contacts`|
994
996
| 33 | Promotes `stateless`, `deliver`, `deliver_channel`, `deliver_to`, `wake_heartbeat` from `payload` JSONB to dedicated columns on `cron_jobs`|
995
997
| 34 |`subagent_tasks` — subagent task persistence for DB-backed task lifecycle tracking, cost attribution, and restart recovery |
998
+
| 35 |`contact_thread_id` — adds `thread_id` and `thread_type` to `channel_contacts`; cleans `sender_id` format; rebuilds unique index to include thread scope |
996
999
997
1000
---
998
1001
@@ -1085,4 +1088,4 @@ Persists subagent task lifecycle for audit trail, cost attribution, and restart
1085
1088
-[Config Reference](/config-reference) — how database config maps to `config.json`
1086
1089
-[Glossary](/glossary) — Session, Compaction, Lane, and other key terms
0 commit comments