Group resources by type; use consistent action icons in the preview window
Custom-menu review passed · Installed-App acceptance recorded separatelyThe right-hand Resources panel groups entries by type and preserves existing row buttons; the preview window provides Open, More and Close preview actions.
For UI design review. Scope includes groups, resource entries, preview actions and state restoration. The prototype uses sample data and does not connect to real pages, virtual machines or sessions.
Web pages, virtual machines, terminals…
Group titles come from resource types. Session names and page titles no longer serve as categories.
Baidu: search and find out
Specific content appears only in resource-entry, preview-window and full-view titles.
Open, hide and close have distinct meanings
Hiding affects only the preview. Closing a page or terminating an environment is a separate resource operation.
Interactive prototype
Click right-hand type headings to collapse groups; click resources to open previews; after clicking the preview's top-right X, reopen it through the original right-hand preview button. Right-hand button positions, icons and behavior remain unchanged.
The resource remains in the right-hand list
When enabled, the preview follows the Agent's page changes; when disabled, it keeps the current page. This changes displayed content only, not Agent execution.
Web-page and virtual-machine examples share a title bar but use different internal views. Actual terminal and application presentation remains governed by existing capabilities; this prototype does not establish that those capabilities are connected to previews.
Stable types, changing content names
Right-hand top-level groups
| Display name | Classification basis |
|---|---|
| Web pages | web; browser sources map here for compatibility |
| Virtual machines | vm; declared by the actual integration |
| Desktops | desktop |
| Terminals | terminal |
| Applications | application |
| Containers | docker and other registered container types |
| Remote environments | remote |
| Other resources | Unmapped types; details preserve original type and source |
Entry names and supporting information
Use the actual resource name as the primary title, such as Baidu: search and find out or Ubuntu development environment. Page-title changes update the entry without changing its group.
The subtitle displays states such as Operating, Running or Connection failed and, when needed, the owning Agent. Preserve source, branch and connection information without an extra session-title grouping level.
External is a source, not a separate type. External VMs remain under Virtual machines and external pages under Web pages. Only truly unrecognized objects use Other resources.
Remove closed or exited resources from the active list; existing history capabilities may expose them through details. Retain resources with uncertain status under their original type and show an error rather than treating them as closed. Persist collapse state by session and type.
Keep preview actions explicit
| Location / action | Visible change | Resource itself |
|---|---|---|
| Entry / Open | Display the resource within the session; repeated clicks keep it open | Reuse the same instance without recreation |
| Preview / Close preview (X) | Preview disappears; resource entry remains | Page still exists; environment keeps running |
| Existing right-hand buttons | Keep Preview, Open in tab and Close page; do not replace them with an open/hide toggle | Retain existing behavior; Close page closes the resource, unlike preview X |
| Preview / Open | Switch to the same resource's full view; web pages use existing top tabs | No duplicate instance; hide this action when no full-view capability exists |
| More / Automatically show the page the Agent is operating | When enabled, show the page being operated in this session; when disabled, keep the current page | Do not change Agent targets or start/pause tasks |
| Existing resource action / Close page or terminate environment | Use an explicit action naming the object in a text menu, distinct from the title-bar X that only closes the preview | Show only supported actions; environment termination retains existing confirmation and permission rules |
Title bar
The page badge associated with the input area shows only the page name, omitting Left / Right / Center position text; hover still explains Agent access.
Resource name + Open icon + More icon + Close preview icon (X). Remove pin and expand/shrink buttons. Retain dragging and edge resizing and compatibility with saved dimensions.
In narrow windows, truncate the title first and retain every action icon. Open uses an outward arrow, More uses dots and Close preview uses X; all have hover hints and accessible names.
More menu
Use the application's own overlay menu. The automatic-display option has an explicit checkbox, wrapping title and separate description below. Keep the description visible rather than putting it in a single-line menu title or tooltip. Desktop uses the existing HTML menu overlay over native pages; Web uses the same content and styling. Display operations use checkboxes; action history retains a submenu. Toggling keeps the menu open and updates checks immediately for consecutive adjustments. Escape, outside click, clicking More again or closing the preview dismisses it. If automatic preview is enabled with no Agent-operated page, retain the current page; automatic page switches also keep the menu open.
Web pages retain Automatically show the page the Agent is operating; action records and display-action markers move to More. VMs, terminals and applications show only actually supported features.
Persist type collapse, resource-panel hiding and preview hiding independently: collapsing a type hides list rows only; hiding the right panel does not automatically hide the preview.
State transitions and boundaries
Manually selecting a page enters keep-current-page mode. Existing right-hand buttons remain unchanged.
Retain resource selection and display mode. Later Agent activity must not reopen it automatically.
Select only pages allowed in the current session, without replacing a VM or terminal being viewed.
- At most one preview per session. Switching resources replaces its view; switching sessions hides the old session's preview and restores the new session's own selection and visibility.
- When manually viewing a non-page resource, page following must not replace it. Reopening a web page applies the session's saved display policy; explicitly selecting a page keeps that page.
- Without preview capability, open existing details rather than showing a fake preview or connected state. Unknown capability, connecting and failed connection have explicit states.
- Resource identity, session ownership and access rights do not change with grouping or view switches. Open for pages still follows existing top-tab discoverability rules.
- Temporary loading failure retains known types and entries and displays refresh failure. Do not rename, auto-select another resource or retry a close operation with an unknown outcome.
Implementation order and acceptance
| Step | Change location | Acceptance condition |
|---|---|---|
| 1. Type grouping | groupSessionResources and resource-panel title mapping | Pages and VMs form separate groups; session/page renaming does not change groups; same-type resources across branches remain in one type group |
| 2. Hide and menu | WebTabPip, preview menu and bilingual labels; retain right-hand row buttons | Preview X hides the view; the right-hand Preview button reopens it; row-button behavior is unchanged; no pin/expand buttons; menu follow semantics agree |
| 3. Resource-specific presentation | Existing Terminal / Application views and provider capabilities | Shared display/hide semantics; no new VM-control backend; unsupported preview falls back to details |
| 4. State and installed-App verification | Existing resource store, session selection and persistent state | Session isolation, no auto-reopening after hiding, refresh restoration and an unobstructed Hide button at minimum width |
Settle interactions here first, then change production code, update existing canonical designs, run independent reviews and tests, and finally verify the default App. Refresh the default App after implementation and verify real resource buttons and previews.
Desktop menus use the existing native-menu service. Main-process IPC and control overlays share one service instance; module exports and caller references must agree. Acceptance covers authorized-window popup, selection return and cancellation cleanup.
Current implementation basis and remaining work
The grouping function creates stable categories by resource type; the panel owns bilingual type labels and per-session collapse state. Preview X only hides the preview; automatic display reuses manual/follow state. Existing expanded dimensions remain compatible, while the title bar no longer offers an expand button.
- session-resources.ts: grouping, resource types and preview preferences.
- session-resources-panel.tsx: group headings and row actions.
- web-tab-pip.tsx: title bar, pinning, expanding and hiding.
- Existing resource design andBrowser-control design: existing capabilities and permission boundaries. Source links point to repository entries; judgments use source read locally for this task.
Type grouping, preview icons and the application custom menu have changed; related tests and independent specification/quality reviews passed. Automatic display uses an explicit checkbox and separate description; desktop overlays cover native pages, and Web reuses the same content layout. Full checks and default-App acceptance are recorded in task evidence; the VM example does not represent a new VM-control backend.
Page checks: script syntax, DOM interaction and internal anchors passed; built-in browser policy rejected local HTML, so desktop and narrow-screen visual acceptance remain incomplete. Final task evidence determines site build and link-check status.