Repository navigation
Conversation
- Tool event cards now show only the tool name by default; clicking expands to reveal call arguments and result output, with a scroll area for long content. Tool events are driven by langchain callbacks (on_tool_start/on_tool_end/on_tool_error) and handed off to the GUI thread via queued signals. - Add a shared AIRadioConfigView: a subtle footer in the AI chat sidebar playlist and the playlist overlay that expands inline to show the active radio's preferences, avoidances and feedback notes. - Add Copilot.add_callback() to register extra agent callbacks, plus i18n keys and tests.
cosven
commented
Sep 1, 2026
| self._shadow_width = 15 | ||
| self._view_options = dict(row_height=60, no_scroll_v=False) | ||
| self._player_playlist_view = PlayerPlaylistView(self._app, **self._view_options) | ||
| self._ai_radio_config = AIRadioConfigView(self._app, self) |
Member
Author
There was a problem hiding this comment.
_ai_radio_config 换个名字 _ai_radio_config_view
| def add_callback(self, callback): | ||
| self._extra_callbacks.append(callback) | ||
|
|
||
| def _fire_tool_start(self, name, inputs=None): |
- Rename _ai_radio_config to _ai_radio_config_view in PlaylistOverlay. - Remove the _fire_tool_start test helper and the tool-event assertions that depended on it.
- Remove test_ai_chat_body_and_sidebar_use_distinct_background_roles and the six pre-existing failing tests that referenced removed titlebar, header and AI radio status code. - Drop now-unused imports (QEvent, MidHeader, sys, AIChatOverlay, TextButton, ChatSendButton). - Fix flake8 by removing leftover unused imports in ai_chat.py.
- library_search no longer creates a search_result artifact or returns artifact_id; search result songs are cached directly so they can still be played by URI. - Remove add_search_result/add_search_result_artifact, the result field on CopilotArtifact, and related prompt text and tests. - Wrap over-long prompt lines to satisfy flake8.
PyQt6 requires flags() to return QFlags<Qt.ItemFlag>; returning a plain int for invalid indexes raises TypeError in the C++ view layer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
on_tool_start/on_tool_end/on_tool_error) and are handed off to the GUI thread via queued signals, so display is safe even though tool execution happens on a worker thread.AIRadioConfigView— a subtle footer at the bottom of the playlist — appears when an AI radio session is active. Clicking it expands an inline label showing the current preferences, avoidances and recent feedback notes. Added to both the AI chat sidebar playlist and the main playlist overlay.Copilot.add_callback()API to register extra agent callbacks.Testing
47 passed, 6 pre-existing failures unrelated to this PR).