hh
|
45c19cac20
|
feat(backend): edit versions are kept in groups and channels by default
|
2026-10-19 02:58:51 +00:00 |
|
hh
|
0dd14c5d5e
|
fix(backend): person overview reads live in their own module, no import cycle with read receipts
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
1abb396c36
|
feat(frontend): sender avatar and name in groups open the person panel without leaving the chat
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
143408cd7f
|
feat(frontend): profile panel about one person with real changes, shared groups, joins and leaves and deleted messages
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
c8d485fe0e
|
fix(backend): migration vacuums profile history so change reads stay index only
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
b86e2627d8
|
feat(backend): mcp get_person returns everything the archive knows about one person
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
8f9ceb6af8
|
feat(backend): person overview with real profile changes, shared groups, joins and leaves, deleted count and group title changes
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
0c9c848fb1
|
fix(backend): profile history gets a row only when a field really changed, partial snapshots keep the known phone and username
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
aa41bbbc74
|
fix(backend): group title changes found by enrichment are recorded, enrichment and syncs skip unchanged profiles
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
efc431c969
|
fix(backend): watched bot enriches a group at most once in six hours
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
7d7cf3cbbb
|
feat(backend): history keys cover the profile fields, group snapshots keyed by time, indexes for memberships and job lookups
|
2026-10-19 02:57:49 +00:00 |
|
hh
|
97ccfbbffd
|
fix(backend): watch times stay in utc for naive telegram dates, webhook outbox survives a database hiccup at start
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
2c56934133
|
feat(frontend): live unseen alerts badge on the menu button and in settings
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
ea3a7c0a61
|
feat(frontend): watches, webhooks and alerts panels read humanly, with chat picker, url filter, test send and delivery log
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
6a4fd6ad47
|
feat(backend): watches report alert counts, alerts carry watch params and time away, webhooks their last delivery
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
9da0c06ac1
|
feat(backend): webhooks deliver signed alerts from an outbox with retries and a test send
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
2bb8ca45fb
|
feat(backend): alerts come enriched and paged with an unseen count and a live alert frame
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
4469938f47
|
feat(backend): watches fire on new, edited and deleted messages and on coming online, legacy keyword included
|
2026-10-19 02:57:27 +00:00 |
|
hh
|
8ed9ca1951
|
fix(frontend): chat list shows its chats on the first load again
|
2026-10-19 02:57:17 +00:00 |
|
hh
|
73b8903de1
|
feat(frontend): analytics shows minutes online by hour of week and by day, sessions with start and end, says when last seen is hidden, chat status is live and in russian
|
2026-10-19 02:41:39 +00:00 |
|
hh
|
f44597b2dc
|
feat(backend): presence stats count time online from sessions in the browser time zone, capture uptime marks hours without data, presence reaches every stream of the account, message volume keeps empty days
|
2026-10-19 02:41:39 +00:00 |
|
hh
|
bb38e23f29
|
feat(frontend): my message menu shows when it was read or listened, group readers open in a right panel
|
2026-10-19 02:40:49 +00:00 |
|
hh
|
f03d7c2890
|
fix(frontend): right panel on phones stays above the sticky dates of the chat
|
2026-10-19 02:40:49 +00:00 |
|
hh
|
d8dd08d7de
|
feat(backend): read time of my messages from the archive, exact dates and group readers asked from telegram on demand
|
2026-10-19 02:40:49 +00:00 |
|
hh
|
f27943aae6
|
feat(backend): supergroup read receipts are captured like basic groups
|
2026-10-19 02:40:30 +00:00 |
|
hh
|
d8ad62fb59
|
fix(frontend): switching accounts never shows the previous account's chats for a moment
|
2026-10-19 02:33:44 +00:00 |
|
hh
|
f5a8649855
|
perf(backend): message writes look up the stored copy by its date and touch one chunk
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
23c1504001
|
feat(userbot): after a restart the userbot catches up on what it missed while down, from a saved cursor and within bounds
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
92e5e737d2
|
fix(userbot): presence, story and profile history toggles of the capture policy take effect for each user peer
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
f32b772ddc
|
fix(userbot): a deletion that arrives before its message is applied once the message is stored
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
516b8e307f
|
fix(backend): a re-captured or bot-edited message keeps its earlier text as a version, an older copy never overwrites a newer edit
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
33ceea3dfc
|
fix(backend): a bulk deletion is announced in chunks that fit the notify payload limit
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
4ce9c5d340
|
fix(backend): a session or bot that fails to start is retried and the failure is logged
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
42469eb9f1
|
fix(userbot): job queue survives a consumer failure, a flood wait defers its job instead of holding the queue
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
3373c31a02
|
fix(backend): listen connections reconnect after a dropped connection or a postgres restart and catch up on what they missed
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
17e27beb59
|
fix(userbot): repeated link rows no longer abort the message insert
|
2026-10-19 02:29:19 +00:00 |
|
hh
|
54424d0aa0
|
feat(frontend): browser tab shows the open chat, empty state speaks the chosen language
|
2026-10-19 02:06:13 +00:00 |
|
hh
|
50922ef69a
|
feat(frontend): installable on the phone with its own icon, title and manifest, missing avatars are asked again later
|
2026-10-19 02:05:41 +00:00 |
|
hh
|
a1d3552519
|
feat(frontend): main menu lists accounts with their avatars, switching opens the last chat of that account
|
2026-10-19 02:02:31 +00:00 |
|
hh
|
3460246749
|
feat(frontend): russian and english interface with a language choice in settings, soon stubs removed
|
2026-10-19 01:54:34 +00:00 |
|
renovate Bot
|
3d2f670e87
|
chore(deps): update ghcr.io/astral-sh/uv:python3.13-trixie-slim docker digest to 7dd72af (main) (#20)
Co-authored-by: renovate <renovate@hhhhh.dev>
|
2026-10-18 04:09:11 +00:00 |
|
renovate Bot
|
305de9f871
|
chore(deps): pin ghcr.io/astral-sh/uv docker tag to 40215b6 (main) (#15)
Co-authored-by: renovate <renovate@hhhhh.dev>
|
2026-10-14 04:07:55 +00:00 |
|
hh
|
dcd6786ca5
|
fix(backend): avatar job ends without a crash when telegram does not know the owner
|
2026-10-14 05:25:48 +02:00 |
|
hh
|
32d58193f3
|
fix(backend): raw update reaches every handler that declares it, contact list follows user updates
|
2026-10-14 05:25:45 +02:00 |
|
hh
|
59d0e2c8ad
|
fix(backend): shared contact card keeps its phone number in the stored message
|
2026-10-14 05:25:42 +02:00 |
|
hh
|
850d39ad6f
|
fix(frontend): cleanup block shows its failure in the error color
|
2026-10-14 05:17:58 +02:00 |
|
hh
|
b8a38092eb
|
fix(frontend): emptied chat keeps its storage head, shared-only chat explains why nothing can be bulk moved, back from a chat returns to the same place in the list, cleanup wording agrees in number
|
2026-10-14 05:15:27 +02:00 |
|
hh
|
2836dcb3a9
|
fix(backend): stale avatar is refetched again under kurigram 2.2.26, profile photos come as chat photos
|
2026-10-14 05:09:38 +02:00 |
|
hh
|
01cf01b629
|
fix(backend): rich messages of the new telegram layer read as plain text instead of no text
|
2026-10-14 05:06:35 +02:00 |
|
hh
|
7f124059be
|
feat(frontend): storage shows the heaviest chats, a chat opens its own files with selective cleanup and a whole-chat move to trash
|
2026-10-14 05:02:06 +02:00 |
|