@akiojin/gwt 4.12.0 → 4.12.1

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.
Files changed (65) hide show
  1. package/bin/gwt.js +35 -9
  2. package/dist/claude.d.ts.map +1 -1
  3. package/dist/claude.js +45 -14
  4. package/dist/claude.js.map +1 -1
  5. package/dist/cli/ui/App.solid.d.ts.map +1 -1
  6. package/dist/cli/ui/App.solid.js +40 -8
  7. package/dist/cli/ui/App.solid.js.map +1 -1
  8. package/dist/cli/ui/components/solid/WizardController.d.ts.map +1 -1
  9. package/dist/cli/ui/components/solid/WizardController.js +48 -2
  10. package/dist/cli/ui/components/solid/WizardController.js.map +1 -1
  11. package/dist/cli/ui/components/solid/WizardSteps.d.ts +5 -0
  12. package/dist/cli/ui/components/solid/WizardSteps.d.ts.map +1 -1
  13. package/dist/cli/ui/components/solid/WizardSteps.js +29 -6
  14. package/dist/cli/ui/components/solid/WizardSteps.js.map +1 -1
  15. package/dist/cli/ui/utils/installedVersionCache.d.ts +33 -0
  16. package/dist/cli/ui/utils/installedVersionCache.d.ts.map +1 -0
  17. package/dist/cli/ui/utils/installedVersionCache.js +59 -0
  18. package/dist/cli/ui/utils/installedVersionCache.js.map +1 -0
  19. package/dist/cli/ui/utils/modelOptions.d.ts.map +1 -1
  20. package/dist/cli/ui/utils/modelOptions.js +16 -0
  21. package/dist/cli/ui/utils/modelOptions.js.map +1 -1
  22. package/dist/codex.d.ts.map +1 -1
  23. package/dist/codex.js +63 -22
  24. package/dist/codex.js.map +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/logging/reader.d.ts +2 -1
  29. package/dist/logging/reader.d.ts.map +1 -1
  30. package/dist/logging/reader.js +37 -1
  31. package/dist/logging/reader.js.map +1 -1
  32. package/dist/opentui/index.solid.js +298 -264
  33. package/dist/services/codingAgentResolver.d.ts.map +1 -1
  34. package/dist/services/codingAgentResolver.js +8 -6
  35. package/dist/services/codingAgentResolver.js.map +1 -1
  36. package/dist/shared/codingAgentConstants.d.ts +3 -0
  37. package/dist/shared/codingAgentConstants.d.ts.map +1 -1
  38. package/dist/shared/codingAgentConstants.js +66 -0
  39. package/dist/shared/codingAgentConstants.js.map +1 -1
  40. package/dist/utils/bun-runtime.d.ts +12 -0
  41. package/dist/utils/bun-runtime.d.ts.map +1 -0
  42. package/dist/utils/bun-runtime.js +13 -0
  43. package/dist/utils/bun-runtime.js.map +1 -0
  44. package/dist/utils/session/parsers/codex.d.ts.map +1 -1
  45. package/dist/utils/session/parsers/codex.js +0 -1
  46. package/dist/utils/session/parsers/codex.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/claude.ts +49 -14
  49. package/src/cli/ui/App.solid.tsx +55 -6
  50. package/src/cli/ui/__tests__/solid/AppSolid.cleanup.test.tsx +91 -0
  51. package/src/cli/ui/__tests__/solid/components/WizardController.test.tsx +71 -0
  52. package/src/cli/ui/__tests__/solid/components/WizardSteps.test.tsx +91 -1
  53. package/src/cli/ui/components/solid/WizardController.tsx +65 -1
  54. package/src/cli/ui/components/solid/WizardSteps.tsx +55 -10
  55. package/src/cli/ui/utils/__tests__/installedVersionCache.test.ts +46 -0
  56. package/src/cli/ui/utils/installedVersionCache.ts +84 -0
  57. package/src/cli/ui/utils/modelOptions.test.ts +6 -0
  58. package/src/cli/ui/utils/modelOptions.ts +16 -0
  59. package/src/codex.ts +78 -22
  60. package/src/index.ts +3 -0
  61. package/src/logging/reader.ts +48 -1
  62. package/src/services/codingAgentResolver.ts +12 -5
  63. package/src/shared/codingAgentConstants.ts +73 -0
  64. package/src/utils/bun-runtime.ts +29 -0
  65. package/src/utils/session/parsers/codex.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"codingAgentResolver.d.ts","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAQlE,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AACrE,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,uBAAuB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAE1C,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,EAAE,MAAM,EAAE;gBAFhB,IAAI,EAAE,iBAAiB,EAC9B,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,EAAE,YAAA;CAK1B;AA8FD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAmC5E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAoC1E;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,CAgC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAU9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
1
+ {"version":3,"file":"codingAgentResolver.d.ts","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AASlE,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AACrE,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GACzB,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,uBAAuB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,qBAAa,0BAA2B,SAAQ,KAAK;IAE1C,IAAI,EAAE,iBAAiB;IAEvB,KAAK,CAAC,EAAE,MAAM,EAAE;gBAFhB,IAAI,EAAE,iBAAiB,EAC9B,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,EAAE,YAAA;CAK1B;AA8FD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,eAAe,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAmC5E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAqC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAoC1E;AAED,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,wBAAwB;IACzE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAU9D;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
@@ -2,9 +2,10 @@ import { execa } from "execa";
2
2
  import { platform } from "os";
3
3
  import { getCodingAgentById } from "../config/tools.js";
4
4
  import { CLAUDE_CODE_TOOL } from "../config/builtin-coding-agents.js";
5
- import { CODEX_DEFAULT_ARGS, CLAUDE_PERMISSION_SKIP_ARGS, } from "../shared/codingAgentConstants.js";
5
+ import { CODEX_DEFAULT_ARGS, CLAUDE_PERMISSION_SKIP_ARGS, shouldEnableCodexSkillsFlag, withCodexSkillsFlag, } from "../shared/codingAgentConstants.js";
6
6
  import { prepareCodingAgentExecution } from "./codingAgentCommandResolver.js";
7
7
  import { createLogger } from "../logging/logger.js";
8
+ import { findCommand } from "../utils/command.js";
8
9
  const logger = createLogger({ category: "resolver" });
9
10
  const DETECTION_COMMAND = platform() === "win32" ? "where" : "which";
10
11
  const MIN_BUN_MAJOR = 1;
@@ -192,13 +193,14 @@ export function buildCodexArgs(options = {}) {
192
193
  return args;
193
194
  }
194
195
  export async function resolveCodexCommand(options = {}) {
195
- const args = buildCodexArgs(options);
196
+ const codexLookup = await findCommand("codex");
197
+ const baseArgs = buildCodexArgs(options);
198
+ const args = withCodexSkillsFlag(baseArgs, shouldEnableCodexSkillsFlag(codexLookup.version));
196
199
  // フルパスを取得(node-ptyはシェルを経由しないため必要)
197
- const codexPath = await resolveCommandPath("codex");
198
- if (codexPath) {
199
- logger.info({ command: codexPath, usesFallback: false }, "Codex command resolved");
200
+ if (codexLookup.source === "installed" && codexLookup.path) {
201
+ logger.info({ command: codexLookup.path, usesFallback: false }, "Codex command resolved");
200
202
  return {
201
- command: codexPath,
203
+ command: codexLookup.path,
202
204
  args,
203
205
  usesFallback: false,
204
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"codingAgentResolver.js","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codingAgentResolver.js","sourceRoot":"","sources":["../../src/services/codingAgentResolver.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,7 @@
6
6
  */
7
7
  export declare const CLAUDE_PERMISSION_SKIP_ARGS: readonly ["--dangerously-skip-permissions"];
8
8
  export declare const CODEX_DEFAULT_ARGS: readonly ["--enable", "web_search_request", "--model=gpt-5.2-codex", "--sandbox", "workspace-write", "-c", "model_reasoning_effort=high", "-c", "model_reasoning_summaries=detailed", "-c", "sandbox_workspace_write.network_access=true", "-c", "shell_environment_policy.inherit=all", "-c", "shell_environment_policy.ignore_default_excludes=true", "-c", "shell_environment_policy.experimental_use_profile=true"];
9
+ export declare const CODEX_SKILLS_FLAG_DEPRECATED_FROM = "0.80.0";
10
+ export declare function shouldEnableCodexSkillsFlag(version?: string | null): boolean;
11
+ export declare function withCodexSkillsFlag(args: readonly string[], enable: boolean): string[];
9
12
  //# sourceMappingURL=codingAgentConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codingAgentConstants.d.ts","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,2BAA2B,6CAE9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,yZAkBrB,CAAC"}
1
+ {"version":3,"file":"codingAgentConstants.d.ts","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,2BAA2B,6CAE9B,CAAC;AAEX,eAAO,MAAM,kBAAkB,yZAkBrB,CAAC;AAEX,eAAO,MAAM,iCAAiC,WAAW,CAAC;AAiD1D,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAM5E;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,OAAO,GACd,MAAM,EAAE,CAWV"}
@@ -26,4 +26,70 @@ export const CODEX_DEFAULT_ARGS = [
26
26
  "-c",
27
27
  "shell_environment_policy.experimental_use_profile=true",
28
28
  ];
29
+ export const CODEX_SKILLS_FLAG_DEPRECATED_FROM = "0.80.0";
30
+ const MODEL_FLAG_PREFIX = "--model=";
31
+ function normalizeVersion(value) {
32
+ if (!value)
33
+ return null;
34
+ const trimmed = value.trim();
35
+ if (!trimmed)
36
+ return null;
37
+ return trimmed.replace(/^v/i, "");
38
+ }
39
+ function parseVersion(value) {
40
+ const normalized = normalizeVersion(value);
41
+ if (!normalized)
42
+ return null;
43
+ const match = normalized.match(/^(\d+)\.(\d+)(?:\.(\d+))?(?:-([0-9A-Za-z.-]+))?$/);
44
+ if (!match)
45
+ return null;
46
+ const major = Number(match[1]);
47
+ const minor = Number(match[2]);
48
+ const patch = Number(match[3] ?? "0");
49
+ if (![major, minor, patch].every(Number.isFinite))
50
+ return null;
51
+ return {
52
+ major,
53
+ minor,
54
+ patch,
55
+ prerelease: match[4] ?? null,
56
+ };
57
+ }
58
+ function compareVersions(a, b) {
59
+ if (a.major !== b.major)
60
+ return a.major - b.major;
61
+ if (a.minor !== b.minor)
62
+ return a.minor - b.minor;
63
+ if (a.patch !== b.patch)
64
+ return a.patch - b.patch;
65
+ if (a.prerelease && !b.prerelease)
66
+ return -1;
67
+ if (!a.prerelease && b.prerelease)
68
+ return 1;
69
+ if (a.prerelease && b.prerelease) {
70
+ return a.prerelease.localeCompare(b.prerelease);
71
+ }
72
+ return 0;
73
+ }
74
+ export function shouldEnableCodexSkillsFlag(version) {
75
+ const parsed = parseVersion(version);
76
+ if (!parsed)
77
+ return false;
78
+ const threshold = parseVersion(CODEX_SKILLS_FLAG_DEPRECATED_FROM);
79
+ if (!threshold)
80
+ return false;
81
+ return compareVersions(parsed, threshold) < 0;
82
+ }
83
+ export function withCodexSkillsFlag(args, enable) {
84
+ if (!enable)
85
+ return Array.from(args);
86
+ const alreadyEnabled = args.some((arg, index) => arg === "--enable" && args[index + 1] === "skills");
87
+ if (alreadyEnabled)
88
+ return Array.from(args);
89
+ const next = Array.from(args);
90
+ const modelIndex = next.findIndex((arg) => arg.startsWith(MODEL_FLAG_PREFIX));
91
+ const insertIndex = modelIndex === -1 ? next.length : modelIndex;
92
+ next.splice(insertIndex, 0, "--enable", "skills");
93
+ return next;
94
+ }
29
95
  //# sourceMappingURL=codingAgentConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codingAgentConstants.js","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gCAAgC;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,oBAAoB;IACpB,uBAAuB;IACvB,WAAW;IACX,iBAAiB;IACjB,IAAI;IACJ,6BAA6B;IAC7B,IAAI;IACJ,oCAAoC;IACpC,IAAI;IACJ,6CAA6C;IAC7C,IAAI;IACJ,sCAAsC;IACtC,IAAI;IACJ,uDAAuD;IACvD,IAAI;IACJ,wDAAwD;CAChD,CAAC"}
1
+ {"version":3,"file":"codingAgentConstants.js","sourceRoot":"","sources":["../../src/shared/codingAgentConstants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface BunReexecInput {
2
+ hasBunGlobal: boolean;
3
+ bunExecPath?: string | null;
4
+ argv: string[];
5
+ scriptPath: string;
6
+ }
7
+ export interface BunReexecCommand {
8
+ command: string;
9
+ args: string[];
10
+ }
11
+ export declare function buildBunReexecCommand(input: BunReexecInput): BunReexecCommand | null;
12
+ //# sourceMappingURL=bun-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bun-runtime.d.ts","sourceRoot":"","sources":["../../src/utils/bun-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,GACpB,gBAAgB,GAAG,IAAI,CAczB"}
@@ -0,0 +1,13 @@
1
+ export function buildBunReexecCommand(input) {
2
+ if (input.hasBunGlobal) {
3
+ return null;
4
+ }
5
+ const scriptPath = input.scriptPath?.trim();
6
+ if (!scriptPath) {
7
+ return null;
8
+ }
9
+ const bunCommand = input.bunExecPath?.trim() || "bun";
10
+ const args = [scriptPath, ...(input.argv?.slice(2) ?? [])];
11
+ return { command: bunCommand, args };
12
+ }
13
+ //# sourceMappingURL=bun-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bun-runtime.js","sourceRoot":"","sources":["../../src/utils/bun-runtime.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,qBAAqB,CACnC,KAAqB;IAErB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAU1E;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA6FlC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBzB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAU1E;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA4FlC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBzB"}
@@ -101,7 +101,6 @@ export async function findLatestCodexSession(options = {}) {
101
101
  if (sessionId) {
102
102
  return { id: sessionId, mtime: file.mtime };
103
103
  }
104
- // Priority 2: Fallback to reading file content if filename lacks UUID
105
104
  // (already handled via info above)
106
105
  }
107
106
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/utils/session/parsers/codex.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "4.12.0",
3
+ "version": "4.12.1",
4
4
  "description": "Interactive Git worktree manager with Coding Agent selection (Claude Code / Codex CLI / Gemini CLI)",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/src/claude.ts CHANGED
@@ -13,8 +13,10 @@ import {
13
13
  runAgentWithPty,
14
14
  shouldCaptureAgentOutput,
15
15
  } from "./logging/agentOutput.js";
16
+ import { createLogger } from "./logging/logger.js";
16
17
 
17
18
  const CLAUDE_CLI_PACKAGE = "@anthropic-ai/claude-code@latest";
19
+ const logger = createLogger({ category: "claude" });
18
20
 
19
21
  /**
20
22
  * Error wrapper used by `launchClaudeCode` to preserve the original failure
@@ -267,12 +269,12 @@ export async function launchClaudeCode(
267
269
  }
268
270
  };
269
271
 
270
- // Treat SIGHUP (1), SIGINT (2), SIGTERM (15) as normal exit signals
271
- // SIGHUP can occur when the PTY closes, SIGINT/SIGTERM are user interrupts
272
+ // Treat SIGINT (2), SIGTERM (15) as normal exit signals (user interrupts)
272
273
  const isNormalExitSignal = (signal?: number | null) =>
273
- signal === 1 || signal === 2 || signal === 15;
274
+ signal === 2 || signal === 15;
274
275
 
275
276
  const runCommand = async (file: string, fileArgs: string[]) => {
277
+ const runStartedAt = Date.now();
276
278
  if (captureOutput) {
277
279
  const result = await runAgentWithPty({
278
280
  command: file,
@@ -281,12 +283,26 @@ export async function launchClaudeCode(
281
283
  env: launchEnv,
282
284
  agentId: "claude-code",
283
285
  });
284
- // Treat normal exit signals (SIGHUP, SIGINT, SIGTERM) as successful exit
285
- if (isNormalExitSignal(result.signal)) {
286
+ const durationMs = Date.now() - runStartedAt;
287
+ const exitCode = result.exitCode ?? null;
288
+ const signal = result.signal ?? null;
289
+ const signalIsNormal = isNormalExitSignal(signal);
290
+ const hasError =
291
+ (!signalIsNormal && signal !== null && signal !== undefined) ||
292
+ (exitCode !== null && exitCode !== 0);
293
+ if (hasError) {
294
+ logger.error({ exitCode, signal, durationMs }, "Claude Code exited");
295
+ } else {
296
+ logger.info({ exitCode, signal, durationMs }, "Claude Code exited");
297
+ }
298
+ if (signalIsNormal) {
286
299
  return;
287
300
  }
288
- if (result.exitCode !== null && result.exitCode !== 0) {
289
- throw new Error(`Claude Code exited with code ${result.exitCode}`);
301
+ if (signal !== null && signal !== undefined) {
302
+ throw new Error(`Claude Code terminated by signal ${signal}`);
303
+ }
304
+ if (exitCode !== null && exitCode !== 0) {
305
+ throw new Error(`Claude Code exited with code ${exitCode}`);
290
306
  }
291
307
  return;
292
308
  }
@@ -295,13 +311,32 @@ export async function launchClaudeCode(
295
311
  return;
296
312
  }
297
313
 
298
- await execInteractive(file, fileArgs, {
299
- cwd: worktreePath,
300
- stdin: childStdio.stdin,
301
- stdout: childStdio.stdout,
302
- stderr: childStdio.stderr,
303
- env: launchEnv,
304
- });
314
+ try {
315
+ await execInteractive(file, fileArgs, {
316
+ cwd: worktreePath,
317
+ stdin: childStdio.stdin,
318
+ stdout: childStdio.stdout,
319
+ stderr: childStdio.stderr,
320
+ env: launchEnv,
321
+ });
322
+ const durationMs = Date.now() - runStartedAt;
323
+ logger.info(
324
+ { exitCode: 0, signal: null, durationMs },
325
+ "Claude Code exited",
326
+ );
327
+ } catch (execError: unknown) {
328
+ const durationMs = Date.now() - runStartedAt;
329
+ const exitCode =
330
+ (execError as { exitCode?: number | null })?.exitCode ?? null;
331
+ const signal =
332
+ (execError as { signal?: string | null })?.signal ?? null;
333
+ if (signal === "SIGINT" || signal === "SIGTERM") {
334
+ logger.info({ exitCode, signal, durationMs }, "Claude Code exited");
335
+ return;
336
+ }
337
+ logger.error({ exitCode, signal, durationMs }, "Claude Code failed");
338
+ throw execError;
339
+ }
305
340
  };
306
341
 
307
342
  // Determine execution strategy based on version selection
@@ -60,6 +60,7 @@ import {
60
60
  getLocalBranches,
61
61
  getRepositoryRoot,
62
62
  deleteBranch,
63
+ fetchAllRemotes,
63
64
  } from "../../git.js";
64
65
  import {
65
66
  isProtectedBranchName,
@@ -85,6 +86,8 @@ import {
85
86
  getTodayLogDate,
86
87
  readLogLinesForDate,
87
88
  resolveLogTarget,
89
+ selectLogTargetByRecency,
90
+ type LogTargetResolution,
88
91
  } from "../../logging/reader.js";
89
92
  import { parseLogLines } from "../../logging/formatter.js";
90
93
  import { copyToClipboard } from "./utils/clipboard.js";
@@ -102,11 +105,13 @@ import {
102
105
  } from "../../types/profiles.js";
103
106
  import { BRANCH_PREFIXES } from "../../config/constants.js";
104
107
  import { prefetchAgentVersions } from "./utils/versionCache.js";
108
+ import { prefetchInstalledVersions } from "./utils/installedVersionCache.js";
105
109
  import { getBunxAgentIds } from "./utils/versionFetcher.js";
106
110
 
107
111
  export type ExecutionMode = "normal" | "continue" | "resume";
108
112
 
109
113
  const UNSAFE_SELECTION_MESSAGE = "Unsafe branch selected. Select anyway?";
114
+ const SAFETY_PENDING_MESSAGE = "Safety check in progress. Select anyway?";
110
115
 
111
116
  export interface SelectionResult {
112
117
  branch: string;
@@ -297,6 +302,9 @@ export function AppSolid(props: AppSolidProps) {
297
302
  const [unsafeSelectionTarget, setUnsafeSelectionTarget] = createSignal<
298
303
  string | null
299
304
  >(null);
305
+ const [unsafeSelectionMessage, setUnsafeSelectionMessage] = createSignal(
306
+ UNSAFE_SELECTION_MESSAGE,
307
+ );
300
308
  const [branchFooterMessage, setBranchFooterMessage] = createSignal<{
301
309
  text: string;
302
310
  isSpinning?: boolean;
@@ -437,12 +445,20 @@ export function AppSolid(props: AppSolidProps) {
437
445
  const [profileConfirmMode, setProfileConfirmMode] =
438
446
  createSignal<ProfileConfirmMode>("delete-profile");
439
447
 
440
- const logTarget = createMemo(() =>
448
+ const [logEffectiveTarget, setLogEffectiveTarget] =
449
+ createSignal<LogTargetResolution | null>(null);
450
+ const logPrimaryTarget = createMemo(() =>
441
451
  resolveLogTarget(logTargetBranch(), workingDirectory()),
442
452
  );
453
+ const logFallbackTarget = createMemo(() =>
454
+ resolveLogTarget(null, workingDirectory()),
455
+ );
456
+ const logActiveTarget = createMemo(
457
+ () => logEffectiveTarget() ?? logPrimaryTarget(),
458
+ );
443
459
  const logBranchLabel = createMemo(() => logTargetBranch()?.label ?? null);
444
460
  const logSourceLabel = createMemo(() => {
445
- const target = logTarget();
461
+ const target = logActiveTarget();
446
462
  if (!target.sourcePath) {
447
463
  return "(none)";
448
464
  }
@@ -452,11 +468,18 @@ export function AppSolid(props: AppSolidProps) {
452
468
  ) {
453
469
  return `${target.sourcePath} (cwd)`;
454
470
  }
471
+ if (target.reason === "working-directory-fallback") {
472
+ return `${target.sourcePath} (cwd fallback)`;
473
+ }
455
474
  if (target.reason === "worktree-inaccessible") {
456
475
  return `${target.sourcePath} (inaccessible)`;
457
476
  }
458
477
  return target.sourcePath;
459
478
  });
479
+ createEffect(() => {
480
+ logPrimaryTarget();
481
+ setLogEffectiveTarget(null);
482
+ });
460
483
  const selectedProfileConfig = createMemo(() => {
461
484
  const name = selectedProfileName();
462
485
  const config = profilesConfig();
@@ -623,7 +646,13 @@ export function AppSolid(props: AppSolidProps) {
623
646
  setLogLoading(true);
624
647
  setLogError(null);
625
648
  try {
626
- const target = logTarget();
649
+ const primaryTarget = logPrimaryTarget();
650
+ const fallbackTarget = logFallbackTarget();
651
+ const target = await selectLogTargetByRecency(
652
+ primaryTarget,
653
+ fallbackTarget,
654
+ );
655
+ setLogEffectiveTarget(target);
627
656
  if (!target.logDir) {
628
657
  setLogEntries([]);
629
658
  setLogSelectedDate(targetDate);
@@ -658,7 +687,7 @@ export function AppSolid(props: AppSolidProps) {
658
687
  };
659
688
 
660
689
  const resetLogFiles = async () => {
661
- const target = logTarget();
690
+ const target = logActiveTarget();
662
691
  if (!target.logDir) {
663
692
  showLogNotification("No logs available.", "error");
664
693
  return;
@@ -723,6 +752,14 @@ export function AppSolid(props: AppSolidProps) {
723
752
  void refreshCleanupSafety();
724
753
 
725
754
  void (async () => {
755
+ // Fetch remote updates with --prune to remove stale tracking refs
756
+ await withTimeout(
757
+ fetchAllRemotes({ cwd: repoRoot }),
758
+ BRANCH_FULL_LOAD_TIMEOUT_MS,
759
+ ).catch(() => {
760
+ // Ignore fetch errors (e.g., network issues)
761
+ });
762
+
726
763
  const [branches, latestWorktrees] = await Promise.all([
727
764
  withTimeout(
728
765
  getAllBranches(repoRoot),
@@ -850,11 +887,15 @@ export function AppSolid(props: AppSolidProps) {
850
887
  void prefetchAgentVersions(bunxAgentIds).catch(() => {
851
888
  // Silently handle errors - cache will return null and UI will show "latest" only
852
889
  });
890
+ // FR-017: Prefetch installed versions for all builtin agents at startup
891
+ void prefetchInstalledVersions(bunxAgentIds).catch(() => {
892
+ // Silently handle errors - cache will return null and UI won't show "installed"
893
+ });
853
894
  });
854
895
 
855
896
  createEffect(() => {
856
897
  if (currentScreen() === "log-list") {
857
- logTarget();
898
+ logPrimaryTarget();
858
899
  void loadLogEntries(logSelectedDate());
859
900
  }
860
901
  });
@@ -1530,8 +1571,15 @@ export function AppSolid(props: AppSolidProps) {
1530
1571
  !hasSafetyPending &&
1531
1572
  (hasUncommitted || hasUnpushed || isUnmerged || !safeToCleanup);
1532
1573
 
1574
+ if (branch && hasSafetyPending) {
1575
+ setUnsafeSelectionTarget(branch.name);
1576
+ setUnsafeSelectionMessage(SAFETY_PENDING_MESSAGE);
1577
+ setUnsafeSelectionConfirmVisible(true);
1578
+ return;
1579
+ }
1533
1580
  if (branch && isUnsafe) {
1534
1581
  setUnsafeSelectionTarget(branch.name);
1582
+ setUnsafeSelectionMessage(UNSAFE_SELECTION_MESSAGE);
1535
1583
  setUnsafeSelectionConfirmVisible(true);
1536
1584
  return;
1537
1585
  }
@@ -1545,6 +1593,7 @@ export function AppSolid(props: AppSolidProps) {
1545
1593
  const target = unsafeSelectionTarget();
1546
1594
  setUnsafeSelectionConfirmVisible(false);
1547
1595
  setUnsafeSelectionTarget(null);
1596
+ setUnsafeSelectionMessage(UNSAFE_SELECTION_MESSAGE);
1548
1597
  if (!confirmed || !target) {
1549
1598
  return;
1550
1599
  }
@@ -2005,7 +2054,7 @@ export function AppSolid(props: AppSolidProps) {
2005
2054
  padding={1}
2006
2055
  >
2007
2056
  <ConfirmScreen
2008
- message={UNSAFE_SELECTION_MESSAGE}
2057
+ message={unsafeSelectionMessage()}
2009
2058
  onConfirm={confirmUnsafeSelection}
2010
2059
  yesLabel="OK"
2011
2060
  noLabel="Cancel"
@@ -486,6 +486,97 @@ describe("AppSolid unsafe selection confirm", () => {
486
486
  }
487
487
  });
488
488
 
489
+ it("shows confirm when safety check is pending", async () => {
490
+ let resolveStatus: ((value: unknown[]) => void) | null = null;
491
+ const pendingPromise = new Promise<unknown[]>((resolve) => {
492
+ resolveStatus = resolve;
493
+ });
494
+ const getCleanupStatusMock = mock(async () => pendingPromise);
495
+
496
+ mock.module?.("../../../../worktree.js", () => ({
497
+ listAdditionalWorktrees: mock(async () => []),
498
+ repairWorktrees: mock(async () => ({
499
+ repairedCount: 0,
500
+ failedCount: 0,
501
+ failures: [],
502
+ })),
503
+ removeWorktree: mock(async () => {}),
504
+ getCleanupStatus: getCleanupStatusMock,
505
+ isProtectedBranchName: mock(() => false),
506
+ }));
507
+
508
+ mock.module?.("../../../../git.js", () => ({
509
+ getRepositoryRoot: mock(async () => "/repo"),
510
+ getAllBranches: mock(async () => []),
511
+ getLocalBranches: mock(async () => []),
512
+ getCurrentBranch: mock(async () => "main"),
513
+ deleteBranch: mock(async () => {}),
514
+ }));
515
+
516
+ mock.module?.("../../../../config/index.js", () => ({
517
+ getConfig: mock(async () => ({ defaultBaseBranch: "main" })),
518
+ getLastToolUsageMap: mock(async () => new Map()),
519
+ loadSession: mock(async () => null),
520
+ }));
521
+
522
+ mock.module?.("../../../../config/tools.js", () => ({
523
+ getAllCodingAgents: mock(async () => [
524
+ { id: "codex-cli", displayName: "Codex CLI" },
525
+ ]),
526
+ }));
527
+
528
+ mock.module?.("../../../../config/profiles.js", () => ({
529
+ loadProfiles: mock(async () => ({ profiles: {}, activeProfile: null })),
530
+ createProfile: mock(async () => {}),
531
+ updateProfile: mock(async () => {}),
532
+ deleteProfile: mock(async () => {}),
533
+ setActiveProfile: mock(async () => {}),
534
+ }));
535
+
536
+ const { AppSolid } = await import("../../App.solid.js");
537
+
538
+ const branch = createBranch({
539
+ name: "feature/pending",
540
+ label: "feature/pending",
541
+ value: "feature/pending",
542
+ });
543
+ const stats = makeStats({ localCount: 1, worktreeCount: 1 });
544
+
545
+ const testSetup = await testRender(
546
+ () => (
547
+ <AppSolid
548
+ branches={[branch]}
549
+ stats={stats}
550
+ version={null}
551
+ toolStatuses={[]}
552
+ />
553
+ ),
554
+ { width: 80, height: 24 },
555
+ );
556
+ await testSetup.renderOnce();
557
+ await new Promise((resolve) => setTimeout(resolve, 0));
558
+ await testSetup.renderOnce();
559
+
560
+ try {
561
+ await testSetup.mockInput.typeText(" ");
562
+ await testSetup.renderOnce();
563
+
564
+ let frame = testSetup.captureCharFrame();
565
+ expect(frame).toContain("Safety check in progress. Select anyway?");
566
+
567
+ await testSetup.mockInput.typeText("n");
568
+ await testSetup.renderOnce();
569
+
570
+ frame = testSetup.captureCharFrame();
571
+ expect(frame).toContain("[ ] w");
572
+ expect(frame).toContain("feature/pending");
573
+ expect(frame).not.toContain("Safety check in progress. Select anyway?");
574
+ } finally {
575
+ resolveStatus?.([]);
576
+ testSetup.renderer.destroy();
577
+ }
578
+ });
579
+
489
580
  it("does not propagate Enter from confirm to branch selection", async () => {
490
581
  const getCleanupStatusMock = mock(async () => [
491
582
  {