Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- Fixed model list showing garbled names (e.g. "Mtoket 4.6 with 1M context") when the /model menu includes 1M-context variants and cost annotations

# 0.22.30 (2026-05-05)

- Fixed digits going into the "Type something." text field instead of selecting the intended numbered option in planning and permission-prompt choice menus
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>io.github.nbclaudecodegui</groupId>
<artifactId>netbeans-claude-code-gui</artifactId>
<version>0.22.46-SNAPSHOT</version>
<version>0.22.47-SNAPSHOT</version>
<packaging>nbm</packaging>
<name>Netbeans Plugin Claude Code GUI</name>
<description>NetBeans plugin that provides a GUI for Claude Code CLI — run claude code sessions directly inside the IDE.</description>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -887,7 +887,14 @@ void discoverModels() {

List<String> models;
int selIdx;
if (menuOpt.isPresent() && !menuOpt.get().options().isEmpty()) {
// Always prefer ModelMenuParser — it is fixture-tested and handles all known
// formats including 1M-context variants. The ChoiceMenuModel path is kept as
// a fallback for formats that ModelMenuParser does not recognise.
ModelMenuParser.ModelDiscovery discovery = new ModelMenuParser().parse(lines);
if (!discovery.models().isEmpty()) {
models = discovery.models();
selIdx = discovery.currentIndex();
} else if (menuOpt.isPresent() && !menuOpt.get().options().isEmpty()) {
List<ChoiceMenuModel.Option> opts = menuOpt.get().options();
Pattern descPat = Pattern.compile("(?:\u2714\\s+|\\s{2,})(.+?)(?:\\s*[·\u00b7].*)?$");
Pattern currentlyPat = Pattern.compile("\\(currently\\s+([^)]+?)\\s*\\)");
Expand All @@ -909,9 +916,8 @@ void discoverModels() {
if (display.contains("\u2714")) selIdx = i;
}
} else {
ModelMenuParser.ModelDiscovery discovery = new ModelMenuParser().parse(lines);
models = discovery.models();
selIdx = discovery.currentIndex();
models = List.of();
selIdx = -1;
}

connector.write(new byte[]{0x1b}); // Esc — dismiss model menu
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"models": ["Sonnet 4.6", "Sonnet 4.6 with 1M context", "Opus 4.7", "Opus 4.7 with 1M context", "Haiku 4.5"], "currentIndex": 0}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

───────────────────────────────────────────────────────────────────────────────────────────────────────────────
Select model
Switch between Claude models. Applies to this session and future Claude Code sessions. For other/previous
model names, specify with --model.

❯ 1. Default (recommended) ✔ Sonnet 4.6 · Best for everyday tasks
2. Sonnet (1M context) Sonnet 4.6 with 1M context · Billed as extra usage · $3/$15 per Mtok
3. Opus Opus 4.7 · Most capable for complex work · ~2× usage vs Sonnet
4. Opus 4.7 (1M context) Opus 4.7 with 1M context · ~2× usage vs Sonnet · Billed as extra usage ·
$5/$25 per Mtok
5. Haiku Haiku 4.5 · Fastest for quick answers

○ Low effort ← → to adjust

Use /fast to turn on Fast mode (Opus 4.6 only).

Enter to confirm · Esc to exit


Loading