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 |
|
evgeny
|
56897368b3
|
Own group avatar synchronization in the chat service lifecycle
|
2026-10-06 13:41:55 +02:00 |
|
evgeny
|
f67f090b2a
|
Synchronize signed group avatars in bounded 4 KiB blocks
|
2026-10-06 13:41:29 +02:00 |
|
evgeny
|
e3745f279e
|
Store signed group avatars without replacing channel keys
|
2026-10-06 13:37:18 +02:00 |
|
evgeny
|
8f83167c0f
|
Forward full join profiles and document canonical profile lengths
|
2026-10-06 12:58:00 +02:00 |
|
evgeny
|
5276cd0fa0
|
Simplify profile updates and report database read failures
|
2026-10-06 12:54:44 +02:00 |
|
evgeny
|
d946a1b93a
|
Finalize unsigned initial profiles before channel bootstrap
|
2026-10-06 12:48:20 +02:00 |
|
evgeny
|
8b327a3f27
|
Bound upload cache growth and reject stale transfer completions
|
2026-10-06 12:46:32 +02:00 |
|
evgeny
|
972910c763
|
Verify profile signatures survive avatar and display name updates
|
2026-10-06 12:45:45 +02:00 |
|
evgeny
|
9842de7ab7
|
Document avatar storage, profile exchange and client caching
|
2026-10-06 12:45:13 +02:00 |
|
evgeny
|
c04f51d424
|
Use bounded 16-bit profile lengths in join member records
|
2026-10-06 12:44:18 +02:00 |
|
evgeny
|
76c02012eb
|
Preserve complete signed profiles in channel bootstrap messages
|
2026-10-06 12:44:18 +02:00 |
|
evgeny
|
9279ded7f3
|
Read complete signed profiles and escape initial display names
|
2026-10-06 12:43:11 +02:00 |
|
evgeny
|
f2d2e6be8f
|
Test avatar immutability, hash validation and quota accounting
|
2026-10-06 12:40:07 +02:00 |
|
evgeny
|
e642551dfe
|
Expose signed storage roles independently of route priority
|
2026-10-06 12:38:11 +02:00 |
|
evgeny
|
8fb9129300
|
Verify large signed profiles alongside full owner records
|
2026-10-06 12:36:35 +02:00 |
|