@oneciel-ai/claude-any 0.1.69 → 0.1.70

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/README.md CHANGED
@@ -68,7 +68,7 @@ arguments through unchanged.
68
68
 
69
69
  Credits: One Ciel LLC
70
70
 
71
- Current version: `0.1.69`
71
+ Current version: `0.1.70`
72
72
 
73
73
  ## Why This Exists
74
74
 
@@ -495,6 +495,14 @@ steps under that larger model's supervision.
495
495
 
496
496
  ## Changelog
497
497
 
498
+ ### 0.1.70
499
+
500
+ - **Linux menu debug log fix**: key-debug logging now writes under the user's
501
+ Claude Any config directory instead of global `/tmp`, avoiding permission
502
+ crashes on locked-down Linux systems.
503
+ - **Best-effort key logging**: menu input no longer fails if the optional
504
+ key-debug log cannot be written.
505
+
498
506
  ### 0.1.69
499
507
 
500
508
  - **Realtime channel bridge**: added `/ca/channel/messages`, `/ca/channel/wait`,
package/claude_any.py CHANGED
@@ -51,6 +51,7 @@ CONTEXT_USAGE_PATH = CONFIG_DIR / "context-usage.json"
51
51
  OLLAMA_MODEL_CATALOG_PATH = CONFIG_DIR / "ollama-model-catalog.json"
52
52
  CHAT_MESSAGES_PATH = CONFIG_DIR / "chat-messages.jsonl"
53
53
  CHAT_FILES_DIR = CONFIG_DIR / "chat-files"
54
+ MENU_KEY_DEBUG_PATH = CONFIG_DIR / "ca-key-debug.log"
54
55
  PLAN_ARTIFACTS_DIR = CONFIG_DIR / "plan-artifacts"
55
56
  PID_PATH = CONFIG_DIR / "router.pid"
56
57
  MODEL_LIST_CACHE_PATH = CONFIG_DIR / "model-list-cache.json"
@@ -95,7 +96,7 @@ PROVIDER_LABELS = {
95
96
  "self-hosted-nim": "Self Hosted NIM",
96
97
  }
97
98
  APP_NAME = "Claude Any"
98
- VERSION = "0.1.69"
99
+ VERSION = "0.1.70"
99
100
  CREDITS = "Credits: One Ciel LLC"
100
101
 
101
102
  LOG_LEVELS = {"SILENT": 0, "ERROR": 1, "WARN": 2, "INFO": 3, "DEBUG": 4, "TRACE": 5}
@@ -11693,6 +11694,15 @@ def print_intro_panel(width: int) -> None:
11693
11694
  print("\n".join(intro_panel_lines(width)))
11694
11695
 
11695
11696
 
11697
+ def append_menu_key_debug_log(line: str) -> None:
11698
+ try:
11699
+ MENU_KEY_DEBUG_PATH.parent.mkdir(parents=True, exist_ok=True)
11700
+ with MENU_KEY_DEBUG_PATH.open("a", encoding="utf-8") as f:
11701
+ f.write(line)
11702
+ except OSError:
11703
+ pass
11704
+
11705
+
11696
11706
  def read_menu_key(fd: int | None = None) -> str:
11697
11707
  if os.name == "nt":
11698
11708
  import msvcrt
@@ -11707,7 +11717,6 @@ def read_menu_key(fd: int | None = None) -> str:
11707
11717
  return ch.lower()
11708
11718
 
11709
11719
  import time
11710
- debug_path = "/tmp/ca-key-debug.log"
11711
11720
  if fd is None or fd < 0:
11712
11721
  fd = sys.stdin.fileno()
11713
11722
  ch = os.read(fd, 1)
@@ -11717,8 +11726,7 @@ def read_menu_key(fd: int | None = None) -> str:
11717
11726
  b = os.read(fd, 1)
11718
11727
  log += f" next={b!r}"
11719
11728
  if not b:
11720
- with open(debug_path, "a", encoding="utf-8") as f:
11721
- f.write(log + " result='esc'\n")
11729
+ append_menu_key_debug_log(log + " result='esc'\n")
11722
11730
  return "esc"
11723
11731
  seq += b.decode("latin-1")
11724
11732
  if b == b"[":
@@ -11741,15 +11749,13 @@ def read_menu_key(fd: int | None = None) -> str:
11741
11749
  "\x1b[H": "home", "\x1b[F": "end",
11742
11750
  }.get(seq, "esc")
11743
11751
  log += f" seq={seq!r} result={result!r}"
11744
- with open(debug_path, "a", encoding="utf-8") as f:
11745
- f.write(log + "\n")
11752
+ append_menu_key_debug_log(log + "\n")
11746
11753
  return result
11747
11754
  if ch in (b"\r", b"\n"):
11748
11755
  result = "enter"
11749
11756
  else:
11750
11757
  result = ch.decode("latin-1").lower()
11751
- with open(debug_path, "a", encoding="utf-8") as f:
11752
- f.write(log + f" result={result!r}\n")
11758
+ append_menu_key_debug_log(log + f" result={result!r}\n")
11753
11759
  return result
11754
11760
 
11755
11761
 
package/docs/README.ja.md CHANGED
@@ -61,7 +61,7 @@ vLLM、NVIDIA hosted、self-hosted NIM を選択し、通常の Claude Code 引
61
61
 
62
62
  Credits: One Ciel LLC
63
63
 
64
- 現在のバージョン: `0.1.69`
64
+ 現在のバージョン: `0.1.70`
65
65
 
66
66
  ## 作られた理由
67
67
 
@@ -365,6 +365,14 @@ Windows/Linux 管理、クリーンアップスクリプト、定期的なセキ
365
365
 
366
366
  ## 変更履歴
367
367
 
368
+ ### 0.1.70
369
+
370
+ - **Linux menu debug log 修正**: key-debug log は global `/tmp` ではなく
371
+ user の Claude Any config directory に書き込むようになり、制限された Linux
372
+ 環境での permission crash を避けます。
373
+ - **best-effort key logging**: 任意の key-debug log を書けない場合でも menu
374
+ input は失敗しません。
375
+
368
376
  ### 0.1.69
369
377
 
370
378
  - **リアルタイム channel bridge**: `/ca/channel/messages`, `/ca/channel/wait`,
package/docs/README.ko.md CHANGED
@@ -67,7 +67,7 @@ NVIDIA hosted, self-hosted NIM을 선택하고, Claude Code의 일반 인자는
67
67
 
68
68
  Credits: One Ciel LLC
69
69
 
70
- 현재 버전: `0.1.69`
70
+ 현재 버전: `0.1.70`
71
71
 
72
72
  ## 왜 만들었나
73
73
 
@@ -371,6 +371,14 @@ Windows 이벤트 로그 리뷰, 바이러스/랜섬웨어 침입 시도 정리,
371
371
 
372
372
  ## 변경 이력
373
373
 
374
+ ### 0.1.70
375
+
376
+ - **Linux 메뉴 디버그 로그 수정**: key-debug 로그를 전역 `/tmp`가 아니라 사용자
377
+ Claude Any config 디렉터리 아래에 기록해, 제한된 Linux 환경에서 permission
378
+ crash가 발생하지 않도록 했습니다.
379
+ - **best-effort key logging**: 선택적 key-debug 로그를 쓸 수 없어도 메뉴 입력이
380
+ 실패하지 않습니다.
381
+
374
382
  ### 0.1.69
375
383
 
376
384
  - **실시간 채널 브리지**: `/ca/channel/messages`, `/ca/channel/wait`,
package/docs/README.zh.md CHANGED
@@ -61,7 +61,7 @@ NIM,并把普通 Claude Code 参数原样传递。
61
61
 
62
62
  Credits: One Ciel LLC
63
63
 
64
- 当前版本: `0.1.69`
64
+ 当前版本: `0.1.70`
65
65
 
66
66
  ## 为什么存在
67
67
 
@@ -351,6 +351,12 @@ Hermes 格式模型或部分较旧的 Qwen tool template。
351
351
 
352
352
  ## 更新日志
353
353
 
354
+ ### 0.1.70
355
+
356
+ - **Linux 菜单调试日志修复**:key-debug 日志现在写入用户的 Claude Any config
357
+ 目录,而不是全局 `/tmp`,避免受限 Linux 环境中的 permission crash。
358
+ - **best-effort key logging**:即使可选 key-debug 日志无法写入,菜单输入也不会失败。
359
+
354
360
  ### 0.1.69
355
361
 
356
362
  - **实时 channel bridge**:新增 `/ca/channel/messages`、`/ca/channel/wait`、
package/docs/manual.md CHANGED
@@ -10,7 +10,7 @@ Code starts, while passing normal Claude Code arguments through unchanged.
10
10
 
11
11
  Credits: One Ciel LLC
12
12
 
13
- Current version: `0.1.69`
13
+ Current version: `0.1.70`
14
14
 
15
15
  ## Install
16
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneciel-ai/claude-any",
3
- "version": "0.1.69",
3
+ "version": "0.1.70",
4
4
  "description": "Claude Code provider selector for Anthropic, Ollama, Ollama Cloud, vLLM, NVIDIA hosted, and self-hosted NIM.",
5
5
  "license": "MIT",
6
6
  "author": "One Ciel LLC",