chore(sync): mirror docs from openclaw/openclaw@5ed1cfc15c
This commit is contained in:
parent
c390425689
commit
490db1e14d
@ -1,15 +1,15 @@
|
||||
{
|
||||
"repository": "openclaw/openclaw",
|
||||
"sha": "8dcc2ff1d2402bb65e7c1b0b3026b68e0951fc08",
|
||||
"sha": "5ed1cfc15c817f0dbb5ca8ee8440e003563645f4",
|
||||
"sources": {
|
||||
"openclaw": {
|
||||
"repository": "openclaw/openclaw",
|
||||
"sha": "8dcc2ff1d2402bb65e7c1b0b3026b68e0951fc08"
|
||||
"sha": "5ed1cfc15c817f0dbb5ca8ee8440e003563645f4"
|
||||
},
|
||||
"clawhub": {
|
||||
"repository": "openclaw/clawhub",
|
||||
"sha": "38c21345906ab1f107a91b33bb86b63667d96643"
|
||||
}
|
||||
},
|
||||
"syncedAt": "2026-05-08T04:37:29.370Z"
|
||||
"syncedAt": "2026-05-08T05:03:00.702Z"
|
||||
}
|
||||
|
||||
@ -16,6 +16,14 @@ This directory owns docs authoring, Mintlify link rules, and docs i18n policy.
|
||||
- For docs, UI copy, and picker lists, order services/providers alphabetically unless the section is explicitly describing runtime order or auto-detection order.
|
||||
- Keep bundled plugin naming consistent with the repo-wide plugin terminology rules in the root `AGENTS.md`.
|
||||
|
||||
## Internal Docs
|
||||
|
||||
- Long-lived private operator docs belong in `~/Projects/manager/docs/`.
|
||||
- Repo-local internal scratch/mirror docs may live under ignored `docs/internal/`.
|
||||
- Never add `docs/internal/**` pages to `docs/docs.json` navigation or link them from public docs.
|
||||
- `scripts/docs-sync-publish.mjs` excludes and prunes `docs/internal/**` from the public `openclaw/docs` publish repo if a page is force-added later.
|
||||
- Internal docs may mention repo paths, private app names, 1Password item names, and runbooks, but never include secret values.
|
||||
|
||||
## Docs i18n
|
||||
|
||||
- Foreign-language docs are not maintained in this repo. The generated publish output lives in the separate `openclaw/docs` repo (often cloned locally as `../openclaw-docs`).
|
||||
|
||||
@ -559,15 +559,17 @@ A green run completes in well under 30 seconds and `slack-qa-report.md` shows bo
|
||||
|
||||
### Convex credential pool
|
||||
|
||||
Telegram, Discord, and Slack lanes can lease credentials from a shared Convex pool instead of reading the env vars above. Pass `--credential-source convex` (or set `OPENCLAW_QA_CREDENTIAL_SOURCE=convex`); QA Lab acquires an exclusive lease, heartbeats it for the duration of the run, and releases it on shutdown. Pool kinds are `"telegram"`, `"discord"`, and `"slack"`.
|
||||
Telegram, Discord, Slack, and WhatsApp lanes can lease credentials from a shared Convex pool instead of reading the env vars above. Pass `--credential-source convex` (or set `OPENCLAW_QA_CREDENTIAL_SOURCE=convex`); QA Lab acquires an exclusive lease, heartbeats it for the duration of the run, and releases it on shutdown. Pool kinds are `"telegram"`, `"discord"`, `"slack"`, and `"whatsapp"`.
|
||||
|
||||
Payload shapes the broker validates on `admin/add`:
|
||||
|
||||
- Telegram (`kind: "telegram"`): `{ groupId: string, driverToken: string, sutToken: string }` - `groupId` must be a numeric chat-id string.
|
||||
- Discord (`kind: "discord"`): `{ guildId: string, channelId: string, driverBotToken: string, sutBotToken: string, sutApplicationId: string }`.
|
||||
- Slack (`kind: "slack"`): `{ channelId: string, driverBotToken: string, sutBotToken: string, sutAppToken: string }` - `channelId` must match `^[A-Z][A-Z0-9]+$` (a Slack id like `Cxxxxxxxxxx`). See [Setting up the Slack workspace](#setting-up-the-slack-workspace) for app and scope provisioning.
|
||||
- WhatsApp (`kind: "whatsapp"`): `{ driverPhoneE164: string, sutPhoneE164: string, driverAuthArchiveBase64: string, sutAuthArchiveBase64: string, groupJid?: string }` - phone numbers must be distinct E.164 strings.
|
||||
|
||||
Operational env vars and the Convex broker endpoint contract live in [Testing → Shared Telegram credentials via Convex](/help/testing#shared-telegram-credentials-via-convex-v1) (the section name predates Discord support; the broker semantics are identical for both kinds).
|
||||
Slack lanes can also use the pool. Slack payload shape checks currently live in the Slack QA runner rather than the broker; use `{ channelId: string, driverBotToken: string, sutBotToken: string, sutAppToken: string }`, with a Slack channel id like `Cxxxxxxxxxx`. See [Setting up the Slack workspace](#setting-up-the-slack-workspace) for app and scope provisioning.
|
||||
|
||||
Operational env vars and the Convex broker endpoint contract live in [Testing → Shared Telegram credentials via Convex](/help/testing#shared-telegram-credentials-via-convex-v1) (the section name predates the multi-channel pool; the lease semantics are shared across kinds).
|
||||
|
||||
## Repo-backed seeds
|
||||
|
||||
|
||||
@ -322,8 +322,9 @@ Live transport lanes share one standard contract so new transports do not drift;
|
||||
### Shared Telegram credentials via Convex (v1)
|
||||
|
||||
When `--credential-source convex` (or `OPENCLAW_QA_CREDENTIAL_SOURCE=convex`) is enabled for
|
||||
`openclaw qa telegram`, QA lab acquires an exclusive lease from a Convex-backed pool, heartbeats
|
||||
that lease while the lane is running, and releases the lease on shutdown.
|
||||
live transport QA, QA lab acquires an exclusive lease from a Convex-backed pool, heartbeats that
|
||||
lease while the lane is running, and releases the lease on shutdown. The section name predates
|
||||
Discord, Slack, and WhatsApp support; the lease contract is shared across kinds.
|
||||
|
||||
Reference Convex project scaffold:
|
||||
|
||||
@ -397,6 +398,16 @@ Payload shape for Telegram kind:
|
||||
- `groupId` must be a numeric Telegram chat id string.
|
||||
- `admin/add` validates this shape for `kind: "telegram"` and rejects malformed payloads.
|
||||
|
||||
Broker-validated multi-channel payloads:
|
||||
|
||||
- Discord: `{ guildId: string, channelId: string, driverBotToken: string, sutBotToken: string, sutApplicationId: string, voiceChannelId?: string }`
|
||||
- WhatsApp: `{ driverPhoneE164: string, sutPhoneE164: string, driverAuthArchiveBase64: string, sutAuthArchiveBase64: string, groupJid?: string }`
|
||||
|
||||
Slack lanes can also lease from the pool, but Slack payload validation currently
|
||||
lives in the Slack QA runner rather than the broker. Use
|
||||
`{ channelId: string, driverBotToken: string, sutBotToken: string, sutAppToken: string }`
|
||||
for Slack rows.
|
||||
|
||||
### Adding a channel to QA
|
||||
|
||||
The architecture and scenario-helper names for new channel adapters live in [QA overview → Adding a channel](/concepts/qa-e2e-automation#adding-a-channel). The minimum bar: implement the transport runner on the shared `qa-lab` host seam, declare `qaRunners` in the plugin manifest, mount as `openclaw qa <runner>`, and author scenarios under `qa/scenarios/`.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user