arkaos 3.70.3 → 3.70.4
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/VERSION +1 -1
- package/dashboard/app/pages/terminal.vue +96 -14
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.70.
|
|
1
|
+
3.70.4
|
|
@@ -112,6 +112,20 @@ function pickFromSearch(cmd: string) {
|
|
|
112
112
|
searchOpen.value = false
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
// v3.70.4 — inline filter for the side panel.
|
|
116
|
+
const sidebarFilter = ref('')
|
|
117
|
+
|
|
118
|
+
const visibleHistory = computed(() => {
|
|
119
|
+
const q = sidebarFilter.value.trim().toLowerCase()
|
|
120
|
+
const filtered = history.value.filter((e) => isPlausibleCommand(e.cmd))
|
|
121
|
+
if (!q) return filtered
|
|
122
|
+
return filtered.filter((e) => e.cmd.toLowerCase().includes(q))
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
function sendToActive(cmd: string) {
|
|
126
|
+
activeTab.value?.session.sendInput(cmd)
|
|
127
|
+
}
|
|
128
|
+
|
|
115
129
|
function searchKeydown(e: KeyboardEvent) {
|
|
116
130
|
const total = searchResults.value.length
|
|
117
131
|
if (total === 0) return
|
|
@@ -319,24 +333,92 @@ const showHistory = ref(false)
|
|
|
319
333
|
</div>
|
|
320
334
|
<aside
|
|
321
335
|
v-if="showHistory"
|
|
322
|
-
class="w-
|
|
336
|
+
class="w-80 shrink-0 rounded-lg border border-default bg-elevated/10 overflow-hidden flex flex-col"
|
|
323
337
|
>
|
|
324
|
-
<div class="px-3 py-2 border-b border-default
|
|
325
|
-
|
|
338
|
+
<div class="px-3 py-2.5 border-b border-default flex items-center gap-2">
|
|
339
|
+
<UIcon name="i-lucide-history" class="size-4 text-muted shrink-0" />
|
|
340
|
+
<span class="text-sm font-semibold">History</span>
|
|
341
|
+
<UBadge :label="String(visibleHistory.length)" size="xs" variant="subtle" />
|
|
342
|
+
<div class="ml-auto flex items-center gap-1">
|
|
343
|
+
<UButton
|
|
344
|
+
size="xs"
|
|
345
|
+
variant="ghost"
|
|
346
|
+
icon="i-lucide-search"
|
|
347
|
+
title="Open full search (⌃R)"
|
|
348
|
+
@click="openSearch"
|
|
349
|
+
/>
|
|
350
|
+
<UButton
|
|
351
|
+
v-if="history.length > 0"
|
|
352
|
+
size="xs"
|
|
353
|
+
variant="ghost"
|
|
354
|
+
color="error"
|
|
355
|
+
icon="i-lucide-trash-2"
|
|
356
|
+
title="Clear all"
|
|
357
|
+
@click="clearHistory"
|
|
358
|
+
/>
|
|
359
|
+
<UButton
|
|
360
|
+
size="xs"
|
|
361
|
+
variant="ghost"
|
|
362
|
+
icon="i-lucide-x"
|
|
363
|
+
title="Close panel"
|
|
364
|
+
@click="showHistory = false"
|
|
365
|
+
/>
|
|
366
|
+
</div>
|
|
367
|
+
</div>
|
|
368
|
+
|
|
369
|
+
<div class="px-3 py-2 border-b border-default">
|
|
370
|
+
<UInput
|
|
371
|
+
v-model="sidebarFilter"
|
|
372
|
+
size="xs"
|
|
373
|
+
placeholder="Filter…"
|
|
374
|
+
icon="i-lucide-search"
|
|
375
|
+
class="w-full"
|
|
376
|
+
/>
|
|
326
377
|
</div>
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
class="
|
|
332
|
-
|
|
333
|
-
|
|
378
|
+
|
|
379
|
+
<div class="flex-1 overflow-y-auto">
|
|
380
|
+
<div
|
|
381
|
+
v-if="history.length === 0"
|
|
382
|
+
class="p-6 text-center text-xs text-muted"
|
|
383
|
+
>
|
|
384
|
+
<UIcon name="i-lucide-terminal" class="size-6 mx-auto mb-2 opacity-50" />
|
|
385
|
+
<p>No commands yet.</p>
|
|
386
|
+
</div>
|
|
387
|
+
<div
|
|
388
|
+
v-else-if="visibleHistory.length === 0"
|
|
389
|
+
class="p-6 text-center text-xs text-muted"
|
|
334
390
|
>
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
<div v-if="history.length === 0" class="px-3 py-4 text-muted text-center">
|
|
338
|
-
No commands yet
|
|
391
|
+
No matches for
|
|
392
|
+
<span class="font-mono text-default">{{ sidebarFilter }}</span>.
|
|
339
393
|
</div>
|
|
394
|
+
<ul v-else class="divide-y divide-default">
|
|
395
|
+
<li
|
|
396
|
+
v-for="entry in visibleHistory"
|
|
397
|
+
:key="entry.ts"
|
|
398
|
+
class="group px-3 py-1.5 hover:bg-elevated/40 cursor-pointer flex items-center gap-2"
|
|
399
|
+
:title="`${entry.cmd} — ${relativeTime(entry.ts)}`"
|
|
400
|
+
@click="sendToActive(entry.cmd)"
|
|
401
|
+
>
|
|
402
|
+
<UIcon
|
|
403
|
+
name="i-lucide-chevron-right"
|
|
404
|
+
class="size-3 shrink-0 text-muted group-hover:text-primary"
|
|
405
|
+
/>
|
|
406
|
+
<span class="flex-1 min-w-0 font-mono text-xs truncate">
|
|
407
|
+
{{ entry.cmd }}
|
|
408
|
+
</span>
|
|
409
|
+
<span class="text-[10px] text-muted shrink-0 tabular-nums opacity-0 group-hover:opacity-100 transition-opacity">
|
|
410
|
+
{{ relativeTime(entry.ts) }}
|
|
411
|
+
</span>
|
|
412
|
+
<UIcon
|
|
413
|
+
name="i-lucide-corner-down-left"
|
|
414
|
+
class="size-3 shrink-0 text-muted opacity-0 group-hover:opacity-100 transition-opacity"
|
|
415
|
+
/>
|
|
416
|
+
</li>
|
|
417
|
+
</ul>
|
|
418
|
+
</div>
|
|
419
|
+
|
|
420
|
+
<div class="px-3 py-2 border-t border-default text-[10px] text-muted">
|
|
421
|
+
Click a command to send it to the active session.
|
|
340
422
|
</div>
|
|
341
423
|
</aside>
|
|
342
424
|
</div>
|
package/package.json
CHANGED