feat(ui): show the current view in the browser tab title #563
Copy link
Copy link
Closed
Description
Request — nice to have
Give each browser tab a concise title reflecting its current CoreScope view. Users with several tabs open should be able to distinguish Live, Channels, a node's Reach view and a node's Analytics view without switching between them.
Evidence in this fork
Code-level assessment of master ff1acc02255b5c6ab852e4cf931f85dbe3043ef9 on 24 October 2026; this is not a browser reproduction.
public/index.html:8supplies the static titleCoreScope.public/app.js:1404and the route parsing that follows select the active view but do not updatedocument.title.- Existing title assignments are branding/customizer updates in
public/customize.jsandpublic/customize-v2.js, not route-aware updates.
The current issue and PR inventories were checked for equivalent work; no dedicated match was found. Recheck current master and competing work before implementation.
Proposed scope
- Use a consistent format such as
Reach · Node label · Instance nameorLive · Instance name; settle the exact wording in the implementation plan. - Preserve the configured/customized instance name. An asynchronous theme or branding load must not erase the current route title, and navigation must not replace instance branding with a hardcoded default.
- Give ordinary routes and supported node/observer subviews useful titles, with a concise fallback for unknown or unavailable routes.
- Reuse already loaded data for optional entity labels; do not issue extra node requests just to construct a title.
- Guard asynchronous title updates by the current route/visit generation. A late node response must never rename the tab after the user has moved elsewhere, including leaving and revisiting the same route.
- Apply labels as text, never HTML. Only use identity/name data already authorized for the current view; a hidden, blacklisted or failed lookup must not leave a stale name in the tab. Do not bypass visibility checks or fetch an identity through another endpoint for the title.
No backend, schema, dependency or new configuration is planned. This is a usability improvement, not an operational blocker.
Acceptance and regression coverage
- Exercise the actual router in a local browser: initial deep link, ordinary route change, node Reach/Analytics subview change, back/forward navigation and unknown-route fallback.
- Check configured instance branding before and after delayed theme/customizer updates.
- With controlled promise ordering, verify late responses from an earlier route/visit cannot overwrite the current title.
- Cover escaped/hostile labels, hidden or unavailable identities and navigation away from an identity page; no stale or unauthorized label remains.
- Assert no additional API request is introduced and title work is bounded per navigation, not per packet/WebSocket event.
- Keep existing SPA lifecycle, deep-link and branding behavior intact and show tests fail on the unchanged route-title behavior before the feature is added.
Source for comparison
Literal provenance only; this is a feature request to adapt, not an existing upstream patch to copy.
Source repository: Kpa-clawbot/CoreScope
Issue number: 2259
Metadata
Metadata
Assignees
Labels
No labels
Activity
dborup commentedon Oct 25, 2026
Fixed by #584 (merged as
2ce06313811ff8dbae0177b863ab7b9ba8cebea8).