feat(agentic,web-ui): user steering with pending queue and agent runtime refactor#610
Merged
bobleer merged 1 commit intoGCWing:mainfrom May 8, 2026
Conversation
…ime refactor Backend changes: - Remove orphan ModelRound struct and model_round.rs module; the actual round lifecycle is fully tracked through execution engine state - Simplify DialogTurn / DialogTurnState — only TurnStats and new_turn_id helper survive; on-disk shape lives in SessionState as before - Refactor execution engine, round_executor, and stream_processor to align with the simplified runtime model - Add user-steering support in coordinator and scheduler: mid-turn messages from the user can be injected without aborting the current round - Improve agentic tool pipeline (pipeline/tool_pipeline.rs, types.rs), deep-review policy, and review specialist agents - Anthropic stream handler and tool-call accumulator hardening - MCP server manager reconnect and interaction improvements - Snapshot service dedup / reference-safety fixes - Various service cleanups: session manager, persistence, side_question, project context, search, workspace Frontend changes: - Add PendingQueuePanel: shows queued user messages above the chat input; supports inline edit, "send now" mid-turn steering, and delete - Add UserSteeringBubble: renders a user-steering flow item as a normal user bubble inside the active model round - Add PendingQueueModule: manages per-session pending message queue state - Add modelRoundItemGrouping: groups consecutive flow items by model round for virtualised rendering - Update FlowChatManager, EventHandlerModule, TextChunkModule, and MessageModule to handle steering events and pending queue lifecycle - Update modernFlowChatStore and FlowChatContext for new item types - Update AgentAPI with steering / queue endpoints - Update flow-chat types with FlowUserSteeringItem - Update AgentCompanionDesktopPet click-through and pixel-pet UI - Update ChatInput / ChatInputPixelPet for queue-aware send behaviour - Theme minor colour fixes across all presets - i18n: add pending-queue and steering keys for en-US, zh-CN, zh-TW; remove stale error keys - Remove deprecated SessionConfig option and related locale keys
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
PendingQueuePanelabove the chat input shows queued messages; each card supports inline edit, immediate "send now" injection, and delete. The backend coordinator/scheduler handles steering injection without aborting the active round.ModelRoundstruct andmodel_round.rsmodule (lifecycle was already fully tracked by the execution engine). SimplifiedDialogTurn— onlyTurnStatsand thenew_turn_idhelper remain; the on-disk session shape is unchanged.UserSteeringBubblerenders steering messages as normal user bubbles inside the active model round;modelRoundItemGroupinggroups flow items by model round for efficient virtualised rendering;PendingQueueModulemanages client-side queue state.Changed files (129 total)
src/crates/core/src/agentic/src/crates/ai-adapters/src/crates/core/src/service/src/apps/desktop/src/api/src/web-ui/src/flow_chat/src/web-ui/src/infrastructure/src/web-ui/src/locales/Test plan
pnpm run lint:web && pnpm run type-check:web && pnpm --dir src/web-ui run test:runcargo check --workspace && cargo test --workspace