Skip to content

Update the work UI#3

Open
forgrabbit wants to merge 1 commit intothuasta:mainfrom
forgrabbit:main
Open

Update the work UI#3
forgrabbit wants to merge 1 commit intothuasta:mainfrom
forgrabbit:main

Conversation

@forgrabbit
Copy link
Collaborator

image

Copilot AI review requested due to automatic review settings March 24, 2026 14:13
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the “Work” (chat/command stream) UI to improve the layout on mobile/desktop, streamline the composer controls, and adjust supporting server/store behavior and tests.

Changes:

  • Revamps the embedded HTML/CSS/JS for the Work view: mobile slide-in sidebar, new action placement, infinite-scroll-ish chat history rendering, and a single voice toggle button.
  • Hardens HTTP server lifecycle handling by ensuring the app is set before binding and guarding background task shutdown calls.
  • Updates tests and package metadata artifacts to match the new UI markup and distribution info.

Reviewed changes

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

Show a summary per file
File Description
tests/test_app.py Updates HTML string assertions for new Work layout IDs and removes an assertion tied to the deleted newline button.
clawdone/web.py Initializes app earlier and guards background task cleanup during shutdown/server close.
clawdone/store.py Renames unlocked todo listing helper to _list_todos_unlocked and keeps the locked public list_todos wrapper.
clawdone/html.py Implements the updated Work UI structure, styling, mobile sidebar behavior, chat feed rendering changes, and voice/textarea UX updates.
clawdone.egg-info/SOURCES.txt Adds LICENSE and newly included modules to source manifest.
clawdone.egg-info/PKG-INFO Updates license metadata and replaces/refreshes the long description content.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<button class="primary" id="startVoice">Start voice</button>
<button class="secondary" id="stopVoice">Stop voice</button>
<div class="composer-shell">
<textarea id="command" class="chat-input" placeholder="Message the current thread…"></textarea>
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

The updated composer removes the explicit label for the command textarea. Relying on placeholder text alone hurts accessibility (screen readers) and can reduce usability when the field has content. Consider restoring a (it can be visually hidden) or adding an appropriate aria-label/aria-labelledby on the textarea.

Suggested change
<textarea id="command" class="chat-input" placeholder="Message the current thread…"></textarea>
<textarea id="command" class="chat-input" placeholder="Message the current thread…" aria-label="Message the current thread"></textarea>

Copilot uses AI. Check for mistakes.
Comment on lines +3721 to +3724
const limit = Math.max(
CHAT_HISTORY_FETCH_LIMIT,
uiSettings.historyPageSize * Math.max(uiState.historyPage, 1),
uiSettings.historyPageSize
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

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

CHAT_HISTORY_FETCH_LIMIT is used with Math.max(...), which makes it a minimum fetch size rather than a limit. This will always request at least 500 history items, potentially increasing payload size and slowing the UI on mobile. Either rename the constant to reflect it’s a minimum, or change the calculation to cap the requested limit (e.g., use a min/cap strategy based on what the chat view actually needs).

Suggested change
const limit = Math.max(
CHAT_HISTORY_FETCH_LIMIT,
uiSettings.historyPageSize * Math.max(uiState.historyPage, 1),
uiSettings.historyPageSize
const desired = uiSettings.historyPageSize * Math.max(uiState.historyPage, 1);
const limit = Math.min(
CHAT_HISTORY_FETCH_LIMIT,
Math.max(desired, uiSettings.historyPageSize)

Copilot uses AI. Check for mistakes.
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