typebulb 0.24.0 → 0.24.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.
@@ -2217,7 +2217,7 @@ var Patcher = class _Patcher {
2217
2217
 
2218
2218
  // cli/agents/pi/server/piPatcherExtension.ts
2219
2219
  var DESCRIPTION = true ? "Apply unified diffs to files \u2014 tolerant of form, strict about intent. Repairs sloppy AI-generated diffs (mangled headers, whitespace drift, missing prefixes; line numbers can be wrong or absent \u2014 hunks anchor by fuzzy-matched context lines) and applies all hunks atomically when the intent is unambiguous; fails with a precise, typed error when it isn't. Use for multi-hunk edits in one step, or when exact string-replacement editing fails on whitespace or invisible characters." : "Apply unified diffs to files.";
2220
- var BUILD_TAG = true ? "matchu-patchu-pi 0.2.0, built 2026-07-11 18:27:45" : "matchu-patchu-pi dev";
2220
+ var BUILD_TAG = true ? "matchu-patchu-pi 0.2.0, built 2026-07-12 21:55:42" : "matchu-patchu-pi dev";
2221
2221
  var errorBlocks = (errors) => {
2222
2222
  const parts = [`Patch failed with ${errors.length} error(s):`];
2223
2223
  for (const e of errors) parts.push("", e.toString());
@@ -446,6 +446,9 @@ body {
446
446
  jumps as the filtered list changes height; the row list scrolls inside the capped box, resting at
447
447
  its end (newest-at-bottom) — same shape as the launcher's .servers-pop / .bulb-list. */
448
448
  .picker-list { display: flex; flex-direction: column; gap: .15rem; flex: 1; min-height: 0; overflow-y: auto; padding-right: 4px; }
449
+ /* Positioned wrapper around just the list (not the filter) so the hover-peek card anchors to the
450
+ list's bottom edge, sitting above the filter input. */
451
+ .picker-body { position: relative; flex: 1; min-height: 0; display: flex; flex-direction: column; }
449
452
  .picker-empty { padding: .8rem; color: var(--muted); font-size: .85rem; text-align: center; }
450
453
  .picker-row {
451
454
  display: flex;
@@ -491,6 +494,9 @@ body {
491
494
  font-size: .72rem;
492
495
  min-width: 2.6rem; text-align: right;
493
496
  }
497
+ /* Unread cue (TB-Agent-Mirror-Ready.md): the row's time turns the launcher's running-:port green
498
+ (--fold-marker) when the session changed since the mirror opened and hasn't been viewed. */
499
+ .picker-time.unseen { color: var(--fold-marker); }
494
500
  .picker-hits { color: var(--muted); font-size: .72rem; white-space: nowrap; }
495
501
  /* Full-text result context: first matching turn, indented past the dot gutter into the title column. */
496
502
  .picker-snippet {
@@ -505,6 +511,29 @@ body {
505
511
  border-radius: 2px;
506
512
  color: var(--fg);
507
513
  }
514
+ /* Hover-peek (TB-Agent-Mirror-Ready.md): the session's last output, overlaid over the TOP of the
515
+ list — not a floating card but part of the menu, opaque over the rows it covers and set off from
516
+ the rows below by one thick divider. Stops at the left edge of the time column (right), so the
517
+ elapsed column stays an uninterrupted strip. The list rests newest-at-bottom, so a top overlay
518
+ rarely sits on the row being hovered. Out of flow (no reflow); pointer-events:none. */
519
+ .picker-peek {
520
+ position: absolute;
521
+ top: 0; left: 0; right: 3.4rem;
522
+ z-index: 5;
523
+ max-height: 18em;
524
+ overflow: hidden;
525
+ padding: .5rem .6rem .6rem;
526
+ border-radius: 8px 8px 0 0; /* top rounded to match the menu; bottom square where it meets the rows */
527
+ /* One veil step over the opaque panel — the mirror's nested-panel shade (a hair off the menu bg,
528
+ still opaque over the rows it covers). */
529
+ background: linear-gradient(var(--veil), var(--veil)), var(--panel);
530
+ border-bottom: 3px solid color-mix(in srgb, var(--fg) 35%, transparent);
531
+ color: var(--fg);
532
+ font-size: .8rem; line-height: 1.5;
533
+ overflow-wrap: anywhere;
534
+ pointer-events: none;
535
+ }
536
+ .picker-peek.muted { color: var(--muted); font-style: italic; }
508
537
 
509
538
  /* Agent switcher (TB-Agent-Switcher.md) — reuses the .picker popover + rows; just its own width and
510
539
  the no-key entry form. The active model is marked with .picker-row.current (the accent dot), like
@@ -1604,6 +1633,10 @@ html[data-theme="dark"] .masthead-logo.dark { display: block; }
1604
1633
  /* The <summary> toggle defaults to a text cursor — give it the pointer every other expandable uses. */
1605
1634
  .thinking summary { cursor: pointer; }
1606
1635
  .thinking pre { white-space: pre-wrap; }
1636
+ /* Streaming (draft) thinking: capped + scrollable at the bulb-streaming card's height — ambient
1637
+ progress, not reading material — stuck to the live edge unless the user scrolls up
1638
+ (#draftThinkingPre). Durable rows stay uncapped: finished thinking IS reading material. */
1639
+ .draft .thinking pre { max-height: 220px; overflow-y: auto; }
1607
1640
 
1608
1641
  /* Copy button: an .overlay-pill revealed on bubble-hover. */
1609
1642
  .bubble:hover .copy { opacity: 1; }