@lamemind/loom-deck 0.18.0 → 0.18.1
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/dist/sessions.js +9 -2
- package/dist/task-index.js +8 -1
- package/package.json +1 -1
package/dist/sessions.js
CHANGED
|
@@ -231,8 +231,15 @@ export function parseTranscript(content, path, mtime, sizeBytes) {
|
|
|
231
231
|
sizeBytes,
|
|
232
232
|
turns,
|
|
233
233
|
customTitle,
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
// Sanificati come il titolo, e per lo stesso motivo: le due preview del
|
|
235
|
+
// detail pane sono testo di transcript messo NEL FRAME. Erano l'ultimo
|
|
236
|
+
// varco rimasto — un `✅` (BMP largo 2) nell'estratto prende una cella
|
|
237
|
+
// sola nella griglia di Ink e due colonne sul terminale, quindi la riga
|
|
238
|
+
// scivola a destra e si mangia il bordo del pane. Qui il confine è lo
|
|
239
|
+
// stesso di `title`, non il render: `wrapLines` conta le colonne su questo
|
|
240
|
+
// testo, sanificare a valle sposterebbe l'a-capo già calcolato.
|
|
241
|
+
firstPrompt: sanitize(firstUserText),
|
|
242
|
+
lastReply: sanitize(lastAssistantText),
|
|
236
243
|
bodies,
|
|
237
244
|
};
|
|
238
245
|
}
|
package/dist/task-index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { appendFileSync, mkdirSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
|
+
import { sanitize } from './width.js';
|
|
3
4
|
export function taskIndexPath(projectRoot) {
|
|
4
5
|
return join(projectRoot, '.claude', 'loom', 'session-tasks.jsonl');
|
|
5
6
|
}
|
|
@@ -60,8 +61,14 @@ export function loadSessionIndex(projectRoot) {
|
|
|
60
61
|
// nota vuota da mostrare. Il `typeof` esclude i record senza il campo, che
|
|
61
62
|
// non devono toccare una nota scritta da un record precedente.
|
|
62
63
|
if (typeof d.note === 'string') {
|
|
64
|
+
// Sanificata in lettura, non solo alla digitazione: `sanitizeTyped`
|
|
65
|
+
// toglie i byte di controllo ma non ripara la larghezza, e il file è
|
|
66
|
+
// editabile a mano — una nota con un `✅` finirebbe nel frame larga il
|
|
67
|
+
// doppio di quanto Ink ha contato. Il round-trip (edit di una nota già
|
|
68
|
+
// sanificata → riscrittura del sostituto) è il prezzo accettato: a
|
|
69
|
+
// schermo il glifo originale non era comunque disegnabile.
|
|
63
70
|
if (d.note)
|
|
64
|
-
notes.set(d.sessionId, d.note);
|
|
71
|
+
notes.set(d.sessionId, sanitize(d.note));
|
|
65
72
|
else
|
|
66
73
|
notes.delete(d.sessionId);
|
|
67
74
|
}
|
package/package.json
CHANGED