Adds <x-extension id="chats-header-controls"> to the chats list
section-header-row, enabling plugins to inject controls (sort toggles,
view switches) into the chats header area.
This follows the established x-extension pattern used throughout the
sidebar (sidebar-chats-list-start, sidebar-chats-list-end, etc.) and
aligns with the plugin extension architecture introduced in PR #998.
Adds sidebar-chat-item-start and sidebar-chat-item-end x-extension
points inside the x-for loop in chats-list.html.
Previously only sidebar-chats-list-start/end existed, both outside
the x-for loop. This forced plugins that need per-chat-row UI (e.g.
status indicators, labels, badges) to resort to MutationObserver +
index-based DOM scanning and monkey-patching internal store methods.
With these new extension points, plugins can inject content into
each chat row with access to the reactive Alpine context object
(context.id, context.name, context.running, context.project, etc.)
entirely through declarative Alpine bindings — no DOM scanning,
no method patching, no index arithmetic.
- Introduced new extension points in various chat components: `chat-input`, `chat-top`, and `chat-bar`.
- Added extension points for sidebar components: `sidebar-start`, `sidebar-end`, and others.
- Updated modal structure with extension points for better integration.
- Updated documentation in README.md to reflect current sidebar, input, chat, welcome, and modal surfaces.
- Added tests for web UI extension surfaces to ensure proper integration and functionality.
- Simplified task detail opening logic by integrating it into the `settingsModalStore`
- Updated the visibility condition for the task detail view in `scheduler-task-detail.html` to rely solely on the selected task state
rm attributes from components
simplify task display logic
settings components init
scheduler componentize
- Removed the inline scheduler settings script from `index.html` and replaced it with a new component structure in `scheduler-settings.html`, `scheduler-task-editor.html`, `scheduler-task-list.html`, and `scheduler-task-detail.html`.
- Introduced a dedicated `scheduler-store.js` to manage state and logic for the scheduler, enhancing maintainability and separation of concerns.
- Updated the `index.js` to remove the now obsolete `openTaskDetail` function, integrating task detail handling within the new store.
- Removed the deprecated `scheduler.js` file, consolidating functionality into the new component architecture.
settings modal store rename
- Replaced all instances of `$store.settingsModalStore` with `$store.settingsStore` across various settings components.
scheduler tab content x-if
- Replaces usage of globalThis for chat, task and welcome screen actions with direct imports as per our conventions
- Also updates two CSS variables in the welcome screen for correct blue accent color for icons and border color for dashboard cards
- unwrapped chat/tasks list from removed lists-wrapper div
- made chat/tasks list scrollable while mantaining the title sticky
- when you are at the bottom of the chat list and you create a new chat, the list now scroll up to top thx to the new scrollChatsToTop helper