visionclaw 0.1.75 → 0.1.76
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/CHANGELOG.md +9 -0
- package/dist/obs/ui.d.ts.map +1 -1
- package/dist/obs/ui.js +25 -1
- package/dist/obs/ui.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [0.1.76](https://github.com/babelcloud/visionclaw/compare/v0.1.75...v0.1.76) (2026-03-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **ui:** add auto-scroll indicator to logs tab ([60f2eba](https://github.com/babelcloud/visionclaw/commit/60f2ebab83fca09b3443c3392c96b06f7b04a5bb))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
## [0.1.75](https://github.com/babelcloud/visionclaw/compare/v0.1.74...v0.1.75) (2026-03-03)
|
|
2
11
|
|
|
3
12
|
|
package/dist/obs/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,IAAI,MAAM,CA+4BxC"}
|
package/dist/obs/ui.js
CHANGED
|
@@ -91,6 +91,9 @@ export function renderIndexHtml() {
|
|
|
91
91
|
.tab { cursor: pointer; background: transparent; border: 1px solid transparent; color: var(--muted); padding: 5px 12px; border-radius: 8px; font-size: 12px; font-family: var(--sans); }
|
|
92
92
|
.tab:hover { background: rgba(255,255,255,0.06); color: var(--text); }
|
|
93
93
|
.tab.active { background: rgba(255,255,255,0.10); border-color: var(--border); color: var(--text); font-weight: 600; }
|
|
94
|
+
.scroll-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-left: 5px; vertical-align: middle; transition: background 0.2s; }
|
|
95
|
+
.scroll-dot.on { background: var(--good); box-shadow: 0 0 4px rgba(49,208,170,0.5); }
|
|
96
|
+
.scroll-dot.off { background: var(--warn); box-shadow: 0 0 4px rgba(255,204,102,0.4); }
|
|
94
97
|
.tab-content { display: none; }
|
|
95
98
|
.tab-content.visible { display: block; }
|
|
96
99
|
/* Resource view (memory / skills) */
|
|
@@ -170,7 +173,7 @@ export function renderIndexHtml() {
|
|
|
170
173
|
<section class="panel">
|
|
171
174
|
<div class="panel-head">
|
|
172
175
|
<div class="tabs">
|
|
173
|
-
<button class="tab active" id="tab-btn-logs">Logs
|
|
176
|
+
<button class="tab active" id="tab-btn-logs">Logs<span class="scroll-dot on" id="scroll-dot" title="Auto-scroll active"></span></button>
|
|
174
177
|
<button class="tab" id="tab-btn-memory">Memory</button>
|
|
175
178
|
<button class="tab" id="tab-btn-skills">Skills</button>
|
|
176
179
|
<button class="tab" id="tab-btn-config">Config</button>
|
|
@@ -215,6 +218,7 @@ export function renderIndexHtml() {
|
|
|
215
218
|
const $rawToggle = document.getElementById('rawToggle');
|
|
216
219
|
const $sse = document.getElementById('sse');
|
|
217
220
|
const $dot = document.getElementById('dot');
|
|
221
|
+
const $scrollDot = document.getElementById('scroll-dot');
|
|
218
222
|
|
|
219
223
|
const MAX = 300;
|
|
220
224
|
const COLLAPSE_AT = 260;
|
|
@@ -224,6 +228,23 @@ export function renderIndexHtml() {
|
|
|
224
228
|
let rawMode = false;
|
|
225
229
|
let autoScroll = true;
|
|
226
230
|
let programmaticScroll = false;
|
|
231
|
+
|
|
232
|
+
function syncAutoScrollIndicator() {
|
|
233
|
+
$scrollDot.classList.toggle('on', autoScroll);
|
|
234
|
+
$scrollDot.classList.toggle('off', !autoScroll);
|
|
235
|
+
$scrollDot.title = autoScroll ? 'Auto-scroll active' : 'Auto-scroll paused — click to resume';
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
$scrollDot.addEventListener('click', (e) => {
|
|
239
|
+
e.stopPropagation();
|
|
240
|
+
autoScroll = !autoScroll;
|
|
241
|
+
syncAutoScrollIndicator();
|
|
242
|
+
if (autoScroll) {
|
|
243
|
+
const target = rawMode ? $logsRaw : $logs;
|
|
244
|
+
programmaticScroll = true;
|
|
245
|
+
target.scrollTop = target.scrollHeight;
|
|
246
|
+
}
|
|
247
|
+
});
|
|
227
248
|
const rawLines = [];
|
|
228
249
|
|
|
229
250
|
function isNearBottom(el) {
|
|
@@ -477,7 +498,9 @@ export function renderIndexHtml() {
|
|
|
477
498
|
programmaticScroll = false;
|
|
478
499
|
return;
|
|
479
500
|
}
|
|
501
|
+
const was = autoScroll;
|
|
480
502
|
autoScroll = isNearBottom($logs);
|
|
503
|
+
if (was !== autoScroll) syncAutoScrollIndicator();
|
|
481
504
|
});
|
|
482
505
|
|
|
483
506
|
$expandAll.addEventListener('click', () => {
|
|
@@ -504,6 +527,7 @@ export function renderIndexHtml() {
|
|
|
504
527
|
$count.textContent = '0';
|
|
505
528
|
rawLines.length = 0;
|
|
506
529
|
autoScroll = true;
|
|
530
|
+
syncAutoScrollIndicator();
|
|
507
531
|
$logsRaw.textContent = '';
|
|
508
532
|
});
|
|
509
533
|
|
package/dist/obs/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oFAAoF;AACpF,MAAM,UAAU,eAAe;IAC7B,OAAO
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/obs/ui.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oFAAoF;AACpF,MAAM,UAAU,eAAe;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA64BD,CAAC;AACT,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "visionclaw",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.76",
|
|
4
4
|
"description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|