From f0172754d72d09edb2a10151147801df9cc8af25 Mon Sep 17 00:00:00 2001 From: Duy Nguyen Date: Fri, 27 Mar 2026 17:03:38 +0700 Subject: [PATCH 1/2] feat: add showToolCalls option, add CI release workflow - Add showToolCalls config option (default: false) to hide tool call indicators in the chat conversation by default - Add GitHub Actions release workflow triggered on version tags (v*) that builds, creates GitHub Release with assets, and publishes to NPM --- .github/workflows/release.yml | 61 +++++++++++++++++++++++++++++++++++ README.md | 1 + src/chat-widget.ts | 4 +-- src/types.ts | 2 ++ 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..db40f12 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,61 @@ +name: Release + +on: + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: https://registry.npmjs.org + + - name: Install dependencies + run: npm ci + + - name: Lint + run: npm run lint + + - name: Build + run: npm run build + + - name: Get version from tag + id: version + run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + + - name: Verify package version matches tag + run: | + PKG_VERSION=$(node -p "require('./package.json').version") + if [ "$PKG_VERSION" != "${{ steps.version.outputs.VERSION }}" ]; then + echo "::error::package.json version ($PKG_VERSION) does not match tag (${{ steps.version.outputs.VERSION }})" + exit 1 + fi + + - name: Package dist artifacts + run: | + cd dist + tar -czf ../goclaw-webchat-${{ steps.version.outputs.VERSION }}.tar.gz . + cd .. + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true + files: | + goclaw-webchat-${{ steps.version.outputs.VERSION }}.tar.gz + dist/goclaw-webchat.umd.js + dist/goclaw-webchat.es.js + + - name: Publish to NPM + run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/README.md b/README.md index 27e5e8c..606fe5c 100644 --- a/README.md +++ b/README.md @@ -230,6 +230,7 @@ For production deployment with nginx reverse proxy, see `examples/docker-compose | `customCss` | `string` | — | Extra CSS for Shadow DOM | | `reconnect` | `boolean` | `true` | Auto-reconnect on disconnect | | `maxReconnectAttempts` | `number` | `10` | Max reconnection attempts | +| `showToolCalls` | `boolean` | `false` | Show tool call indicators in chat | | `zIndex` | `number` | `999999` | CSS z-index | ## Proxy Server Configuration diff --git a/src/chat-widget.ts b/src/chat-widget.ts index bb16360..8967f06 100644 --- a/src/chat-widget.ts +++ b/src/chat-widget.ts @@ -347,8 +347,8 @@ export class ChatWidget implements GoClawWidget { contentEl.innerHTML = renderMarkdown(msg.content); } - // Update tool call indicators - if (msg.toolCalls?.length) { + // Update tool call indicators (only if showToolCalls is enabled) + if (this.config.showToolCalls && msg.toolCalls?.length) { let toolContainer = el.querySelector('.gc-msg-tools'); if (!toolContainer) { toolContainer = document.createElement('div'); diff --git a/src/types.ts b/src/types.ts index 304f357..98575f9 100644 --- a/src/types.ts +++ b/src/types.ts @@ -40,6 +40,8 @@ export interface GoClawConfig { container?: HTMLElement; /** Z-index for the widget (default: 999999) */ zIndex?: number; + /** Show tool call indicators in chat (default: false) */ + showToolCalls?: boolean; /** Locale for i18n (default: 'en') */ locale?: string; /** Callback hooks */ From 99368fbcf7a1e699f19b5dabe303ee734ad980d4 Mon Sep 17 00:00:00 2001 From: Duy Nguyen Date: Fri, 27 Mar 2026 17:22:31 +0700 Subject: [PATCH 2/2] fix: document that onMessage still receives tool calls when showToolCalls is false --- src/types.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/types.ts b/src/types.ts index 98575f9..7a83da0 100644 --- a/src/types.ts +++ b/src/types.ts @@ -40,7 +40,8 @@ export interface GoClawConfig { container?: HTMLElement; /** Z-index for the widget (default: 999999) */ zIndex?: number; - /** Show tool call indicators in chat (default: false) */ + /** Show tool call indicators in chat UI (default: false). + * Tool call data is still available via onMessage callback regardless of this setting. */ showToolCalls?: boolean; /** Locale for i18n (default: 'en') */ locale?: string;