dsh-ssh-tui 0.5.9 → 0.6.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.
Files changed (56) hide show
  1. package/README.en.md +28 -5
  2. package/README.md +76 -6
  3. package/lib/attach.js +156 -0
  4. package/lib/attach.js.map +1 -0
  5. package/lib/commands.js +73 -0
  6. package/lib/commands.js.map +1 -0
  7. package/lib/diag.js +292 -0
  8. package/lib/diag.js.map +1 -0
  9. package/lib/dialogs.js +82 -0
  10. package/lib/dialogs.js.map +1 -0
  11. package/lib/display-sock.js +304 -86
  12. package/lib/display-sock.js.map +1 -1
  13. package/lib/dsh-compat.js +25 -4
  14. package/lib/dsh-compat.js.map +1 -1
  15. package/lib/i18n/en.js +55 -0
  16. package/lib/i18n/en.js.map +1 -1
  17. package/lib/i18n/index.js +2 -0
  18. package/lib/i18n/index.js.map +1 -1
  19. package/lib/i18n/zh.js +55 -0
  20. package/lib/i18n/zh.js.map +1 -1
  21. package/lib/index.js +75 -73
  22. package/lib/index.js.map +1 -1
  23. package/lib/paint.js +20 -38
  24. package/lib/paint.js.map +1 -1
  25. package/lib/picker.js +152 -37
  26. package/lib/picker.js.map +1 -1
  27. package/lib/rows.js +120 -0
  28. package/lib/rows.js.map +1 -0
  29. package/lib/session-index.js +4 -1
  30. package/lib/session-index.js.map +1 -1
  31. package/lib/session-list.js +372 -167
  32. package/lib/session-list.js.map +1 -1
  33. package/lib/session-lock.js +20 -9
  34. package/lib/session-lock.js.map +1 -1
  35. package/lib/stats.js +136 -0
  36. package/lib/stats.js.map +1 -0
  37. package/lib/terminal-input.js +470 -0
  38. package/lib/terminal-input.js.map +1 -0
  39. package/lib/tui.js +257 -311
  40. package/lib/tui.js.map +1 -1
  41. package/lib/types/attach.d.ts +106 -0
  42. package/lib/types/commands.d.ts +103 -0
  43. package/lib/types/diag.d.ts +78 -0
  44. package/lib/types/dialogs.d.ts +79 -0
  45. package/lib/types/display-sock.d.ts +59 -3
  46. package/lib/types/dsh-compat.d.ts +7 -0
  47. package/lib/types/i18n/index.d.ts +4 -0
  48. package/lib/types/index.d.ts +8 -4
  49. package/lib/types/paint.d.ts +6 -3
  50. package/lib/types/picker.d.ts +27 -7
  51. package/lib/types/rows.d.ts +69 -0
  52. package/lib/types/session-list.d.ts +43 -3
  53. package/lib/types/stats.d.ts +98 -0
  54. package/lib/types/terminal-input.d.ts +164 -0
  55. package/lib/types/tui.d.ts +33 -8
  56. package/package.json +11 -5
package/lib/picker.js CHANGED
@@ -3,14 +3,17 @@
3
3
  * TUI mounts, so launching without an explicit session id lands on a choice
4
4
  * instead of a fresh main screen.
5
5
  *
6
- * The list itself is not capped. The visible page is always nine rows so
7
- * digits 1-9 map onto every on-screen item. Arrow keys move a highlight,
8
- * typing filters by title / id / cwd, and Enter confirms the focused row.
6
+ * Reading is lazy. The first page is inspected up front and only then painted,
7
+ * so nothing on screen is a raw id waiting to turn into a title; older sessions
8
+ * are read only when the user reaches for them pressing past the last row, or
9
+ * filtering, which has to look deeper than the rows on screen. The visible page
10
+ * is always nine rows so digits 1-9 map onto every on-screen item.
9
11
  */
10
12
  import { StringDecoder } from 'node:string_decoder';
11
- import { formatSessionTime, listResumableSessionsProgressive } from './session-list.js';
13
+ import { formatSessionTime, openResumableSessionPager, PICKER_PAGE_SIZE, } from './session-list.js';
12
14
  import { composePaintOutput, isEscapePrefix, pickerWindowStart } from './paint.js';
13
15
  import { truncateToWidth } from './term-text.js';
16
+ import { TerminalInputGuard } from './terminal-input.js';
14
17
  import { t } from './i18n/index.js';
15
18
  /**
16
19
  * Visible rows in the sliding window. Locked to nine so every on-screen
@@ -64,7 +67,49 @@ export function pickerStateUnchanged(previous, next) {
64
67
  && previous.cursor === next.cursor
65
68
  && previous.filterActive === next.filterActive
66
69
  && previous.sessions === next.sessions
67
- && previous.loading === next.loading;
70
+ && previous.loading === next.loading
71
+ && previous.more === next.more;
72
+ }
73
+ /**
74
+ * Whether this input asked for sessions the picker has not read yet.
75
+ *
76
+ * Older history is read lazily, so the trigger matters: while filtering, a page
77
+ * that leaves fewer matches than fit on screen is deepened (a search has to look
78
+ * past the rows on screen); otherwise the user has to press past the last loaded
79
+ * row — pressing Down at the end, PageDown, or End — before older sessions are
80
+ * read.
81
+ */
82
+ export function pickerWantsMorePage(input) {
83
+ if (input.more <= 0)
84
+ return false;
85
+ const windowSize = input.windowSize ?? SESSION_PICKER_WINDOW;
86
+ const nextFiltered = filterResumableSessions(input.next.sessions, input.next.query);
87
+ const filtering = input.next.filterActive || input.next.query !== '';
88
+ const downward = input.actions.some(action => action.type === 'end'
89
+ || (action.type === 'move' && action.delta > 0)
90
+ || (action.type === 'page' && action.delta > 0));
91
+ const atEnd = (state, filtered) => filtered.length > 0 && state.cursor >= filtered.length - 1;
92
+ if (filtering) {
93
+ // A search has to look past the rows on screen: while it has fewer matches
94
+ // than fit, keep reading. With a full page of matches it reads on only when
95
+ // the user asks for more — a press at the end of the matches, or End.
96
+ if (nextFiltered.length < windowSize)
97
+ return true;
98
+ return downward && atEnd(input.next, nextFiltered);
99
+ }
100
+ if (nextFiltered.length === 0) {
101
+ // Nothing to show yet (the pager never returns a short page on purpose, so
102
+ // this is the first load): keep reading instead of pretending history is
103
+ // over.
104
+ return true;
105
+ }
106
+ if (!atEnd(input.next, nextFiltered))
107
+ return false;
108
+ const previousFiltered = filterResumableSessions(input.previous.sessions, input.previous.query);
109
+ const wasAtEnd = atEnd(input.previous, previousFiltered);
110
+ // End is explicit ("show me the end"); otherwise the keypress only counts
111
+ // when the cursor was already parked on the last loaded row.
112
+ return input.actions.some(action => action.type === 'end') || (wasAtEnd && downward);
68
113
  }
69
114
  function resultFor(session) {
70
115
  return session.attach === undefined
@@ -293,10 +338,11 @@ export function splitPickerInput(text) {
293
338
  * unit; ordinary text is applied character by character so a pasted "fix 2"
294
339
  * types the digit instead of treating it as a 1-9 shortcut.
295
340
  */
296
- export function feedPicker(state, text, windowSize = SESSION_PICKER_WINDOW) {
341
+ export function feedPicker(state, text, windowSize = SESSION_PICKER_WINDOW, onAction) {
297
342
  let current = state;
298
343
  for (const unit of splitPickerInput(text)) {
299
344
  for (const action of actionsForInput(unit, current)) {
345
+ onAction?.(action);
300
346
  const step = stepPicker(current, action, windowSize);
301
347
  if (step.kind === 'done')
302
348
  return step;
@@ -310,7 +356,7 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
310
356
  return null;
311
357
  const stdin = options.stdin ?? process.stdin;
312
358
  const stdout = options.stdout ?? process.stdout;
313
- const listSessions = options.listSessions ?? listResumableSessionsProgressive;
359
+ const openPager = options.openPager ?? openResumableSessionPager;
314
360
  const useAltScreen = process.env.DSH_TUI_NO_ALT_SCREEN !== '1'
315
361
  && process.env.DSH_TUI_NO_ALT_SCREEN !== 'true';
316
362
  const decoder = new StringDecoder('utf8');
@@ -322,8 +368,6 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
322
368
  let previousRows = [];
323
369
  let previousWidth = 0;
324
370
  let previousHeight = 0;
325
- /** Whether a listing with titles has been painted at least once. */
326
- let listPainted = false;
327
371
  /**
328
372
  * Settled pickers must never paint again: the launcher process keeps owning
329
373
  * the TTY as the display relay, so a leaked frame would overwrite the TUI on
@@ -344,12 +388,17 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
344
388
  ? t('picker.filterHint')
345
389
  : t('picker.filter', { query: state.query === '' ? '▌' : `${state.query}▌` });
346
390
  lines.push(style(truncateToWidth(filterLine, width), filtering ? '36' : '90'));
391
+ const more = state.more ?? 0;
347
392
  lines.push(style(truncateToWidth(t('picker.count', {
348
393
  shown: filtered.length,
349
394
  total: state.sessions.length,
350
- }) + (state.loading === true ? t('picker.loading') : ''), width), '90'));
395
+ }) + (more > 0 ? t('picker.countMore', { count: more }) : '')
396
+ + (state.loading === true ? t('picker.loading') : ''), width), '90'));
351
397
  if (filtered.length === 0) {
352
- const empty = state.loading === true
398
+ // An empty list with history still unread is "loading", never "there is
399
+ // nothing": the pager reads on by itself until it has a row or the
400
+ // history is over.
401
+ const empty = state.loading === true || more > 0
353
402
  ? t('picker.loadingList')
354
403
  : state.query === ''
355
404
  ? t('picker.noneYet')
@@ -387,6 +436,11 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
387
436
  if (end < filtered.length) {
388
437
  lines.push(style(truncateToWidth(t('picker.moreBelow', { count: filtered.length - end }), width), '90'));
389
438
  }
439
+ else if (more > 0) {
440
+ // Everything read is on screen: say how to reach the rest instead of
441
+ // reading it now. Filtering looks deeper on its own (see `pump`).
442
+ lines.push(style(truncateToWidth(t('picker.loadMore', { count: more }), width), '90'));
443
+ }
390
444
  }
391
445
  lines.push('');
392
446
  lines.push(style(truncateToWidth(filtering ? t('picker.hintFilter') : t('picker.hint'), width), '36'));
@@ -423,7 +477,12 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
423
477
  /** Named so cleanup() can remove this exact listener, not a look-alike. */
424
478
  const onResize = () => { render(true); };
425
479
  return new Promise((resolve) => {
480
+ let pager;
481
+ let pageInFlight = false;
426
482
  let escapeBuffer = '';
483
+ // A cursor reply that outlived its probe would otherwise be typed into the
484
+ // filter as `[17;1R` and empty the list with a query nobody wrote.
485
+ const inputGuard = new TerminalInputGuard(text => handleKeys(text));
427
486
  let escapeTimer;
428
487
  const cleanup = (result) => {
429
488
  if (done)
@@ -431,6 +490,7 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
431
490
  done = true;
432
491
  if (escapeTimer !== undefined)
433
492
  clearTimeout(escapeTimer);
493
+ inputGuard.stop();
434
494
  signal?.removeEventListener('abort', onAbort);
435
495
  stdin.removeListener('data', onData);
436
496
  stdout.removeListener('resize', onResize);
@@ -455,7 +515,8 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
455
515
  const applyChunk = (text) => {
456
516
  const windowSize = pickerCapacity(Math.max(12, stdout.rows || 24));
457
517
  const previous = state;
458
- const step = feedPicker(state, text, windowSize);
518
+ const actions = [];
519
+ const step = feedPicker(state, text, windowSize, action => actions.push(action));
459
520
  if (step.kind === 'done') {
460
521
  cleanup(step.result);
461
522
  return;
@@ -464,12 +525,21 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
464
525
  if (done)
465
526
  return;
466
527
  // Held ↑/↓ at the ends used to ED2-clear the whole screen every repeat.
467
- if (pickerStateUnchanged(previous, state))
528
+ if (pickerStateUnchanged(previous, state)) {
529
+ pump(actions, previous);
468
530
  return;
531
+ }
469
532
  render();
533
+ pump(actions, previous);
470
534
  };
471
535
  const onData = (chunk) => {
472
- const combined = escapeBuffer + decoder.write(chunk);
536
+ const decoded = decoder.write(chunk);
537
+ if (decoded !== '')
538
+ inputGuard.push(decoded);
539
+ };
540
+ /** One decoded read, replies already removed. */
541
+ const handleKeys = (text) => {
542
+ const combined = escapeBuffer + text;
473
543
  escapeBuffer = '';
474
544
  if (escapeTimer !== undefined) {
475
545
  clearTimeout(escapeTimer);
@@ -514,28 +584,62 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
514
584
  cleanup(null);
515
585
  throw error;
516
586
  }
517
- const applyListing = (listing, final = false) => {
518
- if (done)
519
- return;
520
- // The first listing is a header sketch: a live Host is labelled with its
521
- // raw session id until its log has been inspected, and painting that
522
- // frame makes the user pick an id they cannot recognise (it reads as "a
523
- // session I did not ask for" jumping into the list). Hold the entries —
524
- // the loading line keeps the spot — until titles exist, but always paint
525
- // the final listing so an all-untitled history stays selectable.
526
- if (!listPainted && !final && !listing.sessions.some(session => session.label !== session.id))
527
- return;
528
- listPainted = true;
587
+ /** Paint a page: replace the loaded rows and keep the cursor on its row. */
588
+ const applyPage = (page) => {
589
+ // A page is steady by contract (every label resolved); hold back a
590
+ // placeholder anyway, so a future reader cannot put a raw id on screen
591
+ // that turns into a title a moment later.
592
+ const ready = page.sessions.filter(session => session.labelPending !== true);
529
593
  const focusedId = filterResumableSessions(state.sessions, state.query)[state.cursor]?.id;
530
- const nextFiltered = filterResumableSessions(listing.sessions, state.query);
594
+ const nextFiltered = filterResumableSessions(ready, state.query);
531
595
  state = {
532
596
  ...state,
533
- sessions: listing.sessions,
534
- loading: listing.pending,
597
+ sessions: ready,
598
+ loading: false,
599
+ more: page.remaining,
535
600
  cursor: retainCursor(focusedId, nextFiltered, state.cursor),
536
601
  };
537
602
  render();
538
603
  };
604
+ const loadPage = async () => {
605
+ if (done || pager === undefined || pageInFlight)
606
+ return;
607
+ pageInFlight = true;
608
+ state = { ...state, loading: true };
609
+ render();
610
+ try {
611
+ const page = await pager.page(PICKER_PAGE_SIZE);
612
+ pageInFlight = false;
613
+ if (done)
614
+ return;
615
+ applyPage(page);
616
+ // A filter that still has fewer matches than fit on screen keeps
617
+ // deepening; a plain page load stops here until the user asks again.
618
+ pump([], state);
619
+ }
620
+ catch {
621
+ // A read that failed must not leave the picker stuck on "loading…".
622
+ pageInFlight = false;
623
+ if (done)
624
+ return;
625
+ state = { ...state, loading: false, more: 0 };
626
+ render();
627
+ }
628
+ };
629
+ /**
630
+ * The one place that decides to read more history. Called after every
631
+ * applied input and after every page; `pickerWantsMorePage` holds the rule.
632
+ */
633
+ const pump = (actions, previous) => {
634
+ if (done || pager === undefined)
635
+ return;
636
+ const more = state.more ?? 0;
637
+ if (more <= 0)
638
+ return;
639
+ if (!pickerWantsMorePage({ previous, next: state, actions, more }))
640
+ return;
641
+ void loadPage();
642
+ };
539
643
  const startListing = async () => {
540
644
  let persistence = ctx.get('sessionPersistence');
541
645
  if (persistence === undefined) {
@@ -549,17 +653,28 @@ export async function showSessionPicker(ctx, color, signal, options = {}) {
549
653
  cleanup({ kind: 'new' });
550
654
  return;
551
655
  }
552
- const listing = await listSessions(persistence, '', {
553
- onUpdate: applyListing,
554
- });
555
- if (done)
656
+ pager = await openPager(persistence, '');
657
+ if (done || signal?.aborted)
556
658
  return;
557
- if (listing.complete.length === 0 && state.query === '') {
558
- cleanup({ kind: 'new' });
559
- stdout.write(t('picker.none'));
659
+ // The first page is read in full before anything is painted: every row
660
+ // on screen carries its real title, and no id is ever shown and then
661
+ // replaced a moment later.
662
+ const first = await pager.page(PICKER_PAGE_SIZE);
663
+ if (done || signal?.aborted)
664
+ return;
665
+ if (first.sessions.length === 0) {
666
+ if (first.done) {
667
+ cleanup({ kind: 'new' });
668
+ stdout.write(t('picker.none'));
669
+ return;
670
+ }
671
+ // Rows exist but none is showable yet: keep reading rather than telling
672
+ // the user their history is empty (and starting a fresh session).
673
+ applyPage(first);
674
+ void loadPage();
560
675
  return;
561
676
  }
562
- applyListing({ sessions: listing.complete, pending: false }, true);
677
+ applyPage(first);
563
678
  };
564
679
  void startListing().catch(() => {
565
680
  if (!done)
package/lib/picker.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"picker.js","sourceRoot":"","sources":["../src/picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"picker.js","sourceRoot":"","sources":["../src/picker.ts"],"names":[],"mappings":"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"}
package/lib/rows.js ADDED
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Transcript row storage and the window the paint loop shows.
3
+ *
4
+ * `tui.ts` keeps the row array (many call sites read it) but the operations that
5
+ * have rules — bounding memory, finding the card a tool result belongs to,
6
+ * merging repeated calls, choosing which slice of the transcript is on screen —
7
+ * live here, where they can be tested without a terminal or an agent.
8
+ */
9
+ import { planIsLive } from './plan.js';
10
+ import { canMergeToolCall, TOOL_FLIP_MS } from './tool-present.js';
11
+ /** Long sessions keep the newest rows; older ones are dropped from the front. */
12
+ export const MAX_TRANSCRIPT_ROWS = 5000;
13
+ /**
14
+ * Drop the oldest rows past `max` and report how many went. The caller owns the
15
+ * things that point at rows (the focused card, clickable maps), so they can be
16
+ * invalidated with that count.
17
+ */
18
+ export function boundTranscriptRows(rows, max = MAX_TRANSCRIPT_ROWS) {
19
+ if (rows.length <= max)
20
+ return 0;
21
+ const removed = rows.length - max;
22
+ rows.splice(0, removed);
23
+ return removed;
24
+ }
25
+ export function findToolRowByCallId(rows, callId) {
26
+ return rows.findLast((candidate) => candidate.kind === 'tool'
27
+ && (candidate.callId === callId || candidate.mergedCallIds?.includes(callId) === true));
28
+ }
29
+ /** The card a repeated call of the same tool should merge into, if any. */
30
+ export function findMergeableToolRow(rows, next) {
31
+ const previous = rows.findLast((candidate) => candidate.kind === 'tool');
32
+ return canMergeToolCall(previous, next) ? previous : undefined;
33
+ }
34
+ /**
35
+ * Fold a repeated call into the card that is already on screen: the card grows
36
+ * a repeat mark and starts over as `running`. `now` is passed in so the flip
37
+ * animation is testable.
38
+ */
39
+ export function mergeToolCard(previous, next, now, replaying = false) {
40
+ const ids = previous.mergedCallIds ?? [previous.callId];
41
+ if (!ids.includes(previous.callId))
42
+ ids.push(previous.callId);
43
+ if (!ids.includes(next.callId))
44
+ ids.push(next.callId);
45
+ previous.mergedCallIds = ids;
46
+ previous.callId = next.callId;
47
+ previous.name = next.name;
48
+ previous.args = next.args;
49
+ if (next.title !== '')
50
+ previous.title = next.title;
51
+ if (next.summary !== '')
52
+ previous.summary = next.summary;
53
+ if (next.diff !== undefined && next.diff.length > 0) {
54
+ previous.diff = (previous.repeats ?? 1) > 1 && previous.diff !== undefined && previous.diff.length > 0
55
+ ? [...previous.diff, ...next.diff]
56
+ : next.diff;
57
+ }
58
+ previous.status = 'running';
59
+ previous.output = '';
60
+ previous.exitCode = undefined;
61
+ previous.signal = undefined;
62
+ previous.repeats = (previous.repeats ?? 1) + 1;
63
+ if (!replaying)
64
+ previous.flipUntil = now + TOOL_FLIP_MS;
65
+ }
66
+ export function findLivePlanRow(rows) {
67
+ return rows.findLast((row) => row.kind === 'plan' && planIsLive(row));
68
+ }
69
+ /** Whether the plan card should open on its own when it has work left. */
70
+ export function planShouldDefaultExpand(plan) {
71
+ return plan.active === true
72
+ || plan.pending === true
73
+ || plan.todos.some(item => item.status === 'in_progress');
74
+ }
75
+ /** Older / finished plans stay in the scrolling transcript, greyed out. */
76
+ export function archiveStalePlans(rows, keep) {
77
+ for (const row of rows) {
78
+ if (row.kind !== 'plan' || row === keep)
79
+ continue;
80
+ if (row.archived === true)
81
+ continue;
82
+ row.archived = true;
83
+ row.active = false;
84
+ row.pending = false;
85
+ row.expanded = false;
86
+ }
87
+ }
88
+ /**
89
+ * Pick the slice of the transcript the terminal shows.
90
+ *
91
+ * `available` is the row budget the chrome left over; `reveal` is a row a fresh
92
+ * message wants on screen, which wins over the current scroll position. A
93
+ * transcript shorter than the budget is padded at the top so the prompt stays
94
+ * at the bottom instead of floating in the middle of the screen.
95
+ */
96
+ export function windowTranscript(input) {
97
+ const { lines, refs } = input;
98
+ const available = Math.max(0, input.available);
99
+ let scrollOffset = Math.max(0, input.scrollOffset);
100
+ const reveal = input.reveal;
101
+ if (reveal !== undefined) {
102
+ const first = refs.findIndex(ref => ref === reveal);
103
+ if (first !== -1) {
104
+ scrollOffset = Math.max(0, lines.length - available - first);
105
+ }
106
+ }
107
+ const maxOffset = Math.max(0, lines.length - available);
108
+ if (scrollOffset > maxOffset)
109
+ scrollOffset = maxOffset;
110
+ const start = Math.max(0, lines.length - available - scrollOffset);
111
+ const visibleLines = lines.slice(start, start + available);
112
+ const visibleRefs = refs.slice(start, start + available);
113
+ const padding = Math.max(0, available - visibleLines.length);
114
+ for (let index = 0; index < padding; index++) {
115
+ visibleLines.unshift('');
116
+ visibleRefs.unshift(undefined);
117
+ }
118
+ return { start, scrollOffset, visibleLines, visibleRefs, padding };
119
+ }
120
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../src/rows.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,10 @@ import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
7
7
  import { dirname, join } from 'node:path';
8
8
  import { statSync } from 'node:fs';
9
9
  import { persistenceLocate } from './dsh-compat.js';
10
- const INDEX_VERSION = 1;
10
+ // 2: `hasUserInput` now counts plugin-authored user messages too, so entries
11
+ // written by version 1 would keep those sessions hidden (and, before the blank
12
+ // rule changed, deletable).
13
+ const INDEX_VERSION = 2;
11
14
  /** First page of recent sessions inspected after the header sketch paints. */
12
15
  export const PICKER_PRIORITY_COUNT = 9;
13
16
  export function sessionIndexPath(dshHome = resolveDshHome()) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-index.js","sourceRoot":"","sources":["../src/session-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-index.js","sourceRoot":"","sources":["../src/session-index.ts"],"names":[],"mappings":"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"}