evgeny
|
d72a2c092e
|
Log avatar preparation generation and teardown state
|
2026-10-27 12:28:12 +01:00 |
|
evgeny
|
90d6f78a9e
|
Resolve Qt 5 collection deduction in avatar and settings code
|
2026-10-27 12:26:58 +01:00 |
|
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
|
f12c7d072a
|
test(chat): read complete media manifests with JSON whitespace
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
9b24c1f012
|
fix(chat): preserve media and local state on incomplete database reads
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
7c050eb7ef
|
fix(chat): publish complete peer caches and clean pending JOIN state
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
ce3287ac94
|
fix(chat): verify incoming JOIN profiles before local insertion
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
054ade0dcd
|
fix(chat): select invite peers and read signed addresses consistently
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
1efd8fb26c
|
fix(chat): validate headless requests and complete media replies safely
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
c73090759f
|
fix(chat): commit global names with signed node and member profiles
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
0656f24a7c
|
fix(chat): own Whisper jobs per instance and defer route UI events
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
cb9c04ff61
|
test(chat): distinguish route event deletion flag from routing API
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
33556fefea
|
test(chat): exercise channel deletion from a topology notification
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
189ae43a7c
|
docs(chat): distinguish committed core readiness from complete service startup
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
a4edd34695
|
fix(chat): retain SQL error codes when SQLite supplies no message
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
e28386c868
|
fix(chat): reject outer transactions before preparing shared service resources
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
8151fc5a9c
|
test(chat): cover startup admission, saved channel activation, and owner-close recovery
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
1c6d203754
|
fix(chat): diagnose channel catalog failures with SQL status and shape
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
fb7846780b
|
test(chat): verify startup metadata rollback and required callback allocation failures
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
3b0ae79527
|
refactor(chat): keep the chat identity bound to its core instance
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
6c777d4426
|
fix(chat): reject inconsistent repeated core initialization
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
63406a9742
|
refactor(chat): borrow SQLite exclusively from the running core
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
6f9723f8ce
|
fix(chat): commit startup metadata before activating channels and publishing readiness
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
e3bd66f0b7
|
test(chat): reproduce ready startup after a required subscription fails
|
2026-10-27 11:48:09 +01:00 |
|
evgeny
|
ed00f1ad9a
|
fix(chat): require both member notification subscriptions at startup
|
2026-10-27 11:48:09 +01:00 |
|