persnally 2.5.1 → 2.5.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.
@@ -55,13 +55,14 @@
55
55
  /* ── delta strip ── */
56
56
  .delta {
57
57
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r);
58
- padding: 14px 18px; margin-bottom: 32px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
58
+ padding: 14px 18px; margin-bottom: 32px; display: flex; flex-direction: column; align-items: flex-start; gap: 9px;
59
59
  }
60
- .delta .lead { font-size: 11px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--dim); white-space: nowrap; }
61
- .delta .items { display: flex; gap: 22px; flex-wrap: wrap; flex: 1; }
62
- .delta .di { font-size: 14px; color: var(--dim); }
60
+ .delta .lead { font-size: 11px; letter-spacing: 1.3px; text-transform: uppercase; color: var(--dim); }
61
+ .delta .items { font-size: 14px; line-height: 1.7; color: var(--dim); }
62
+ .delta .di { color: var(--dim); }
63
63
  .delta .di b { color: var(--text); font-weight: 600; }
64
64
  .delta .di .arr { color: var(--text); font-weight: 700; }
65
+ .delta .sep { color: var(--faint); }
65
66
 
66
67
  /* ── hero ── */
67
68
  .hero { margin-bottom: 8px; }
@@ -188,6 +189,8 @@
188
189
  .bar-track { width: 64px; }
189
190
  td { padding: 8px 6px; font-size: 13px; }
190
191
  .del { padding: 3px 7px; }
192
+ .delta .items { display: flex; flex-direction: column; gap: 6px; line-height: 1.45; }
193
+ .delta .sep { display: none; } /* stacked on phones — separators only read inline */
191
194
  }
192
195
  @media (prefers-reduced-motion: reduce) { .reveal { animation: none; opacity: 1; transform: none; } .read.fresh { animation: none; } }
193
196
  </style>
@@ -327,7 +330,7 @@ function renderDelta(topics, reads, assertions) {
327
330
  const na = assertions.filter(a => a.ts > now).length;
328
331
  if (na) items.push(`<span class="di"><b>${na}</b> new ${na>1?"patterns":"pattern"} noticed</span>`);
329
332
  if (!items.length) { el.className = "delta reveal"; el.innerHTML = `<span class="lead">all caught up</span><div class="items"><span class="di">steady since ${timeAgo(now)} — the engine keeps it current while you work.</span></div>`; return; }
330
- el.className = "delta reveal"; el.innerHTML = `<span class="lead">since you last looked</span><div class="items">${items.join("")}</div>`;
333
+ el.className = "delta reveal"; el.innerHTML = `<span class="lead">since you last looked</span><div class="items">${items.join(' <span class="sep">·</span> ')}</div>`;
331
334
  }
332
335
  function saveSnapshot(topics) { const w = {}; topics.forEach(t => w[t.topic_key]=t.weight); localStorage.setItem(SNAP_KEY, JSON.stringify({ t:new Date().toISOString(), weights:w })); }
333
336
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persnally",
3
- "version": "2.5.1",
3
+ "version": "2.5.2",
4
4
  "license": "FSL-1.1-MIT",
5
5
  "description": "Your own context engine — local-first, across every AI. So every AI finally knows you.",
6
6
  "type": "module",