diff --git a/pom.xml b/pom.xml
index 7a45e222..7b164bb2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.github.nbclaudecodegui
netbeans-claude-code-gui
- 0.21.52-SNAPSHOT
+ 0.21.53-SNAPSHOT
nbm
Netbeans Claude Code GUI
NetBeans plugin that provides a GUI for Claude Code CLI — run claude code sessions directly inside the IDE.
diff --git a/src/main/java/io/github/nbclaudecodegui/controller/ClaudeSessionController.java b/src/main/java/io/github/nbclaudecodegui/controller/ClaudeSessionController.java
index 9dfc0686..b434df5e 100644
--- a/src/main/java/io/github/nbclaudecodegui/controller/ClaudeSessionController.java
+++ b/src/main/java/io/github/nbclaudecodegui/controller/ClaudeSessionController.java
@@ -1222,6 +1222,9 @@ public boolean hasLiveProcess() {
return claudeProcess != null && claudeProcess.isRunning();
}
+ /** Returns the timestamp (ms) when the current PTY process was launched, or 0 if none. */
+ public long getProcessStartedAt() { return processStartedAt; }
+
/**
* Reads the Claude CLI version string from the running process.
*
diff --git a/src/main/java/io/github/nbclaudecodegui/ui/ClaudeSessionTab.java b/src/main/java/io/github/nbclaudecodegui/ui/ClaudeSessionTab.java
index 7b57bc56..76571ec0 100644
--- a/src/main/java/io/github/nbclaudecodegui/ui/ClaudeSessionTab.java
+++ b/src/main/java/io/github/nbclaudecodegui/ui/ClaudeSessionTab.java
@@ -974,8 +974,14 @@ public void openSwitchDialog(SessionMode initialMode) {
io.github.nbclaudecodegui.model.SavedSession recent =
io.github.nbclaudecodegui.process.ClaudeSessionStore.findMostRecent(
workingDir.toPath(), claudeConfigDir);
- String currentName = recent != null ? recent.displayName() : "";
- String currentId = recent != null ? recent.sessionId() : null;
+ long procStart = controller.getProcessStartedAt();
+ // If a process is running and the most recent JSONL predates it, it's an OLD session —
+ // not the currently running one (which hasn't written its JSONL yet)
+ boolean isCurrentSession = recent != null
+ && (procStart == 0 || (recent.lastAt() != null
+ && recent.lastAt().toEpochMilli() >= procStart));
+ String currentName = isCurrentSession ? recent.displayName() : "";
+ String currentId = isCurrentSession ? recent.sessionId() : null;
final ClaudeSessionTab self = this;
final Path configDir = claudeConfigDir;