diff --git a/muxplex/frontend/app.js b/muxplex/frontend/app.js
index 2a8cf55..e30bceb 100644
--- a/muxplex/frontend/app.js
+++ b/muxplex/frontend/app.js
@@ -501,25 +501,21 @@ function ansi256Color(n) {
function buildTileHTML(session, index, mobile) {
const priority = sessionPriority(session);
const isBell = priority === 'bell';
- const unseen = session.bell && session.bell.unseen_count;
var ds = loadDisplaySettings();
var actIndicator = ds.activityIndicator !== undefined ? ds.activityIndicator : 'both';
let classes = 'session-tile';
+ // Glow (full border + inner glow): applied when actIndicator is 'glow' or 'both'
if (isBell && (actIndicator === 'glow' || actIndicator === 'both')) classes += ' session-tile--bell';
+ // Edge bar only (left border amber, no glow): applied when actIndicator is 'dot' or 'both'
+ if (isBell && (actIndicator === 'dot' || actIndicator === 'both')) classes += ' session-tile--edge-bell';
if (mobile) classes += ` session-tile--tier-${priority}`;
const name = session.name || '';
const escapedName = escapeHtml(name);
const timeStr = formatTimestamp(session.last_activity_at || null);
- // Activity dot — absolute positioned in lower-right corner of tile (no count text)
- let bellDotHtml = '';
- if (unseen && unseen > 0 && (actIndicator === 'dot' || actIndicator === 'both')) {
- bellDotHtml = '';
- }
-
// Device badge — right-aligned in header, separate from name span
// Shown when multiple sources configured AND session has a device name
let badgeHtml = '';
@@ -535,7 +531,6 @@ function buildTileHTML(session, index, mobile) {
const sourceUrlAttr = session.sourceUrl ? ` data-source-url="${escapeHtml(session.sourceUrl)}"` : '';
return (
`` +
- bellDotHtml +
`