meta-sovereign 0.53.0 → 0.53.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +1 -1
  2. package/js/src/crm/reengage.js +18 -5
  3. package/js/src/replies/reply-cache.js +30 -26
  4. package/js/src/server/live-subset.js +46 -0
  5. package/js/src/server/local-tls.js +14 -3
  6. package/js/src/server/routes-automations.js +9 -1
  7. package/js/src/server/routes-derived.js +36 -20
  8. package/js/src/server/routes-events.js +1 -1
  9. package/js/src/server/routes-telegram.js +7 -0
  10. package/js/src/sources/telegram-account.js +8 -3
  11. package/js/src/sources/telegram-backfill.js +5 -4
  12. package/js/src/sources/telegram-business-bots.js +1 -1
  13. package/js/src/sources/telegram-chat-info.js +6 -1
  14. package/js/src/sources/telegram-chat-url.js +34 -0
  15. package/js/src/sources/telegram-dialog-state.js +60 -0
  16. package/js/src/sources/telegram-forum.js +48 -1
  17. package/js/src/storage/app-directory.js +4 -3
  18. package/js/src/storage/dual-store.js +6 -0
  19. package/js/src/storage/secret-store.js +6 -1
  20. package/js/src/web/api-errors.js +4 -1
  21. package/js/src/web/app.css +51 -26
  22. package/js/src/web/app.min.js +95 -95
  23. package/js/src/web/chat-automation.js +8 -1
  24. package/js/src/web/chat-business-bots.js +9 -2
  25. package/js/src/web/chat-drag.js +26 -2
  26. package/js/src/web/chat-feed.js +165 -0
  27. package/js/src/web/chat-follow.js +22 -6
  28. package/js/src/web/chat-live.js +23 -140
  29. package/js/src/web/chat-model.js +27 -5
  30. package/js/src/web/chat-row.js +3 -1
  31. package/js/src/web/chat-sidebar.js +6 -4
  32. package/js/src/web/chat-state.js +9 -3
  33. package/js/src/web/chat-suggest.js +4 -7
  34. package/js/src/web/chat-view.js +126 -71
  35. package/js/src/web/client.js +33 -83
  36. package/js/src/web/connections/index.js +1 -1
  37. package/js/src/web/discover.js +19 -9
  38. package/js/src/web/dom.js +14 -5
  39. package/js/src/web/locales/en-chat.js +15 -11
  40. package/js/src/web/locales/en.js +17 -0
  41. package/js/src/web/locales/hi-chat.js +16 -10
  42. package/js/src/web/locales/hi.js +15 -0
  43. package/js/src/web/locales/ru-chat.js +16 -10
  44. package/js/src/web/locales/ru.js +17 -0
  45. package/js/src/web/locales/zh-chat.js +15 -9
  46. package/js/src/web/locales/zh.js +15 -0
  47. package/js/src/web/navigation-counts.js +7 -5
  48. package/js/src/web/operator-model.js +7 -3
  49. package/js/src/web/operator-prefs.js +58 -0
  50. package/js/src/web/operator-unread.js +97 -0
  51. package/js/src/web/operator-view.js +64 -40
  52. package/js/src/web/person-panel.js +20 -26
  53. package/js/src/web/profile-stories.js +5 -2
  54. package/js/src/web/server-availability.js +71 -0
  55. package/js/src/web/settings-view.js +38 -0
  56. package/js/src/web/shell/app-shell.js +5 -1
  57. package/js/src/web/stories-pref.js +5 -0
  58. package/js/src/web/stories.js +1 -1
  59. package/js/src/web/telegram-status.js +36 -0
  60. package/package.json +1 -1
  61. package/js/src/web/chat-history-status.js +0 -94
@@ -35,7 +35,10 @@ export const KNOWN_CODES = [
35
35
  // inline by the panel that asked. Codes outside KNOWN_CODES are the panels'.
36
36
  const INLINE_ONLY = new Set(['unsupported', 'unsupported-chat']);
37
37
  // This read-only POST also supplies the background missed-call badge.
38
- const READ_POSTS = new Set(['/api/telegram/calls']);
38
+ const READ_POSTS = new Set([
39
+ '/api/telegram/calls',
40
+ '/api/telegram/dialog-state',
41
+ ]);
39
42
 
40
43
  const seen = new Set();
41
44
 
@@ -15,6 +15,8 @@
15
15
  /* One height for every button, input and select; one header height
16
16
  the sticky drawer, rail and full-height chat measure against. */
17
17
  --control-h: 2.25rem;
18
+ --control-gap: 0.5rem;
19
+ --control-pad: 0.4rem 0.9rem;
18
20
  --radius: 8px;
19
21
  --topbar-h: 3.5rem;
20
22
  --bottom-nav-h: 4rem;
@@ -174,7 +176,7 @@ body {
174
176
  }
175
177
  .header-btn {
176
178
  width: var(--control-h);
177
- padding: 0;
179
+ padding: 0.25rem;
178
180
  }
179
181
  .btn-label {
180
182
  display: none;
@@ -193,7 +195,16 @@ body {
193
195
  flex-wrap: wrap;
194
196
  gap: 0.25rem;
195
197
  }
196
- .topbar nav button {
198
+ .topbar nav /* Action containers inherit a nonzero gap even when a new toolbar omits it.
199
+ Named layouts can choose a denser spacing; no margins fight their alignment. */
200
+ :where(*:has(> :is(button, a.button, [role='button']) ~ :is(button, a.button, [role='button']))) {
201
+ gap: var(--control-gap);
202
+ }
203
+ /* Inline actions in prose/table cells do not participate in flex/grid gaps. */
204
+ :where(p, td, dd, .meta) > :is(button, a.button) + :is(button, a.button) {
205
+ margin-inline-start: var(--control-gap);
206
+ }
207
+ button {
197
208
  background: transparent;
198
209
  color: var(--text-muted);
199
210
  border: 1px solid transparent;
@@ -426,6 +437,9 @@ main[data-view='chat'] > .web-mode-banner {
426
437
  min-height: 1px;
427
438
  }
428
439
 
440
+ .chat-list > .chat-item + .chat-item {
441
+ margin-block-start: 0.25rem;
442
+ }
429
443
  .chat-item {
430
444
  /* Rows out of sight are not laid out or painted (R-Y71). */
431
445
  content-visibility: auto;
@@ -1197,8 +1211,10 @@ main[data-view='chat'] > .web-mode-banner {
1197
1211
  a.button {
1198
1212
  display: inline-flex;
1199
1213
  align-items: center;
1214
+ justify-content: center;
1215
+ gap: var(--control-gap);
1200
1216
  min-height: var(--control-h);
1201
- padding: 0.4rem 0.9rem;
1217
+ padding: var(--control-pad);
1202
1218
  border: 1px solid var(--border);
1203
1219
  border-radius: var(--radius);
1204
1220
  background: var(--bg-active);
@@ -1409,7 +1425,7 @@ a.button {
1409
1425
  }
1410
1426
  .icon-btn {
1411
1427
  width: var(--control-h);
1412
- padding: 0;
1428
+ padding: 0.25rem;
1413
1429
  border-color: transparent;
1414
1430
  background: transparent;
1415
1431
  }
@@ -1522,7 +1538,7 @@ button {
1522
1538
  color: inherit;
1523
1539
  border: 1px solid var(--border);
1524
1540
  border-radius: var(--radius);
1525
- padding: 0.4rem 0.9rem;
1541
+ padding: var(--control-pad);
1526
1542
  font: inherit;
1527
1543
  font-size: 0.9rem;
1528
1544
  line-height: 1.2;
@@ -1551,7 +1567,7 @@ button.primary:hover:not(:disabled) {
1551
1567
  }
1552
1568
  .row {
1553
1569
  display: flex;
1554
- gap: 0.5rem;
1570
+ gap: var(--control-gap);
1555
1571
  align-items: center;
1556
1572
  flex-wrap: wrap;
1557
1573
  }
@@ -2833,6 +2849,10 @@ button.primary .recommended-tag {
2833
2849
  flex-direction: column;
2834
2850
  gap: 0.3rem;
2835
2851
  }
2852
+ .automation-list li {
2853
+ display: grid;
2854
+ gap: var(--control-gap);
2855
+ }
2836
2856
  .automation-list button {
2837
2857
  width: 100%;
2838
2858
  text-align: left;
@@ -3608,6 +3628,9 @@ button.primary .recommended-tag {
3608
3628
  rounded, frosted, an icon before each item; it grows from the corner
3609
3629
  it opened at. */
3610
3630
  .msg-context-menu {
3631
+ display: flex;
3632
+ flex-direction: column;
3633
+ gap: 0.25rem;
3611
3634
  position: fixed;
3612
3635
  /* Above a dialog: the files' Send button has a menu too (R-Y102). */
3613
3636
  z-index: 2100;
@@ -4564,7 +4587,7 @@ button.primary .recommended-tag {
4564
4587
  flex: none;
4565
4588
  width: 1.1em;
4566
4589
  height: 1.1em;
4567
- color: var(--link);
4590
+ color: var(--text);
4568
4591
  vertical-align: -0.2em;
4569
4592
  }
4570
4593
  .spinner svg {
@@ -6791,7 +6814,7 @@ button[aria-busy='true']::before {
6791
6814
  scrollbar-width: thin;
6792
6815
  }
6793
6816
  .stories-strip.is-compact .stories-list {
6794
- gap: 0;
6817
+ gap: 0.25rem;
6795
6818
  }
6796
6819
  .story-peer {
6797
6820
  display: flex;
@@ -9184,7 +9207,7 @@ span.bubble-effect {
9184
9207
  left: 50%;
9185
9208
  top: 50%;
9186
9209
  transform: translate(-50%, -50%);
9187
- padding: 0.4rem 0.9rem;
9210
+ padding: var(--control-pad);
9188
9211
  border: 0;
9189
9212
  border-radius: 999px;
9190
9213
  background: rgba(0, 0, 0, 0.6);
@@ -12908,23 +12931,6 @@ audio.remote-player {
12908
12931
  flex-shrink: 0;
12909
12932
  scrollbar-width: thin;
12910
12933
  }
12911
- .chat-history-status {
12912
- display: flex;
12913
- flex: 0 0 auto;
12914
- align-items: center;
12915
- gap: 0.5rem;
12916
- padding: 0.5rem 0.75rem;
12917
- border-bottom: 1px solid var(--border);
12918
- color: var(--text);
12919
- background: var(--chat-sidebar);
12920
- font-size: 0.85rem;
12921
- }
12922
- .chat-history-status span {
12923
- flex: 1;
12924
- }
12925
- .chat-history-status button {
12926
- flex-shrink: 0;
12927
- }
12928
12934
  .calls-content {
12929
12935
  min-height: 12rem;
12930
12936
  }
@@ -12955,6 +12961,8 @@ audio.remote-player {
12955
12961
  }
12956
12962
  /* Default dark controls use neutral surfaces and white line icons. */
12957
12963
  :root[data-theme='dark'][data-skin='t3'] {
12964
+ --msg-select-overlay: rgba(255, 255, 255, 0.16);
12965
+ --msg-select-check: #fff;
12958
12966
  --bg: #08090b;
12959
12967
  --bg-elev: #121315;
12960
12968
  --bg-active: #292a2d;
@@ -13094,3 +13102,20 @@ main[data-view='operator']:has(> .operator-workspace) {
13094
13102
  .marketplace-account {
13095
13103
  overflow-wrap: anywhere;
13096
13104
  }
13105
+
13106
+ .automation-state {
13107
+ display: block;
13108
+ font-weight: 600;
13109
+ color: var(--text);
13110
+ }
13111
+ .automation-active-count {
13112
+ border-radius: 50%;
13113
+ background: var(--text);
13114
+ color: var(--bg);
13115
+ min-width: 1.4em;
13116
+ text-align: center;
13117
+ }
13118
+
13119
+ :root[data-theme='dark'][data-skin='t3'] .bubble-check.is-checked {
13120
+ color: #000;
13121
+ }