Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Unreleased

- Stop hidden typing indicators from animating so idle channels and DMs avoid continuous redraws. Thanks @isaiahknight-va.
- Limit the unread bar’s dot to three pulses, keeping the unread cue visible without continuous repainting. Thanks @isaiahknight-va.

- Keep sidebar creation and collapse controls reachable with long workspace or account names by constraining the grid column. Thanks @isaiahknight-va and @NOLXII for the report.

- Prevent a slow browser push endpoint from occupying every delivery worker, while keeping one shared limit of 1,024 pending alerts and normal success bookkeeping. Thanks @SebTardif.
Expand Down
8 changes: 4 additions & 4 deletions apps/api/internal/webassets/dist/200.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,16 @@
<link href="/_app/immutable/chunks/DY4e0N_F.js" rel="modulepreload">
<link href="/_app/immutable/chunks/DK3Fl9T5.js" rel="modulepreload">
<link href="/_app/immutable/chunks/Dt-HX3Vu.js" rel="modulepreload">
<link href="/_app/immutable/entry/app.CvWfLEzc.js" rel="modulepreload">
<link href="/_app/immutable/entry/app.CWgw4AWv.js" rel="modulepreload">
<link href="/_app/immutable/chunks/uBIymjUX.js" rel="modulepreload">
<link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
<link href="/_app/immutable/nodes/0.BKUAAMnI.js" rel="modulepreload">
<link href="/_app/immutable/nodes/0.Dt0fe6jI.js" rel="modulepreload">
<link href="/_app/immutable/chunks/B9ATwI7Y.js" rel="modulepreload">
<link href="/_app/immutable/chunks/Bxmmhl06.js" rel="modulepreload">
<link href="/_app/immutable/chunks/Dqjw8vaP.js" rel="modulepreload">
<link href="/_app/immutable/chunks/DEPNME54.js" rel="modulepreload">

<link href="/_app/immutable/assets/0.D8noWN1z.css" rel="stylesheet">
<link href="/_app/immutable/assets/0.BbpWhj-s.css" rel="stylesheet">
</head>
<body>
<div>
Expand All @@ -133,7 +133,7 @@

Promise.all([
import("/_app/immutable/entry/start.C5Qg5koL.js"),
import("/_app/immutable/entry/app.CvWfLEzc.js")
import("/_app/immutable/entry/app.CWgw4AWv.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
Expand Down

Large diffs are not rendered by default.

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions apps/api/internal/webassets/dist/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,18 +110,18 @@
<link href="./_app/immutable/chunks/DY4e0N_F.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DK3Fl9T5.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Dt-HX3Vu.js" rel="modulepreload">
<link href="./_app/immutable/entry/app.CvWfLEzc.js" rel="modulepreload">
<link href="./_app/immutable/entry/app.CWgw4AWv.js" rel="modulepreload">
<link href="./_app/immutable/chunks/uBIymjUX.js" rel="modulepreload">
<link href="./_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
<link href="./_app/immutable/nodes/0.BKUAAMnI.js" rel="modulepreload">
<link href="./_app/immutable/nodes/0.Dt0fe6jI.js" rel="modulepreload">
<link href="./_app/immutable/chunks/B9ATwI7Y.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Bxmmhl06.js" rel="modulepreload">
<link href="./_app/immutable/chunks/Dqjw8vaP.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DEPNME54.js" rel="modulepreload">
<link href="./_app/immutable/nodes/3.DP84eeqv.js" rel="modulepreload">
<link href="./_app/immutable/chunks/DMQ3x2g7.js" rel="modulepreload">

<link href="./_app/immutable/assets/0.D8noWN1z.css" rel="stylesheet">
<link href="./_app/immutable/assets/0.BbpWhj-s.css" rel="stylesheet">
<link href="./_app/immutable/assets/ProductSite.BGg6Zt1K.css" rel="stylesheet">
</head>
<body>
Expand All @@ -136,7 +136,7 @@

Promise.all([
import("./_app/immutable/entry/start.C5Qg5koL.js"),
import("./_app/immutable/entry/app.CvWfLEzc.js")
import("./_app/immutable/entry/app.CWgw4AWv.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
Expand Down
7 changes: 6 additions & 1 deletion apps/web/src/styles/messages.css
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@
border-radius: 50%;
background: var(--accent);
box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);
animation: unread-bar-pulse 1.8s ease-out infinite;
animation: unread-bar-pulse 1.8s ease-out 3;
}

@keyframes unread-bar-pulse {
Expand Down Expand Up @@ -423,6 +423,11 @@
animation: typing-dot 1.1s ease-in-out infinite;
}

/* The indicator stays mounted while hidden; idle dots would still render every frame. */
.typing-indicator:not(.visible) .typing-indicator__dots i {
animation: none;
}

.typing-indicator__dots i:nth-child(2) {
animation-delay: 0.15s;
}
Expand Down
5 changes: 5 additions & 0 deletions docs/features/messages.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ Loading older history preserves the visible message's position, including when
adjacent messages are grouped by author. The full app and embedded channel view
share this behavior.

While reading older history, the unread jump bar pulses three times when it
appears, then rests while keeping the unread count visible. Typing dots animate
only while someone is typing or an agent is responding; idle conversations keep
the reserved status area without an ongoing dot animation.

The web message menu exposes **Copy link** for channel roots. It builds the
absolute URL from the configured public frontend origin and the canonical
`/app/{workspace_route_id}/{message_route_id}` path. If clipboard access is
Expand Down
Loading
Loading