devez-vibe 1.10.3 → 1.10.5

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/bin/dvz.exe CHANGED
Binary file
@@ -558,6 +558,19 @@ async function applyPermissionMode(session) {
558
558
  }
559
559
  }
560
560
 
561
+ // Since CLI 2.1.299 a model without auto mode drops the session to default,
562
+ // and it stays there after switching back, so restore auto where it exists.
563
+ async function followModelPermissionMode(session, model) {
564
+ // The CLI omits supportsAutoMode on such a model rather than sending false.
565
+ const capabilities = modelCapabilities(session.models || [], model);
566
+ if (capabilities && !capabilities.supportsAutoMode) {
567
+ session.permissionMode = "default";
568
+ session.permissionModeVerified = false;
569
+ return;
570
+ }
571
+ await applyPermissionMode(session);
572
+ }
573
+
561
574
  async function claudePermissionStatus(params) {
562
575
  const resolved = await resolveSettings({
563
576
  cwd: params.cwd || process.cwd(),
@@ -3965,6 +3978,7 @@ async function runPrompt(session, params) {
3965
3978
  const model = stripClaudeModel(params.model);
3966
3979
  await session.query.setModel(model);
3967
3980
  session.model = visibleModel(params.model);
3981
+ await followModelPermissionMode(session, params.model);
3968
3982
  }
3969
3983
  session.steerPending = 0;
3970
3984
  // Steering carries no effort of its own, so a steer that lands here because the
@@ -4835,11 +4849,11 @@ async function dispatch(method, params = {}) {
4835
4849
  if (session) closeLiveSession(session);
4836
4850
  return { released: true, busy: false };
4837
4851
  }
4838
- // 순정 /clear처럼 백그라운드 작업만 남은 세션은 같은 프로세스에서 새 대화로
4839
- // 넘긴다. 작업과 그 완료 통지는 새 대화가 이어받는다.
4852
+ // 순정 /clear처럼 살아 있는 세션은 같은 프로세스에서 새 대화로 넘겨 CLI와 MCP
4853
+ // 연결을 다시 쓴다. 남은 백그라운드 작업과 그 완료 통지도 새 대화가 이어받는다.
4840
4854
  if (method === "session/clear") {
4841
4855
  const session = lookupSession(params.sessionId);
4842
- if (!session || !sessionHasLiveWork(session)) {
4856
+ if (!session || (!session.queue && !sessionHasLiveWork(session))) {
4843
4857
  if (session) closeLiveSession(session);
4844
4858
  return { released: true, busy: false };
4845
4859
  }
@@ -4861,6 +4875,11 @@ async function dispatch(method, params = {}) {
4861
4875
  clearTimeout(timer);
4862
4876
  session.clearWaiter = null;
4863
4877
  session.clearPending = false;
4878
+ // CLI가 /clear에 답하지 않아도 남은 작업이 없으면 연결을 닫고 새 대화를 연다.
4879
+ if (!id && !sessionHasLiveWork(session)) {
4880
+ closeLiveSession(session);
4881
+ return { released: true, busy: false };
4882
+ }
4864
4883
  if (!id) return { released: false, busy: true };
4865
4884
  emitSubagents(session);
4866
4885
  return {
@@ -4919,6 +4938,22 @@ async function runPermissionModeSelfTest() {
4919
4938
  || rejectedCalls.join(",") !== "auto" || rejected.permissionModeVerified) {
4920
4939
  throw new Error(`Claude permission double rejection self-test failed: ${doubleRejection}`);
4921
4940
  }
4941
+
4942
+ const switchCalls = [];
4943
+ const switching = fakeSession(async (mode) => switchCalls.push(mode));
4944
+ switching.models = [
4945
+ { value: "claude-haiku-4-5-20251001" },
4946
+ { value: "sonnet", supportsAutoMode: true },
4947
+ ];
4948
+ await applyPermissionMode(switching);
4949
+ await followModelPermissionMode(switching, "claude:claude-haiku-4-5-20251001");
4950
+ const dropped = switching.permissionMode;
4951
+ await followModelPermissionMode(switching, "claude:sonnet");
4952
+ await followModelPermissionMode(switching, "claude:sonnet");
4953
+ if (dropped !== "default" || switching.permissionMode !== PREFERRED_PERMISSION_MODE
4954
+ || switchCalls.join(",") !== "auto,auto") {
4955
+ throw new Error(`Claude model switch permission self-test failed: ${dropped} ${JSON.stringify(switchCalls)}`);
4956
+ }
4922
4957
  }
4923
4958
 
4924
4959
  async function runGuardedPermissionSelfTest() {
package/package.json CHANGED
@@ -1,50 +1,50 @@
1
- {
2
- "name": "devez-vibe",
3
- "version": "1.10.3",
4
- "type": "module",
5
- "description": "Stable terminal UI for Codex and Claude Agent SDK",
6
- "keywords": [
7
- "codex",
8
- "cli",
9
- "tui",
10
- "terminal",
11
- "app-server",
12
- "claude-agent-sdk"
13
- ],
14
- "homepage": "https://github.com/MrHoje/Devez-vibe#readme",
15
- "bugs": "https://github.com/MrHoje/Devez-vibe/issues",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/MrHoje/Devez-vibe.git"
19
- },
20
- "license": "MIT",
21
- "bin": {
22
- "dvz": "bin/dvz.js"
23
- },
24
- "files": [
25
- "bin/dvz.js",
26
- "bin/dvz.exe",
27
- "bridge/claude-agent-sdk-bridge.mjs",
28
- "install-skills.mjs",
29
- "prepare-search-deps.mjs",
30
- "skills/luna-loop/",
31
- "skills/insane-search/",
32
- "README.md",
33
- "LICENSE"
34
- ],
35
- "os": [
36
- "win32"
37
- ],
38
- "cpu": [
39
- "x64"
40
- ],
41
- "engines": {
42
- "node": ">=18"
43
- },
44
- "scripts": {
45
- "postinstall": "node install-skills.mjs && node prepare-search-deps.mjs"
46
- },
47
- "dependencies": {
48
- "@anthropic-ai/claude-agent-sdk": "0.3.296"
49
- }
50
- }
1
+ {
2
+ "name": "devez-vibe",
3
+ "version": "1.10.5",
4
+ "type": "module",
5
+ "description": "Stable terminal UI for Codex and Claude Agent SDK",
6
+ "keywords": [
7
+ "codex",
8
+ "cli",
9
+ "tui",
10
+ "terminal",
11
+ "app-server",
12
+ "claude-agent-sdk"
13
+ ],
14
+ "homepage": "https://github.com/MrHoje/Devez-vibe#readme",
15
+ "bugs": "https://github.com/MrHoje/Devez-vibe/issues",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/MrHoje/Devez-vibe.git"
19
+ },
20
+ "license": "MIT",
21
+ "bin": {
22
+ "dvz": "bin/dvz.js"
23
+ },
24
+ "files": [
25
+ "bin/dvz.js",
26
+ "bin/dvz.exe",
27
+ "bridge/claude-agent-sdk-bridge.mjs",
28
+ "install-skills.mjs",
29
+ "prepare-search-deps.mjs",
30
+ "skills/luna-loop/",
31
+ "skills/insane-search/",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "os": [
36
+ "win32"
37
+ ],
38
+ "cpu": [
39
+ "x64"
40
+ ],
41
+ "engines": {
42
+ "node": ">=18"
43
+ },
44
+ "scripts": {
45
+ "postinstall": "node install-skills.mjs && node prepare-search-deps.mjs"
46
+ },
47
+ "dependencies": {
48
+ "@anthropic-ai/claude-agent-sdk": "0.3.301"
49
+ }
50
+ }