viveworker 0.7.0-beta.2 → 0.7.0

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.
@@ -101,3 +101,7 @@ APP_SERVER_NOTIFY_COMPLETIONS=0
101
101
  # hazBase wallet / x402 backend
102
102
  HAZBASE_API_URL=https://api.hazbase.com
103
103
  HAZBASE_DEVICE_LABEL=viveworker
104
+ # Require paired-device approval before `viveworker share pay` signs x402
105
+ # payments. Set to 0 only for trusted smoke tests / CI.
106
+ VIVEWORKER_PAYMENT_APPROVALS=1
107
+ VIVEWORKER_PAYMENT_APPROVAL_TIMEOUT_SEC=600
package/web/app.css CHANGED
@@ -33,10 +33,16 @@
33
33
  }
34
34
 
35
35
  html {
36
+ width: 100%;
37
+ max-width: 100%;
38
+ overflow-x: hidden;
36
39
  background: var(--bg);
37
40
  }
38
41
 
39
42
  body {
43
+ width: 100%;
44
+ max-width: 100%;
45
+ min-width: 0;
40
46
  margin: 0;
41
47
  min-height: 100vh;
42
48
  overflow-x: hidden;
@@ -63,8 +69,17 @@ code {
63
69
  background: rgba(156, 181, 197, 0.12);
64
70
  }
65
71
 
72
+ #app {
73
+ width: 100%;
74
+ max-width: 100%;
75
+ min-width: 0;
76
+ }
77
+
66
78
  .app-shell {
79
+ width: 100%;
80
+ max-width: 100%;
67
81
  min-height: 100vh;
82
+ overflow-x: clip;
68
83
  padding:
69
84
  max(1rem, env(safe-area-inset-top))
70
85
  1rem
@@ -389,6 +404,8 @@ code {
389
404
  }
390
405
 
391
406
  .app-main {
407
+ width: 100%;
408
+ max-width: 100%;
392
409
  display: grid;
393
410
  gap: 1rem;
394
411
  min-width: 0;
@@ -403,6 +420,16 @@ code {
403
420
  .choice-stack {
404
421
  display: grid;
405
422
  gap: 1rem;
423
+ min-width: 0;
424
+ max-width: 100%;
425
+ }
426
+
427
+ .timeline-shell,
428
+ .timeline-list,
429
+ .timeline-thread-filter,
430
+ .timeline-thread-filter__row {
431
+ min-width: 0;
432
+ max-width: 100%;
406
433
  }
407
434
 
408
435
  .detail-shell,
@@ -892,12 +919,37 @@ code {
892
919
  gap: 0.18rem;
893
920
  }
894
921
 
922
+ .settings-row__title-line {
923
+ min-width: 0;
924
+ display: inline-flex;
925
+ align-items: center;
926
+ gap: 0.42rem;
927
+ }
928
+
895
929
  .settings-row__title,
896
930
  .settings-info-row__label {
931
+ min-width: 0;
897
932
  font-size: 1rem;
898
933
  line-height: 1.3;
899
934
  }
900
935
 
936
+ .settings-row__badge {
937
+ flex: 0 0 auto;
938
+ display: inline-flex;
939
+ align-items: center;
940
+ min-height: 1.18rem;
941
+ padding: 0.08rem 0.42rem 0.1rem;
942
+ border-radius: 999px;
943
+ border: 1px solid rgba(240, 180, 40, 0.26);
944
+ background: rgba(240, 180, 40, 0.11);
945
+ color: rgba(255, 220, 140, 0.96);
946
+ font-size: 0.66rem;
947
+ font-weight: 800;
948
+ letter-spacing: 0.04em;
949
+ line-height: 1;
950
+ text-transform: uppercase;
951
+ }
952
+
901
953
  .settings-row__subtitle {
902
954
  color: var(--muted);
903
955
  font-size: 0.84rem;
@@ -1117,6 +1169,11 @@ code {
1117
1169
  background: linear-gradient(180deg, rgba(28, 40, 49, 0.98), rgba(20, 27, 34, 0.96));
1118
1170
  }
1119
1171
 
1172
+ .wallet-flow-banner--session-expired {
1173
+ border-color: rgba(255, 190, 92, 0.28);
1174
+ background: linear-gradient(180deg, rgba(49, 39, 28, 0.98), rgba(24, 28, 30, 0.96));
1175
+ }
1176
+
1120
1177
  .wallet-flow-banner__eyebrow {
1121
1178
  margin: 0;
1122
1179
  font-size: 0.72rem;
@@ -1232,6 +1289,42 @@ code {
1232
1289
  background: rgba(53, 26, 29, 0.96);
1233
1290
  }
1234
1291
 
1292
+ .wallet-beta-notice {
1293
+ border-color: rgba(240, 180, 40, 0.18);
1294
+ background: rgba(42, 34, 22, 0.78);
1295
+ }
1296
+
1297
+ .wallet-beta-notice p {
1298
+ margin: 0;
1299
+ color: rgba(255, 220, 140, 0.9);
1300
+ font-size: 0.84rem;
1301
+ line-height: 1.5;
1302
+ }
1303
+
1304
+ .settings-update-notice {
1305
+ margin-top: 0.85rem;
1306
+ border-color: rgba(121, 196, 255, 0.22);
1307
+ background: linear-gradient(180deg, rgba(28, 40, 49, 0.98), rgba(20, 27, 34, 0.96));
1308
+ }
1309
+
1310
+ .settings-update-notice__title {
1311
+ margin: 0;
1312
+ font-weight: 700;
1313
+ color: var(--text);
1314
+ }
1315
+
1316
+ .settings-update-notice__command {
1317
+ display: block;
1318
+ width: fit-content;
1319
+ max-width: 100%;
1320
+ margin-top: 0.35rem;
1321
+ padding: 0.32rem 0.5rem;
1322
+ border-radius: 10px;
1323
+ background: rgba(3, 10, 16, 0.38);
1324
+ color: rgba(233, 247, 255, 0.92);
1325
+ overflow-wrap: anywhere;
1326
+ }
1327
+
1235
1328
  /* Brand attribution at the very bottom of the wallet settings page.
1236
1329
  Sits below the advanced-actions panel as plain small text so it reads
1237
1330
  as a credit, not another card. The link inherits the muted color and
@@ -1292,7 +1385,8 @@ code {
1292
1385
  border-color: rgba(112, 202, 157, 0.16);
1293
1386
  }
1294
1387
 
1295
- .wallet-step-card--locked {
1388
+ .wallet-step-card--locked,
1389
+ .wallet-step-card--comingSoon {
1296
1390
  opacity: 0.78;
1297
1391
  }
1298
1392
 
@@ -1379,7 +1473,8 @@ code {
1379
1473
  color: rgba(205, 220, 231, 0.6);
1380
1474
  }
1381
1475
 
1382
- .wallet-step-card__status--optional {
1476
+ .wallet-step-card__status--optional,
1477
+ .wallet-step-card__status--comingSoon {
1383
1478
  border-color: rgba(240, 180, 40, 0.22);
1384
1479
  background: rgba(240, 180, 40, 0.12);
1385
1480
  color: rgba(255, 220, 140, 0.96);
@@ -1706,12 +1801,17 @@ code {
1706
1801
  }
1707
1802
 
1708
1803
  .card-list {
1804
+ width: 100%;
1805
+ max-width: 100%;
1806
+ min-width: 0;
1709
1807
  display: grid;
1710
1808
  gap: 0.85rem;
1711
1809
  }
1712
1810
 
1713
1811
  .item-card {
1714
1812
  width: 100%;
1813
+ min-width: 0;
1814
+ overflow: hidden;
1715
1815
  display: grid;
1716
1816
  gap: 0.8rem;
1717
1817
  padding: 0.95rem;
@@ -1725,6 +1825,7 @@ code {
1725
1825
  }
1726
1826
 
1727
1827
  .item-card__header {
1828
+ min-width: 0;
1728
1829
  display: flex;
1729
1830
  justify-content: space-between;
1730
1831
  gap: 0.8rem;
@@ -1732,11 +1833,12 @@ code {
1732
1833
  }
1733
1834
 
1734
1835
  .item-card__header-right {
1836
+ flex: 0 0 auto;
1735
1837
  display: inline-flex;
1736
1838
  align-items: center;
1737
1839
  justify-content: flex-end;
1738
1840
  gap: 0.55rem;
1739
- min-width: fit-content;
1841
+ min-width: 0;
1740
1842
  }
1741
1843
 
1742
1844
  .item-card__header--completion-readonly {
@@ -1746,18 +1848,21 @@ code {
1746
1848
 
1747
1849
  .item-card__meta,
1748
1850
  .detail-pills {
1851
+ min-width: 0;
1749
1852
  display: flex;
1750
1853
  flex-wrap: wrap;
1751
1854
  gap: 0.55rem;
1752
1855
  }
1753
1856
 
1754
1857
  .item-card__content {
1858
+ min-width: 0;
1755
1859
  display: grid;
1756
1860
  gap: 0.38rem;
1757
1861
  }
1758
1862
 
1759
1863
  .item-card__intent,
1760
1864
  .detail-intent {
1865
+ min-width: 0;
1761
1866
  margin: 0;
1762
1867
  display: inline-flex;
1763
1868
  align-items: center;
@@ -1765,6 +1870,7 @@ code {
1765
1870
  color: rgba(236, 248, 255, 0.86);
1766
1871
  font-size: 0.84rem;
1767
1872
  line-height: 1.35;
1873
+ overflow-wrap: anywhere;
1768
1874
  }
1769
1875
 
1770
1876
  .item-card__intent {
@@ -1781,6 +1887,7 @@ code {
1781
1887
  }
1782
1888
 
1783
1889
  .item-card__title {
1890
+ min-width: 0;
1784
1891
  margin: 0;
1785
1892
  font-size: 1.08rem;
1786
1893
  line-height: 1.35;
@@ -1788,6 +1895,7 @@ code {
1788
1895
  }
1789
1896
 
1790
1897
  .item-card__summary {
1898
+ min-width: 0;
1791
1899
  margin: 0;
1792
1900
  color: var(--muted);
1793
1901
  line-height: 1.45;
@@ -1799,6 +1907,7 @@ code {
1799
1907
  }
1800
1908
 
1801
1909
  .item-card__thread {
1910
+ min-width: 0;
1802
1911
  margin: 0;
1803
1912
  color: var(--muted);
1804
1913
  font-size: 0.82rem;
@@ -2072,6 +2181,8 @@ code {
2072
2181
 
2073
2182
  .timeline-entry {
2074
2183
  width: 100%;
2184
+ min-width: 0;
2185
+ overflow: hidden;
2075
2186
  display: grid;
2076
2187
  gap: 0.55rem;
2077
2188
  padding: 0.92rem;
@@ -2259,6 +2370,7 @@ code {
2259
2370
  }
2260
2371
 
2261
2372
  .timeline-entry__meta {
2373
+ min-width: 0;
2262
2374
  display: grid;
2263
2375
  grid-template-columns: minmax(0, 1fr) auto;
2264
2376
  gap: 0.75rem;
@@ -2276,6 +2388,7 @@ code {
2276
2388
  min-width: 0;
2277
2389
  display: inline-flex;
2278
2390
  align-items: center;
2391
+ flex-wrap: wrap;
2279
2392
  gap: 0.42rem;
2280
2393
  color: #edf8ff;
2281
2394
  font-size: 0.8rem;
@@ -2309,6 +2422,7 @@ code {
2309
2422
  }
2310
2423
 
2311
2424
  .timeline-entry__body {
2425
+ min-width: 0;
2312
2426
  display: grid;
2313
2427
  gap: 0.34rem;
2314
2428
  }
@@ -2379,6 +2493,7 @@ code {
2379
2493
 
2380
2494
  .timeline-entry__title,
2381
2495
  .timeline-entry__summary {
2496
+ min-width: 0;
2382
2497
  margin: 0;
2383
2498
  overflow-wrap: anywhere;
2384
2499
  }
@@ -4692,7 +4807,9 @@ button[aria-busy="true"]:not(.is-loading) {
4692
4807
  }
4693
4808
 
4694
4809
  .provider-filter {
4695
- display: inline-flex;
4810
+ width: 100%;
4811
+ min-width: 0;
4812
+ display: flex;
4696
4813
  align-items: center;
4697
4814
  gap: 0.25rem;
4698
4815
  padding: 0.2rem;
@@ -4703,8 +4820,13 @@ button[aria-busy="true"]:not(.is-loading) {
4703
4820
  max-width: 100%;
4704
4821
  overflow-x: auto;
4705
4822
  -webkit-overflow-scrolling: touch;
4823
+ scrollbar-width: none;
4824
+ }
4825
+ .provider-filter::-webkit-scrollbar {
4826
+ display: none;
4706
4827
  }
4707
4828
  .provider-filter__button {
4829
+ min-width: 0;
4708
4830
  appearance: none;
4709
4831
  background: transparent;
4710
4832
  color: var(--text-muted, #9aa6b2);