bunnyquery 1.9.7 → 1.10.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.
package/src/widget.css CHANGED
@@ -659,23 +659,42 @@
659
659
  background: var(--bq-paper);
660
660
  }
661
661
 
662
+ /* ZERO HEIGHT IN FLOW, DELIBERATELY. Mirrors agent.vue, where the reasoning is
663
+ written out in full: this bar mounts when a history fetch starts and unmounts
664
+ when the page lands, both while the reader sits at the top of the list, and as
665
+ an in-flow sticky element it moved every row by its own height each time
666
+ (measured in Chrome with overflow-anchor:none). The outer box now contributes
667
+ nothing to layout and the inner strip overflows it, so the bar still sits
668
+ pinned at the top of the viewport while mounting it moves nothing. */
662
669
  .bq-history-loading {
663
670
  position: sticky;
664
671
  top: 0;
665
672
  z-index: 1;
673
+ height: 0;
674
+ padding: 0;
675
+ overflow: visible;
676
+ pointer-events: none;
677
+ }
678
+ .bq-history-loading-inner {
666
679
  display: flex;
680
+ align-items: center;
667
681
  justify-content: center;
668
682
  gap: 0.1em;
669
683
  padding: 0.5rem 0 1rem;
670
684
  font-size: 0.8rem;
671
685
  color: var(--bq-muted);
672
- background: var(--bq-paper);
686
+ background: linear-gradient(to bottom, var(--bq-paper) 70%, transparent);
673
687
  }
674
- /* initial first-page load: center it in the (empty) messages area */
688
+ /* initial first-page load: center it in the (empty) messages area. A full-box
689
+ overlay rather than a top strip, so it takes its height back - and it replaces
690
+ an EMPTY messages area, so it has nothing to move. */
675
691
  .bq-history-loading.is-initial {
676
692
  position: absolute;
677
693
  inset: 0;
694
+ height: auto;
695
+ display: flex;
678
696
  align-items: center;
697
+ justify-content: center;
679
698
  padding: 0;
680
699
  }
681
700
 
package/styles/chat.css CHANGED
@@ -154,6 +154,38 @@
154
154
  .bq-cancel-queue-btn:hover:not(.is-disabled) { background: var(--bq-warning-bg); color: var(--bq-warning); }
155
155
  .bq-cancel-queue-btn.is-disabled { opacity: 0.3; cursor: not-allowed; pointer-events: none; }
156
156
 
157
+ /* ---- unfinalized streamed answer (ask for it) ----------------------------
158
+ A turn whose answer was streamed and never finalized keeps its bytes in the
159
+ chunk store, and this bubble is what the reader gets when nothing is currently
160
+ fetching them: the per-load recovery cap left this one behind, or a read failed.
161
+ It is deliberately NOT the danger red of an error bubble - nothing is broken and
162
+ nothing is lost, the answer is simply not here yet - and deliberately not a
163
+ spinner, which would promise an arrival nobody has scheduled. Shared by both
164
+ chatboxes (this file is bunnyquery/styles/chat.css, which agent.vue imports). */
165
+ .bq-stream-recover-note {
166
+ display: block;
167
+ font-size: 0.72rem;
168
+ color: var(--bq-muted);
169
+ font-style: italic;
170
+ }
171
+ .bq-bubble.is-stream-failed .bq-stream-recover-note { color: var(--bq-warning); }
172
+ .bq-stream-recover-btn {
173
+ display: inline-block;
174
+ margin-top: 0.4rem;
175
+ padding: 0.18rem 0.55rem;
176
+ min-height: 0;
177
+ border: 1px solid var(--bq-line);
178
+ background: transparent;
179
+ color: inherit;
180
+ font-size: 0.72rem;
181
+ line-height: 1.3;
182
+ cursor: pointer;
183
+ box-shadow: none;
184
+ border-radius: 0;
185
+ }
186
+ .bq-stream-recover-btn:hover { background: rgba(127, 127, 127, 0.12); }
187
+ .bq-bubble.is-stream-failed .bq-stream-recover-btn { border-color: var(--bq-warning-border); color: var(--bq-warning); }
188
+
157
189
  /* ---- collapsed background-indexing group ---------------------------------*/
158
190
  /* One file's many indexing passes (first pass + every CONTINUE pass, each with
159
191
  a request AND a response bubble) render as a single status row instead of