evgeny
f54aa17e55
Observe buttonless pointer moves to cancel interrupted crop drags
2026-10-27 12:25:03 +01:00
evgeny
803d5f6583
Trace crop pointer state when a drag loses its button
2026-10-27 12:23:12 +01:00
evgeny
8c30c8e6ce
Isolate avatar preparation generations and guard reentrant signals
2026-10-27 12:19:31 +01:00
evgeny
d307492d22
Cover avatar preparation cancellation and reentrant owner deletion
2026-10-27 12:17:06 +01:00
evgeny
b95d3628bf
Check crop preview rendering and interrupted drags
2026-10-27 12:15:17 +01:00
evgeny
0a69864d10
Guard avatar upload controls across nested file and crop dialogs
2026-10-27 12:15:17 +01:00
evgeny
9c782be562
Bound avatar crop geometry and protect asynchronous preview lifetime
2026-10-27 12:10:36 +01:00
evgeny
bfc280310d
Cover avatar crop input bounds and modal owner lifetime
2026-10-27 12:07:36 +01:00
evgeny
c25ed7c243
Report readable causes for malformed avatar blobs
2026-10-27 11:57:30 +01:00
evgeny
138de8d446
Document retryable avatar snapshot read failures
2026-10-27 11:57:30 +01:00
evgeny
90a588cfc1
Separate unpublished avatars from malformed published storage
2026-10-27 11:57:30 +01:00
evgeny
7d4da3a54d
Treat an unpublished avatar as a successful empty read
2026-10-27 11:57:30 +01:00
evgeny
a701580d54
Exercise main window destruction inside channel settings exec
2026-10-27 11:57:30 +01:00
evgeny
bd105c630d
Validate avatar read recovery and bounded typed blobs
2026-10-27 11:57:30 +01:00
evgeny
6106fc1b5d
Keep transient SQLite failures out of the avatar cache
2026-10-27 11:57:30 +01:00
evgeny
905d30ceaf
Distinguish failed avatar reads from committed empty blobs
2026-10-27 11:57:30 +01:00
evgeny
95e88ac66f
Reproduce avatar cache poisoning after a transient SQL read error
2026-10-27 11:57:30 +01:00
evgeny
9fdd2dc9fb
Specify the native channel ID range in GUI contracts
2026-10-27 11:57:30 +01:00
evgeny
d4a969dc38
Match channel IDs to the native signed integer range
2026-10-27 11:57:30 +01:00
evgeny
cf4a209837
Own group avatar commands and preserve pending result identity
2026-10-27 11:57:30 +01:00
evgeny
6c0aa98508
Cover group avatar publication ownership and result correlation
2026-10-27 11:57:30 +01:00
evgeny
ddb373d445
Exercise settings retries and deletion changes during confirmation
2026-10-27 11:57:30 +01:00
evgeny
cba3f4f75a
Translate channel settings availability and queue errors
2026-10-27 11:57:30 +01:00
evgeny
3c6200f9c3
Keep channel settings alive safely across the main window loop
2026-10-27 11:57:30 +01:00
evgeny
74bcf91407
Own channel settings requests and guard nested dialogs
2026-10-27 11:57:30 +01:00
evgeny
271cfcd2f8
Cover channel settings queue failures and nested dialog lifetime
2026-10-27 11:57:30 +01:00
evgeny
1efd8fb26c
fix(chat): validate headless requests and complete media replies safely
2026-10-27 11:48:09 +01:00
evgeny
6429d4ca23
Merge desktop audit with updated chat contracts
...
Keep the complete member snapshot limit at 65535 and preserve SQL finalization checks, unsigned sorting, and owned GUI commands. Retain dynamic ETCP diagnostics with checked event lengths and no partial event on allocation failure. Validated three native and six GUI test targets and rebuilt vibechat.
2026-10-27 11:12:51 +01:00
evgeny
c7618ba62b
Limit group autoconnect indicators to group rows
2026-10-27 10:59:43 +01:00
evgeny
20ffa3fc6c
Include the channel event byte type explicitly
2026-10-27 10:59:01 +01:00
evgeny
842083cdeb
Exercise valid and stale channel menu actions
2026-10-27 10:57:21 +01:00
evgeny
1e3633ee56
Document channel list lifetime and validate row counters
2026-10-27 10:56:43 +01:00
evgeny
8552cf8316
Update isolated channel consumers for owned bridge requests
2026-10-27 10:56:43 +01:00
evgeny
abc2f8efb6
Preserve channel state and own presence requests safely
2026-10-27 10:55:11 +01:00
evgeny
4d4fafc00b
Isolate channel request cancellation from core startup tasks
2026-10-27 10:54:26 +01:00
evgeny
50fff66412
Cover channel reload state and pending request ownership
2026-10-27 10:53:23 +01:00
evgeny
f81f6299b4
Bound channel row painting and support pixel-sized fonts
2026-10-27 10:51:20 +01:00
evgeny
282bf99d4a
Cover channel delegate paint bounds and pixel fonts
2026-10-27 10:50:18 +01:00
evgeny
34a95b7733
Route member diagnostics safely across panels and modal actions
2026-10-27 10:20:07 +01:00
evgeny
a8958865bc
Keep member rows consistent and own queued refresh requests
2026-10-27 09:48:38 +01:00
evgeny
fe5cf910e1
test(chat): cover preference read errors and all queued sound form values
2026-10-27 07:29:48 +01:00
evgeny
fdb0381f5c
fix(gui): retain sound preference keys until the queued request is copied
2026-10-27 07:25:26 +01:00
evgeny
c8e1d120ba
fix(android): include the owner block size contract for role parsing
2026-10-27 07:16:37 +01:00
evgeny
e3ea2ef78f
fix(chat): preserve unedited GUI tags and read complete role histories
2026-10-27 07:08:33 +01:00
evgeny
463041a87f
docs(chat): describe complete JSON exports and listing failure tests
2026-10-27 06:06:55 +01:00
evgeny
6c0f9c9068
Reject embedded NUL before passing animation JSON to rlottie
2026-10-27 04:00:54 +01:00
evgeny
1b0034e1ba
Handle saved-setting apply errors and document committed CLI interaction results
2026-10-27 03:58:19 +01:00
evgeny
a7a7e4b5a1
Cancel member actions when a click becomes a drag
2026-10-27 03:54:03 +01:00
evgeny
9876677a5f
Refresh committed feedback without repeating user actions after readback errors
2026-10-27 03:49:38 +01:00
evgeny
1820128f5b
Document member badge painting and ignored state flags
2026-10-27 03:43:31 +01:00