agentlas 1.0.7 → 1.0.8

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.8 — 2026-07-27
4
+
5
+ - **Arrow keys navigate the slash palette instead of collapsing it.** Moving
6
+ the highlight also wrote the highlighted command into the input line, and
7
+ the candidate list is derived from that line — so the list became a function
8
+ of the selection rather than of what you typed. Typing `/s` offered nine
9
+ commands; two presses of Down rewrote the line to `/switch` and cut the list
10
+ to two, leaving `/spawn`, `/steer`, `/search`, `/storm` and `/swarm`
11
+ unreachable no matter how many keys you pressed. Arrows now move the
12
+ highlight only and leave your query alone. Deleting the line rewrite was not
13
+ enough on its own: readline treats Up/Down as history navigation and a
14
+ prepended keypress listener runs first but cannot suppress that default, so
15
+ the query is now restored if readline moved through history.
16
+
3
17
  ## 1.0.7 — 2026-07-27
4
18
 
5
19
  - **The selection prompt no longer carries the whole candidate set.** Measured
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  /*
3
3
  * CLI preferences (separate from the app's SQLite/keychain) — first-run onboarding result.
4
- * Stored at <userData>/cli-prefs.json: { onboarded, lang, runtime, permission }.
4
+ * Stored at <userData>/cli-prefs.json: { onboarded, language, runtime, permission }.
5
+ * `lang` is the v1 key for the same value — still read (engine/agentlas.cjs resolveLang)
6
+ * so an upgraded user keeps the language they chose, but never written by v2.
5
7
  * Persisted permission is read|write; unrestricted/full is session-only.
6
8
  */
7
9
  const fs = require("node:fs");
@@ -602,13 +602,27 @@ function attachSlashPalette(rl, opts = {}) {
602
602
  stream.write("\x1b7\x1b[E\x1b[0J" + body + "\x1b8");
603
603
  state.visible = true;
604
604
  }
605
+ /*
606
+ * 화살표는 강조만 옮긴다 — 사용자가 친 질의는 그대로 둔다.
607
+ *
608
+ * 예전에는 여기서 선택 항목을 입력 줄에 써 넣었다(replaceLine(selectedCommand)).
609
+ * 그러면 후보 목록이 "질의로 거른 결과"가 아니라 "선택의 함수"가 되어 되먹임이 생긴다:
610
+ * `/s` 에서 ↓ 두 번이면 줄이 `/switch` 로 바뀌며 후보가 9개→2개로 접히고,
611
+ * 그 아래 항목(/spawn·/steer·/search·/storm·/swarm)엔 영원히 닿지 못했다.
612
+ * 오너가 본 "방향키 무브 안 됨"의 정체다(PTY 실측).
613
+ *
614
+ * 다만 readline 은 up/down 을 히스토리 이동으로 처리하고, prependListener 로는 그
615
+ * 기본 동작을 막을 수 없다(전파 중단이 없다). 팔레트가 열려 있는 동안 화살표의 의미는
616
+ * 목록 이동이므로, readline 이 줄을 건드렸으면 원래 질의로 되돌린다.
617
+ */
605
618
  function move(delta) {
606
619
  const list = rows();
607
620
  if (!list.length) return false;
608
621
  state.selected = (state.selected + delta + list.length) % list.length;
609
622
  state.selectedCommand = list[state.selected].command;
623
+ const query = rl.line || "";
610
624
  setImmediate(() => {
611
- replaceLine(state.selectedCommand);
625
+ if ((rl.line || "") !== query) replaceLine(query);
612
626
  render();
613
627
  });
614
628
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentlas",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "Agentlas agent terminal — chat with your installed AI agents and teams from the terminal, Claude Code style. Standalone: no desktop app required.",
5
5
  "bin": {
6
6
  "agentlas": "bin/agentlas.cjs"