@cccarv82/freya 1.0.38 → 1.0.40

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.
package/cli/web-ui.css CHANGED
@@ -42,6 +42,23 @@
42
42
 
43
43
  * { box-sizing: border-box; }
44
44
 
45
+ /* Subtle themed scrollbars (best-effort) */
46
+ * { scrollbar-color: rgba(17,24,39,.32) transparent; scrollbar-width: thin; }
47
+ [data-theme="dark"] * { scrollbar-color: rgba(229,231,235,.28) transparent; }
48
+
49
+ *::-webkit-scrollbar { width: 10px; height: 10px; }
50
+ *::-webkit-scrollbar-track { background: transparent; }
51
+ *::-webkit-scrollbar-thumb {
52
+ background: rgba(17,24,39,.18);
53
+ border: 3px solid transparent;
54
+ background-clip: content-box;
55
+ border-radius: 999px;
56
+ }
57
+ [data-theme="dark"] *::-webkit-scrollbar-thumb { background: rgba(229,231,235,.16); }
58
+ *::-webkit-scrollbar-thumb:hover { background: rgba(17,24,39,.28); }
59
+ [data-theme="dark"] *::-webkit-scrollbar-thumb:hover { background: rgba(229,231,235,.26); }
60
+
61
+
45
62
  body {
46
63
  margin: 0;
47
64
  font-family: var(--sans);
@@ -67,7 +84,8 @@ body {
67
84
  .shell {
68
85
  display: grid;
69
86
  grid-template-columns: 290px minmax(520px, 1fr) 380px;
70
- min-height: calc(100vh - 36px);
87
+ height: calc(100vh - 36px);
88
+ min-height: 0;
71
89
  }
72
90
 
73
91
  @media (max-width: 1200px) {
@@ -82,6 +100,8 @@ body {
82
100
 
83
101
  /* LEFT */
84
102
  .sidebar {
103
+ overflow: auto;
104
+ min-height: 0;
85
105
  background: linear-gradient(180deg, rgba(255,250,242,.85), rgba(255,250,242,.60));
86
106
  border-right: 1px solid var(--line);
87
107
  padding: 14px;
@@ -164,7 +184,12 @@ body {
164
184
  .miniIcon.warn { background: var(--chip2); color: var(--accent); }
165
185
 
166
186
  /* CENTER */
167
- .center { background: rgba(255, 250, 242, .58); }
187
+ .center {
188
+ background: rgba(255, 250, 242, .58);
189
+ display: flex;
190
+ flex-direction: column;
191
+ min-height: 0;
192
+ }
168
193
  [data-theme="dark"] .center { background: rgba(10, 14, 26, .55); }
169
194
 
170
195
  .topbar {
@@ -185,14 +210,28 @@ body {
185
210
  [data-theme="dark"] .chip { background: rgba(0,0,0,.20); }
186
211
  .toggle { border: 1px solid var(--line); border-radius: 999px; background: var(--paper2); padding: 7px 10px; cursor: pointer; color: var(--muted); font-weight: 800; font-size: 12px; }
187
212
 
188
- .centerBody { padding: 16px; }
213
+ .centerBody {
214
+ padding: 16px;
215
+ display: flex;
216
+ flex-direction: column;
217
+ min-height: 0;
218
+ overflow: hidden;
219
+ }
189
220
  .centerHead { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 14px; }
190
221
  .statusLine { display:flex; align-items:center; justify-content:flex-end; gap: 12px; }
191
222
 
192
223
  h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; }
193
224
  .subtitle { margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.4; max-width: 860px; }
194
225
 
195
- .midGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
226
+ .midGrid {
227
+ display: grid;
228
+ grid-template-columns: 1fr 1fr;
229
+ gap: 14px;
230
+ flex: 1;
231
+ min-height: 0;
232
+ overflow: auto;
233
+ padding-right: 2px; /* avoid scrollbar overlay clipping */
234
+ }
196
235
  .midSpan { grid-column: 1 / -1; }
197
236
  @media (max-width: 980px) {
198
237
  .midGrid { grid-template-columns: 1fr; }
@@ -296,6 +335,8 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
296
335
  background: linear-gradient(180deg, rgba(255,250,242,.82), rgba(255,250,242,.60));
297
336
  display: grid;
298
337
  grid-template-rows: auto 1fr auto;
338
+ overflow: hidden;
339
+ min-height: 0;
299
340
  }
300
341
  [data-theme="dark"] .chatPane {
301
342
  background: linear-gradient(180deg, rgba(17,24,39,.92), rgba(17,24,39,.68));
@@ -308,9 +349,11 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
308
349
  .chatThread {
309
350
  padding: 14px;
310
351
  overflow: auto;
352
+ min-height: 0;
311
353
  display: flex;
312
354
  flex-direction: column;
313
355
  gap: 10px;
356
+ overscroll-behavior: contain;
314
357
  }
315
358
 
316
359
  .bubble {
@@ -322,7 +365,20 @@ textarea:focus { box-shadow: var(--ring); border-color: rgba(37,99,235,.35); }
322
365
  }
323
366
 
324
367
  .bubble .bubbleMeta { font-size: 11px; font-weight: 900; color: var(--faint); margin-bottom: 6px; }
325
- .bubble .bubbleBody { font-size: 13px; line-height: 1.45; color: var(--text); }
368
+ .bubble .bubbleBody {
369
+ font-size: 13px;
370
+ line-height: 1.45;
371
+ color: var(--text);
372
+ overflow-wrap: anywhere;
373
+ word-break: break-word;
374
+ }
375
+
376
+ /* Prevent horizontal scroll in chat bubbles when showing JSON/markdown/code */
377
+ .bubble pre, .bubble code {
378
+ white-space: pre-wrap;
379
+ word-break: break-word;
380
+ overflow-x: hidden;
381
+ }
326
382
 
327
383
  .bubble.user {
328
384
  align-self: flex-end;
package/cli/web-ui.js CHANGED
@@ -843,6 +843,11 @@
843
843
 
844
844
  setOut(msg);
845
845
  chatAppend('assistant', msg, { markdown: true });
846
+
847
+ // After apply, refresh panels so the UI reflects the new state (tasks/blockers/reports)
848
+ try { await refreshToday(); } catch {}
849
+ try { await refreshReports({ selectLatest: true }); } catch {}
850
+
846
851
  setPill('ok', 'applied');
847
852
  setTimeout(() => setPill('ok', 'pronto'), 800);
848
853
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cccarv82/freya",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "description": "Personal AI Assistant with local-first persistence",
5
5
  "scripts": {
6
6
  "health": "node scripts/validate-data.js",