Skip to main content

connect-widget

Operates the embeddable Connect widget iframe, client-side session UX, parent-child postMessage, OAuth popup recovery, theme updates, connection creation, folder selection, and sync progress handling.

Jump to install

Source facts

Repository
VectorSpaceLab/AREX-Skill
Last source activity
August 26, 2026 at 16:31
Detected SKILL.md language
English
Stars
12
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
connect-widget
description
Operates the embeddable Connect widget iframe, client-side session UX, parent-child postMessage, OAuth popup recovery, theme updates, connection creation, folder selection, and sync progress handling.
disable-model-invocation
true
metadata
{"disco-role":"operating"}
license
MIT
# Connect Widget Use this sub-skill when an Airweave task touches the embeddable Connect widget itself: iframe mount and shutdown, session token request and validation, parent-child messaging, live theme updates, OAuth popup recovery, connection creation, folder selection, or sync progress rendering. Do not use this sub-skill for backend endpoint lifecycle, dashboard UI, MCP transport, or Monke orchestration. For route and schema details, cross-link to [backend-api](../backend-api/SKILL.md). For dashboard-hosted launch flows around the widget, cross-link to [frontend-dashboard](../frontend-dashboard/SKILL.md). ## Route to the right reference - Read [references/widget-overview.md](references/widget-overview.md) for the widget lifecycle, state machine, and module responsibility map. - Read [references/messaging-contract.md](references/messaging-contract.md) for `CONNECT_READY`, token exchange, trusted-origin behavior, `NAVIGATE`, `SET_THEME`, `STATUS_CHANGE`, `CONNECTION_CREATED`, and `CLOSE`. - Read [references/oauth-and-modes.md](references/oauth-and-modes.md) for session modes, source creation, OAuth popup and callback recovery, folder selection, reauth handling, and sync progress behavior. - Read [references/troubleshooting.md](references/troubleshooting.md) when the widget stalls, the parent origin is rejected, tokens time out, OAuth popups are blocked, callbacks fail, or sync state stops updating. ## Operating rules 1. Treat the widget as a child iframe app. It should announce readiness, wait for a parent session token, validate that token, and then switch into a valid or error state. 2. Lock the parent origin after the first token response or token error. Later messages from a different origin are unsafe and should be ignored. 3. Apply theme updates immediately. Initial theme can come from the iframe URL, token response, or later `SET_THEME` messages, and the widget should keep rendering with the latest theme. 4. Honor session mode. `all` and `connect` can launch new connections; `manage` and `reauth` focus on existing connections and reauth flows. 5. Preserve OAuth claim-token recovery. Do not discard the claim token until verification succeeds, and surface popup-blocked or callback-loss cases as recoverable errors. 6. Keep folder selection client-side until completion. If the user backs out of a freshly created connection, clean up the connection instead of leaving it stranded. 7. Treat SSE sync progress as authoritative while a sync is active. Handle reconnecting, terminal success, and terminal failure separately from the connection list summary. ## Quick decision map | User intent | Start here | Notes | | --- | --- | --- | | "How does the iframe handshake work?" | `messaging-contract.md` | Covers `CONNECT_READY` → token exchange → status updates. | | "Why did OAuth fail or reopen?" | `oauth-and-modes.md` | Covers popup-blocked recovery, callback posting, and claim-token verification. | | "How does folder selection behave?" | `oauth-and-modes.md` | Covers the selection step and back-out cleanup. | | "Why is sync progress missing or stale?" | `oauth-and-modes.md` and `troubleshooting.md` | Covers SSE subscription, reconnecting, and terminal progress states. | | "Why does the widget close or show an error?" | `troubleshooting.md` | Covers origin mismatch, timeouts, session mismatch, and unsupported launch states. | ## Validation anchors Later verification should prioritize the native widget tests and unit anchors: - `connect/tests/e2e/session.spec.ts` - `connect/tests/e2e/widget.spec.ts` - `connect/tests/e2e/sdk.spec.ts` - `connect/src/components/SyncProgressIndicator.test.tsx` - `connect/src/hooks/useSyncProgress.test.ts`
View on GitHub