Skip to content

Prepare DesktopClaw v0.1.3 release#14

Merged
divbasson merged 1 commit into
mainfrom
codex/release-v0.1.3
Jun 27, 2026
Merged

Prepare DesktopClaw v0.1.3 release#14
divbasson merged 1 commit into
mainfrom
codex/release-v0.1.3

Conversation

@divbasson

Copy link
Copy Markdown
Owner

Summary

  • Adds the DesktopClaw v0.1.3 activity/task indicator, drawer, task history states, and response bubble/readback UX refinements.
  • Refreshes the GitHub Pages website with DesktopClaw branding, actual avatar sprites, and OpenClaw + Hermes positioning.
  • Adds macOS release packaging through GitHub Actions alongside Windows installer/portable builds.
  • Removes a tracked local troubleshooting log snapshot so personal/runtime log data is not carried forward.

Verification

  • npm test
  • npm run lint
  • git diff --cached --check before commit
  • staged current-content secret scan; only expected placeholders/docs/runtime config field names were detected

Release

  • Version bumped to 0.1.3.
  • RELEASE_NOTES.md updated for v0.1.3.

Copilot AI review requested due to automatic review settings June 27, 2026 08:39
@divbasson divbasson merged commit 21a07da into main Jun 27, 2026
8 checks passed
@divbasson divbasson deleted the codex/release-v0.1.3 branch June 27, 2026 08:40

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the DesktopClaw v0.1.3 release by expanding the renderer UX (activity indicator + drawer, improved speech bubble/readback), updating packaging to include macOS artifacts in GitHub Actions, and refreshing release/docs + GitHub Pages content.

Changes:

  • Adds an in-app activity indicator + drawer and refines the speech bubble layout/readback behavior.
  • Adds macOS packaging (DMG/ZIP) to the release workflow alongside Windows artifacts.
  • Updates the GitHub Pages landing page + bumps version/release notes; removes a tracked troubleshooting log snapshot.

Reviewed changes

Copilot reviewed 11 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/renderer/ui_shell.js Adds bubble accessibility attributes, new presentBubble API, and layout syncing via CSS variables.
src/renderer/tts_engine.js Adds duplicate-speak suppression via in-flight promise caching (contains a blocking bug).
src/renderer/styles.css Introduces task indicator/drawer styling and adjusts bubble + session stack layout constraints.
src/renderer/renderer.js Implements RequestManager task history entries + drawer rendering and readback bubble integration.
src/renderer/index.html Adds task indicator button and task drawer container elements.
site/index.html Replaces GitHub Pages content with a new branded landing page + interactive state preview (has an a11y issue).
RELEASE_NOTES.md Updates release notes for v0.1.3 scope (UX, site, packaging).
README.md Updates install/platform notes and documents macOS dist command/artifacts.
package.json Bumps version to 0.1.3; adds dist:mac; adds electron-builder mac target.
package-lock.json Bumps locked package version to 0.1.3.
.github/workflows/release.yml Splits release pipeline into Windows/macOS build jobs + a release job that publishes all artifacts.
build/troubleshooting/desktopclaw-log-snapshot-20260611-192001.txt Removes tracked local log snapshot from the repo.

Comment on lines +40 to +46
this.inFlightText = value;
this.inFlightPromise = speechPromise?.finally?.(() => {
if (this.inFlightPromise === speechPromise) {
this.inFlightPromise = null;
this.inFlightText = '';
}
}) || null;
Comment thread site/index.html
Comment on lines +1111 to +1114
<div class="state-row${i === currentState ? ' active' : ''}"
onclick="applyState(${i}, true)"
role="button"
aria-label="${s.label}: ${s.desc}">

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 752933aa42

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +41 to +42
this.inFlightPromise = speechPromise?.finally?.(() => {
if (this.inFlightPromise === speechPromise) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear completed TTS cache after playback

Because finally() returns a new promise, this.inFlightPromise is assigned to the wrapper promise while speechPromise still refers to the original playback promise, so this comparison is never true when playback settles. After the first successful readback, inFlightText remains set forever; any later response with the same text is treated as already in flight and returns the stale resolved promise without speaking.

Useful? React with 👍 / 👎.

Comment thread src/renderer/renderer.js
Comment on lines 1235 to +1236
const idlePassthrough =
config?.clickThroughWhenIdle && lastState === 'idle' && !composerOpen && !settingsOpen && !historyOpen && !diagnosticsOpen;
config?.clickThroughWhenIdle && lastState === 'idle' && !composerOpen && !settingsOpen && !historyOpen && !diagnosticsOpen && !taskDrawerOpen;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep task indicator clickable in idle pass-through mode

When clickThroughWhenIdle is enabled, this idle pass-through condition ignores the newly added visible #task-indicator. After a task completes and the app returns to idle with the drawer closed, moving over the indicator still calls setIgnoreMouse(true), so clicks pass through to the desktop and the user cannot open the activity history from the indicator.

Useful? React with 👍 / 👎.

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.

2 participants