Commit Graph
262 Commits
Author SHA1 Message Date
evgeny f91894aa1b Expose verified stream sources and channel watch events 2026-10-12 21:57:20 +02:00
evgeny 9aa56e6b56 Show NAT profile origin and recheck interface STUN from control 2026-10-12 00:58:50 +02:00
evgeny ff69552a61 Measure owned endpoint mapping and inbound reachability separately 2026-10-12 00:01:40 +02:00
evgeny a62540800b Cancel local streams when signed membership is invalidated 2026-10-12 00:01:39 +02:00
evgeny 30106c8f93 Attach stream subscriptions to CHAT lifecycle and member profiles 2026-10-12 00:01:39 +02:00
evgeny a33666b778 Add atomic updates for signed member profile options 2026-10-12 00:01:38 +02:00
evgeny dc0dbbf720 headless: expose OS-assigned control and audio listener ports 2026-10-10 15:51:04 +02:00
evgeny 5a9e61164b Measure uasync CPU load and display it in desktop and Android GUIs
Sample thread CPU usage without waking idle loops, expose a one-second moving average, and refresh compact GUI indicators at 3 Hz while visible on Android. Add load and bridge regression coverage, streaming notes, and task list cleanup.
2026-10-10 12:31:13 +02:00
evgeny 44af542f61 chatgui: add radio activation by signal level with hysteresis 2026-10-08 17:53:16 +02:00
evgeny 68037b25a5 Store signed replies by message ID and confirm channel submissions 2026-10-08 00:20:48 +02:00
evgeny 99e9b1ae85 Define channel reply references and submission result events 2026-10-08 00:19:35 +02:00
evgeny f2e35da1fe Wire notification platform dependencies and event diagnostics 2026-10-07 15:55:39 +02:00
evgeny 261198ab47 Expose initial synchronization in channel message events 2026-10-07 15:53:39 +02:00
evgeny 7e19cbaf3a Add local per-member radio mute controls on desktop and Android 2026-10-07 13:35:25 +02:00
evgeny b1bf094bfd Verify signed multi-reaction rejection and document the single-choice rule 2026-10-07 08:17:52 +02:00
evgeny a444f28134 Enforce one reaction per author and replace the previous emoji atomically 2026-10-07 08:12:32 +02:00
evgeny 9299c95f10 Verify root formation and invitation certificate replication 2026-10-07 00:46:36 +02:00
evgeny a9a65d53bf Preserve invitation certificates and accept confirmed roots without profile changes 2026-10-07 00:44:50 +02:00
evgeny 2f5a49b011 Repair existing chat history tables with stable message IDs 2026-10-07 00:25:11 +02:00
evgeny 255853dd76 Document complete poll protocol and verified recovery behavior 2026-10-06 22:47:06 +02:00
evgeny bbc8b7693a Restart member and feedback synchronization over existing transports 2026-10-06 22:40:47 +02:00
evgeny da2c13dcf1 Add CLI poll creation, voting and emoji reaction commands 2026-10-06 21:26:37 +02:00
evgeny f99a8c1da2 Expose polls and reactions through headless control safely 2026-10-06 21:26:37 +02:00
evgeny 17444b8c8a Evaluate delayed answers after their source message arrives 2026-10-06 21:24:14 +02:00
evgeny 60b4870549 Pass stable identities to insertion callbacks and bound signed bodies 2026-10-06 21:24:13 +02:00
evgeny 865e4cda59 Log delayed answer validation and keep JSON percentages locale independent 2026-10-06 21:23:37 +02:00
evgeny e6db9fef60 Validate feedback data and provide poll command snapshots 2026-10-06 21:23:37 +02:00
evgeny 0af35630d1 Expose full message data and stable identities in listings 2026-10-06 21:17:24 +02:00
evgeny a4ca31f406 Return submitted message identity and encode JSON safely 2026-10-06 21:17:24 +02:00
evgeny d0aa60fe1a Define canonical poll, answer and reaction formats 2026-10-06 21:15:57 +02:00
evgeny d40f58d79a Add message identities and plan the remaining feedback work 2026-10-06 21:12:53 +02:00
evgeny 04ff801531 Document Merkle v3 and signed feedback state contracts 2026-10-06 20:11:25 +02:00
evgeny f6cc3b6e53 Make feedback roots depend on signed state and validate rebuilt keys 2026-10-06 20:07:44 +02:00
evgeny 982e5a06ab Integrate feedback tables with channel and sync lifecycle 2026-10-06 20:06:39 +02:00
evgeny 8121f93d2e Build feedback model and expose committed state events 2026-10-06 20:06:38 +02:00
evgeny 641a8318a8 Add signed versioned feedback storage and Merkle adapter 2026-10-06 20:05:18 +02:00
evgeny 864a250eea Preserve input cursor when member page outputs alias it 2026-10-06 20:02:41 +02:00
evgeny 49dc837df2 Correct all member dataset arguments in callers 2026-10-06 19:59:43 +02:00
evgeny f6bfd36a6c Include dataset identity in Merkle diagnostics 2026-10-06 19:57:58 +02:00
evgeny 5e146f20bc Adapt member sync and protocol tests to dataset cursors 2026-10-06 19:56:52 +02:00
evgeny 539bfd6db9 Extend Merkle sessions with datasets and full record cursors 2026-10-06 19:56:17 +02:00
evgeny 17491082d4 Validate signed profile avatar manifest references 2026-10-06 19:29:42 +02:00
evgeny c80e82d104 Define member avatar references as manifest objects 2026-10-06 19:29:37 +02:00
evgeny e8365fdec6 Upgrade group avatar columns before notifying database readiness 2026-10-06 14:04:49 +02:00
evgeny 5c772aeecf Preserve channel identity in member adapter fixtures 2026-10-06 14:04:49 +02:00
evgeny 2bcba58131 Reject group avatar commands outside a running chat service 2026-10-06 13:59:17 +02:00
evgeny d0173e1b73 Test atomic schema upgrades and report precise avatar validation errors 2026-10-06 13:57:12 +02:00
evgeny f8d95fcb25 Initialize avatar peers from the current group session epoch 2026-10-06 13:52:19 +02:00
evgeny 3b47a56076 Trace group avatar assembly resets and block mismatches 2026-10-06 13:49:54 +02:00
evgeny a816b842e5 Read group avatar metadata separately from image bytes 2026-10-06 13:43:49 +02:00