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 CHANGED
@@ -1 +1 @@
1
- 3.70.3
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-72 shrink-0 rounded-lg border border-default bg-elevated/10 overflow-hidden flex flex-col"
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 text-xs uppercase tracking-wide text-muted">
325
- Command history
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
- <div class="flex-1 overflow-auto text-xs font-mono">
328
- <button
329
- v-for="(entry, i) in history"
330
- :key="i"
331
- class="w-full text-left px-3 py-1.5 hover:bg-default/40 truncate"
332
- :title="entry.cmd"
333
- @click="activeTab?.session.sendInput(entry.cmd)"
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
- {{ entry.cmd }}
336
- </button>
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkaos",
3
- "version": "3.70.3",
3
+ "version": "3.70.4",
4
4
  "description": "The Operating System for AI Agent Teams",
5
5
  "type": "module",
6
6
  "bin": {
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "arkaos-core"
3
- version = "3.70.3"
3
+ version = "3.70.4"
4
4
  description = "Core engine for ArkaOS — The Operating System for AI Agent Teams"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}