openclaw/.agents
Ayaan Zaidi 43ed8cee3f
feat(qa): add Convex-backed Discord and Slack E2E skills (#153471)
Related: #153456

## What Problem This Solves

Agents need reusable Discord and Slack E2E workflows with the same Convex-login setup as the Telegram userbot skill, rather than separate secret setup and ad hoc channel probes.

## User Impact

Developer-only: repository skills provide same-lease readiness, reusable YAML flows, native message/file/thread actions, correlated Gateway replies, and explicit evidence/cleanup instructions. Telegram reuses the extracted broker-discovery owner. Curated QA defaults and production channel behavior stay unchanged.

The dedicated Slack QA Driver now has the operator-approved reaction/file read/write scopes and was reinstalled. Its existing pooled token remains valid; no workspace-admin privileges, user-token scopes, or production-app changes were needed. The setup manifest includes those scopes.

## Why This Change Was Made

The skills extend the existing QA Lab transport, Gateway, scenario, and credential-lease owners instead of adding another runner. Opt-in `--doctor` and repeatable `--scenario-file` use Convex CI leases and deterministic `mock-openai` by default, while preserving explicit overrides.

Native-write flows do not retry ambiguous writes. Cleanup retains lease authority through Gateway shutdown, captures final native receipts before temporary state removal, and removes only owned fixtures. Native and cleanup Slack requests have bounded settlement with no write replay. Unanswered Gateway mutations remain explicit uncertainty and preserve runtime evidence instead of disappearing. Discord recording remains active through shutdown; threads are archived rather than deleted when the lease lacks thread-management permission.

Native API receipts are not model-tool or visual proof. Human slash commands, component clicks, modals, ephemeral replies, and rendering retain explicit client-testing requirements. Broader testing capabilities are deferred to follow-up PRs.

## Evidence

- Real Discord full native lifecycle passed on `ea1b053620`: messages/replies/pagination/edit, reaction add/remove, public thread, attachment upload/delete, a fresh correlated SUT reply, continuous recording, and successful owned cleanup.
- Real Slack full native lifecycle passed on `db88f0ac1c`: all five steps passed, including quiet ingress, threaded Gateway reply, stored edit/delete and reaction add/remove verification, and exact file upload/readback. Cleanup reported zero remaining owned messages/files/reactions and zero pending, uncertain, or failed operations.
- Both native runs used real transports, a temporary Gateway, `mock-openai`, and Convex CLI discovery with both broker environment variables unset. Telegram/shared discovery regressions: 30 passed.
- Earlier focused QA set: 301 passed; subsequent affected-consumer set: 298 passed (overlapping, not additive). Extension typecheck, changed-TypeScript type-aware lint, source ratchets, docs checks, and whitespace checks passed during preparation.
- Landing reconciled one pinned main snapshot, `eac221ae78`, preserving both lifecycle guards. After restoring its frozen dependency versions, the merged Gateway lifecycle, Slack ownership/adapter, and scenario deadline suites passed: 4 files, 52 tests. Earlier native artifacts are retained as pre-reconciliation proof, not relabeled as executions of the merge head.
- Repaired-head Slack lifecycle passed on `62ed1326be41`: all five steps, reaction/file readback, final receipt capture, and clean owned teardown. This rerun covers the bounded-request and uncertain-capture repairs, on the reconciled base.
- Both teardown regression controls failed on the pre-repair implementations (missing HTTP deadline; unanswered mutations dropped). The repaired owner/consumer set passed all 73 tests across six files. Targeted type-aware lint, extension typecheck, docs MDX and whitespace checks also passed.
- Hosted CI will not be awaited, per the operator's explicit landing instruction; no full CI success is claimed.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-22 09:03:22 +05:30
..
skills feat(qa): add Convex-backed Discord and Slack E2E skills (#153471) 2026-09-22 09:03:22 +05:30
resume chore: prepare fresh Amp orb lifecycle (#126933) 2026-08-20 19:03:46 -07:00
setup chore: prepare fresh Amp orb lifecycle (#126933) 2026-08-20 19:03:46 -07:00