Skip to content

feat(widget): serve the canonical @smooai/chat-widget (Aurora Glass), not a copy#113

Merged
brentrager merged 1 commit into
mainfrom
feat-use-aurora-glass-widget
Jun 25, 2026
Merged

feat(widget): serve the canonical @smooai/chat-widget (Aurora Glass), not a copy#113
brentrager merged 1 commit into
mainfrom
feat-use-aurora-glass-widget

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

smooth-operator was serving a parallel copy of the chat widget (bundled from the @smooai/smooth-operator SDK's own typescript/src/widget) instead of consuming the published @smooai/chat-widget — the single canonical public Aurora Glass widget (Aurora Glass redesign + OTP/HITL UI, protocol client inlined).

Change: re-vendor the local-flavor server asset (rust/smooth-operator-server/assets/chat-widget.iife.js) from @smooai/[email protected] dist/chat-widget.global.js, and update the provenance README + refresh recipe. Drop-in — same <smooth-agent-chat> custom element + endpoint/agent-id attributes the local host page already uses, so widget-index.html is unchanged.

Verified: the vendored bundle defines smooth-agent-chat + the SmoothAgentChat global + the send_message protocol; the Rust server builds (it include_str!s the asset).

Follow-up (not in this PR): the @smooai/smooth-operator SDK still ships its own typescript/src/widget copy (the ./widget + ./widget/standalone exports). Retiring that duplicate in favor of @smooai/chat-widget is a separate SDK-surface decision (it can't simply re-export it — @smooai/chat-widget depends on the @smooai/smooth-operator client, so that would be circular; the path is deprecate-then-remove).

🤖 Generated with Claude Code

… not a copy

smooth-operator was serving a PARALLEL copy of the widget (the @smooai/smooth-operator
SDK widget bundle) rather than the published @smooai/chat-widget (Aurora Glass) — the
single canonical public widget (Aurora Glass redesign + OTP/HITL UI). Re-vendor the
local-flavor server asset from @smooai/[email protected] dist/chat-widget.global.js
(protocol client inlined) so the served/embedded widget IS Aurora Glass. Drop-in: same
<smooth-agent-chat> element + endpoint/agent-id attributes; server builds (include_str!),
bundle defines the element + SmoothAgentChat global + send_message protocol.

Follow-up: the @smooai/smooth-operator SDK still ships its own typescript/src/widget
copy (the ./widget export) — retiring that duplicate is a separate SDK-surface change.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01U7Mn93HpqhSgEmX6tRdPAv
@changeset-bot

changeset-bot Bot commented Jun 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: afddacc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/smooth-operator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager brentrager merged commit 86dd6f8 into main Jun 25, 2026
1 check passed
brentrager added a commit that referenced this pull request Jun 25, 2026
The local flavor serves the Aurora Glass widget (the host page at / with the
auth token injected, and the @smooai/chat-widget bundle at /chat-widget.iife.js)
but had NO test — a re-vendor (e.g. #113) can compile via include_str! yet serve
a broken/wrong bundle. Adds tests/widget_serving.rs (tower oneshot, no network):
the bundle is served with the right content-type + the Aurora Glass markers
(<smooth-agent-chat>, SmoothAgentChat global, inlined send_message client); the
host page substitutes the token placeholder + mounts the element; and both
routes are 404 unless the flavor opts in via with_widget (K8s/Lambda never serve
them). 3 tests, all green.


Claude-Session: https://claude.ai/code/session_01U7Mn93HpqhSgEmX6tRdPAv

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
brentrager added a commit that referenced this pull request Jun 25, 2026
…(Aurora Glass) (#116)

The React/Custom-UIs guide steered consumers to the SDK @smooai/smooth-operator/widget
(the in-tree duplicate tracked for retirement under SMOODEV-1845) instead of the
canonical published @smooai/chat-widget (Aurora Glass) — the widget smooth-operator
itself now serves (#113) and the marketing demos embed. Update the recommendation:
the mermaid node, the table row, the install note, and the No-React section now use
@smooai/chat-widget (mountChatWidget + the recommended deferred loader + the eager
IIFE), with a note that the SDK ./widget copy still exists but @smooai/chat-widget
is canonical. Docs-only; does not change the SDK API (independent of the 1845
removal decision).


Claude-Session: https://claude.ai/code/session_01U7Mn93HpqhSgEmX6tRdPAv

Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant