hh
|
8a1723e99f
|
fix(frontend): panel history survives a link that rewrites its own url, dictionaries reuse the thread and panel strings of the feed
|
2026-10-19 05:26:20 +00:00 |
|
hh
|
c06597aba2
|
chore(backend): chat stats migration follows the search migration
|
2026-10-19 05:26:11 +00:00 |
|
hh
|
7f3458b3ef
|
docs: mcp tool list matches the server
|
2026-10-19 05:26:11 +00:00 |
|
hh
|
4a32e32114
|
feat(frontend): online dots on private chats, deleted last message struck through, back from a chat goes through history
|
2026-10-19 05:26:11 +00:00 |
|
hh
|
9c556ff8b9
|
feat(frontend): notes list with tag chips and the tag in the url, from the menu and settings, capture status dot on the menu and a line in settings
|
2026-10-19 05:26:11 +00:00 |
|
hh
|
171d8d922d
|
feat(frontend): exact time on the message time, deletion and edit times in the meta, note marker, copy link answered in the menu, media menu keeps the message items, date pill opens the calendar, capture gaps between messages
|
2026-10-19 05:25:54 +00:00 |
|
hh
|
848d2aca1a
|
feat(frontend): right panel lives in browser history and back closes it first, message panels close on chat switch, hotkeys for search, chats, in-chat search and closing
|
2026-10-19 05:25:54 +00:00 |
|
hh
|
7f7fc1296e
|
feat(watcher): watched bots report capture uptime like the userbot
|
2026-10-19 05:25:44 +00:00 |
|
hh
|
f62c345e2b
|
feat(backend): who of the given people is online now in one request
|
2026-10-19 05:25:44 +00:00 |
|
hh
|
9ae8b34005
|
feat(backend): capture status and the stretches the archive was not recording
|
2026-10-19 05:25:44 +00:00 |
|
hh
|
a0e134756c
|
feat(backend): notes list across chats with the message and chat they belong to, filter by tag, tag counts
|
2026-10-19 05:25:44 +00:00 |
|
hh
|
97f9082f5e
|
feat(backend): chat list marks a deleted last message, history pages mark messages with a note
|
2026-10-19 05:25:44 +00:00 |
|
hh
|
90b37ec708
|
fix(frontend): jobs name their chats, open links tab counts only links that are really open
|
2026-10-19 03:53:08 +00:00 |
|
hh
|
4082adba25
|
fix(frontend): buttons keep a gap between icon and text, viewer counter stays clear of the actions on mobile
|
2026-10-19 03:53:08 +00:00 |
|
hh
|
b3805123b5
|
fix(frontend): english storage and policy labels fit on mobile, phone placeholder no longer peeks out from under its label
|
2026-10-19 03:53:08 +00:00 |
|
hh
|
896b89f3b0
|
refactor(frontend): stories archives drop tile styles and imports that live in the tile
|
2026-10-19 03:53:08 +00:00 |
|
hh
|
4a5c92f0e9
|
feat(frontend): storage, trash, policy, stories, shares, jobs, bots, media, login and notes speak russian and english
|
2026-10-19 03:53:08 +00:00 |
|
hh
|
e5a5edcaae
|
perf(backend): search stays in tens of milliseconds at archive size for rare words, channels, deleted and transcripts
|
2026-10-19 03:41:49 +00:00 |
|
hh
|
9a6bd8a714
|
feat(frontend): search results show deleted, edited and earlier version marks with highlighted words, filter chips live in the url, results load on scroll
|
2026-10-19 03:41:44 +00:00 |
|
hh
|
d45c96c259
|
feat(backend): search finds word prefixes, earlier versions and deleted messages, with filters and cursor paging
|
2026-10-19 03:41:39 +00:00 |
|
hh
|
42b4e1d7e6
|
fix(frontend): chips of the changes panel stay on top while the list scrolls
|
2026-10-19 03:27:27 +00:00 |
|
hh
|
309614c979
|
fix(frontend): channel posts show no sender id, a post sent as a chat shows its title and avatar
|
2026-10-19 03:25:48 +00:00 |
|
hh
|
98dda99c5c
|
feat(frontend): profiles chip in the feed shows name, username, photo and title changes
|
2026-10-19 03:25:48 +00:00 |
|
hh
|
8e0f828dd4
|
feat(backend): feed lists name, username and photo changes of people and chat renames, merged per day
|
2026-10-19 03:25:43 +00:00 |
|
hh
|
9aa8690e33
|
chore(backend): feed migrations follow the profile history migration
|
2026-10-19 03:06:20 +00:00 |
|
hh
|
dadba4d545
|
fix(frontend): message highlight and active folder tab are visible in the light theme
|
2026-10-19 03:00:23 +00:00 |
|
hh
|
fffbb08d36
|
fix(frontend): a link to a message opens the chat right at it without loading the latest page first
|
2026-10-19 03:00:23 +00:00 |
|
hh
|
c247dd0217
|
docs: readme mentions the feed and the get_feed tool
|
2026-10-19 03:00:23 +00:00 |
|
hh
|
b9a0604426
|
fix(frontend): jumps to replies, pins and album photos load the message when it is not on screen
|
2026-10-19 03:00:12 +00:00 |
|
hh
|
9f16e2aa56
|
feat(frontend): feed of deleted and edited messages above the chat list and per chat in the changes panel
|
2026-10-19 03:00:12 +00:00 |
|
hh
|
010fa29ce0
|
feat(backend): feed items carry the message id even when the message row is gone
|
2026-10-19 02:59:07 +00:00 |
|
hh
|
395d58464d
|
feat(backend): get_feed mcp tool reads the feed of deleted and edited messages
|
2026-10-19 02:59:07 +00:00 |
|
hh
|
83c57ac96b
|
feat(backend): feed of deleted and edited messages with bulk deletions grouped and a shared seen marker
|
2026-10-19 02:58:51 +00:00 |
|
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 |
|
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 |
|
hh
|
5eacabd101
|
feat(backend): storage lists the heaviest chats, summary and file list take a chat filter
|
2026-10-14 05:02:03 +02:00 |
|
hh
|
0362777a51
|
fix(frontend): opened policy rule stays in view while its card grows, chevrons hold one column, switch and field sizes match the rest
|
2026-10-14 04:31:18 +02:00 |
|
hh
|
dfc726976b
|
fix(frontend): policy card keeps its wells in the light theme, folder rules show their content, opened rule scrolls into view, rule removal asks first
|
2026-10-14 04:27:59 +02:00 |
|
hh
|
cb01d7dff8
|
feat(frontend): capture policy shows what each rule changes, rule card opens from folder and chat menus and can trash downloaded files, trash is paged
|
2026-10-14 04:20:38 +02:00 |
|
hh
|
f646f29ff9
|
feat(backend): policy rules show what they inherit, files of a chat or folder go to trash in one batch, trash list is paged
|
2026-10-14 04:13:13 +02:00 |
|
hh
|
945adcf879
|
fix(backend): userbot follows kurigram 2.2.26, user and chat parsing is awaited, missing chat is handled
|
2026-10-14 03:55:33 +02:00 |
|
hh
|
09c5f78061
|
fix(frontend,backend): all stories panel groups by peer again, missing trashed file answers 404, access log hides the token
|
2026-10-14 03:53:56 +02:00 |
|
hh
|
897421e7c4
|
fix(frontend): storage failures use the error colour next to the warning, shared mark on its own line in the list, trash key is visible
|
2026-10-14 03:28:29 +02:00 |
|
hh
|
3223f62dea
|
fix(frontend): selected storage chip keeps its fill in the light theme, tile label uses the medium weight
|
2026-10-14 03:24:31 +02:00 |
|
hh
|
c9c088ed73
|
fix(frontend): shared mark on its own line in trash rows, undo ignores the trailing click, trash segment has a key
|
2026-10-14 03:23:22 +02:00 |
|
hh
|
580927da0a
|
fix(frontend,backend): storage categories keep one hue in both themes, trash counted in the total, undo keeps the list, larger touch targets
|
2026-10-14 03:18:59 +02:00 |
|
hh
|
06ae3e928f
|
refactor(frontend): storage panel answers in place instead of toasts, empty groups hidden, weight bar animates by transform
|
2026-10-14 03:14:51 +02:00 |
|
hh
|
55634984fd
|
feat(frontend,backend): storage panel with weight rows and trash, heavy media streams by url in the viewer
|
2026-10-14 03:09:37 +02:00 |
|
hh
|
f2c245707a
|
feat(backend): storage trash with seven day retention, trashed files are not fetched again automatically
|
2026-10-14 02:52:21 +02:00 |
|
hh
|
4d16105e92
|
feat(frontend)!: sveltekit 3 on the v0.7.0 template, typescript 6, adapter-auto dropped; backend base moves to trixie
|
2026-10-10 23:18:57 +00:00 |
|
hh
|
b1ffebe858
|
fix(infra): timescaledb image 2.27.1 to 2.30.2, the high advisory fixed in 2.29.1 was still open
|
2026-10-10 20:50:06 +00:00 |
|
hh
|
2512a7988d
|
chore(frontend): biome 2.5.15 stops flagging regexp exec results as always truthy, svelte files reformatted by it
|
2026-10-10 21:05:02 +02:00 |
|
hh
|
56146e4e8d
|
chore(backend,infra): resolve template update conflicts, import check knows the watcher and the api login
|
2026-10-10 20:59:12 +02:00 |
|
hh
|
5fb8f8a534
|
style(backend): one-line import, ruff 0.17 keeps the pragma out of the line width
|
2026-10-10 20:59:12 +02:00 |
|