mirror of
https://github.com/coder/coder.git
synced 2026-06-06 22:48:19 +00:00
70d6efa311
Depends on #24642 Adds per-owner digest notifications onto the chat auto-archive subsystem. Each tick's archived rows are grouped by owner, the top 25 titles per owner are rendered into a new `Chats Auto-Archived` notification template, and any remainder surfaces as `and N more`. Each digest is per-tick, so users with large amounts of purgeable data may get multiple notifications in sequence (one per user per tick). The template body branches on `retention_days`: when retention is disabled (`retention_days=0`), users are told archived chats are kept indefinitely rather than falsely claiming imminent deletion. ### Changes - migration `000XXX_chat_auto_archive_notification_template` adds new notification template - `dbpurge`: threads `notifications.Enqueuer` through `New`; and enqueues notification message. - `cli/server.go`: passes `options.NotificationsEnqueuer` into `dbpurge.New`. - `coderd/notifications/events.go`: new `TemplateChatAutoArchiveDigest` UUID. - `coderd/inboxnotifications.go`: inbox registration. - Docs: adds a `Notifications` section to `chat-auto-archive.md`. > 🤖
97 lines
3.6 KiB
Plaintext
97 lines
3.6 KiB
Plaintext
From: system@coder.com
|
|
To: bobby@coder.com
|
|
Subject: Chats auto-archived after 90 days of inactivity
|
|
Message-Id: 02ee4935-73be-4fa1-a290-ff9999026b13@blush-whale-48
|
|
Date: Fri, 11 Oct 2024 09:03:06 +0000
|
|
Content-Type: multipart/alternative; boundary=bbe61b741255b6098bb6b3c1f41b885773df633cb18d2a3002b68e4bc9c4
|
|
MIME-Version: 1.0
|
|
|
|
--bbe61b741255b6098bb6b3c1f41b885773df633cb18d2a3002b68e4bc9c4
|
|
Content-Transfer-Encoding: quoted-printable
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
Hi Bobby,
|
|
|
|
The following chats were automatically archived:
|
|
|
|
"Onboarding kickoff" (last active 3 months ago)
|
|
"Quarterly planning draft" (last active 4 months ago)
|
|
|
|
...and 6 more.
|
|
|
|
You can restore any of them from the Agents page within 30 days, after whic=
|
|
h they will be permanently deleted.
|
|
|
|
|
|
View chats: http://test.com/agents?archived=3Darchived
|
|
|
|
--bbe61b741255b6098bb6b3c1f41b885773df633cb18d2a3002b68e4bc9c4
|
|
Content-Transfer-Encoding: quoted-printable
|
|
Content-Type: text/html; charset=UTF-8
|
|
|
|
<!doctype html>
|
|
<html lang=3D"en">
|
|
<head>
|
|
<meta charset=3D"UTF-8" />
|
|
<meta name=3D"viewport" content=3D"width=3Ddevice-width, initial-scale=
|
|
=3D1.0" />
|
|
<title>Chats auto-archived after 90 days of inactivity</title>
|
|
</head>
|
|
<body style=3D"margin: 0; padding: 0; font-family: -apple-system, system-=
|
|
ui, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarel=
|
|
l', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; color: #020617=
|
|
; background: #f8fafc;">
|
|
<div style=3D"max-width: 600px; margin: 20px auto; padding: 60px; borde=
|
|
r: 1px solid #e2e8f0; border-radius: 8px; background-color: #fff; text-alig=
|
|
n: left; font-size: 14px; line-height: 1.5;">
|
|
<div style=3D"text-align: center;">
|
|
<img src=3D"https://coder.com/coder-logo-horizontal.png" alt=3D"Cod=
|
|
er Logo" style=3D"height: 40px;" />
|
|
</div>
|
|
<h1 style=3D"text-align: center; font-size: 24px; font-weight: 400; m=
|
|
argin: 8px 0 32px; line-height: 1.5;">
|
|
Chats auto-archived after 90 days of inactivity
|
|
</h1>
|
|
<div style=3D"line-height: 1.5;">
|
|
<p>Hi Bobby,</p>
|
|
<p>The following chats were automatically archived:</p>
|
|
|
|
<ul>
|
|
<li>“Onboarding kickoff” (last active 3 months ago)<br>
|
|
</li>
|
|
<li>“Quarterly planning draft” (last active 4 months ago)<br>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>…and 6 more.</p>
|
|
|
|
<p>You can restore any of them from the Agents page within 30 days, after w=
|
|
hich they will be permanently deleted.</p>
|
|
</div>
|
|
<div style=3D"text-align: center; margin-top: 32px;">
|
|
=20
|
|
<a href=3D"http://test.com/agents?archived=3Darchived" style=3D"dis=
|
|
play: inline-block; padding: 13px 24px; background-color: #020617; color: #=
|
|
f8fafc; text-decoration: none; border-radius: 8px; margin: 0 4px;">
|
|
View chats
|
|
</a>
|
|
=20
|
|
</div>
|
|
<div style=3D"border-top: 1px solid #e2e8f0; color: #475569; font-siz=
|
|
e: 12px; margin-top: 64px; padding-top: 24px; line-height: 1.6;">
|
|
<p>© 2024 Coder. All rights reserved - <a =
|
|
href=3D"http://test.com" style=3D"color: #2563eb; text-decoration: none;">h=
|
|
ttp://test.com</a></p>
|
|
<p><a href=3D"http://test.com/settings/notifications" style=3D"colo=
|
|
r: #2563eb; text-decoration: none;">Click here to manage your notification =
|
|
settings</a></p>
|
|
<p><a href=3D"http://test.com/settings/notifications?disabled=3D764=
|
|
031be-4863-4220-867b-6ce1a1b7a5f5" style=3D"color: #2563eb; text-decoration=
|
|
: none;">Stop receiving emails like this</a></p>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|
|
--bbe61b741255b6098bb6b3c1f41b885773df633cb18d2a3002b68e4bc9c4--
|