Skip to content

Commit 96db5a3

Browse files
waltossclaude
andcommitted
Add CHANGELOG for v0.6.0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c8baf05 commit 96db5a3

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
# Changelog
22

3+
## 0.6.0
4+
5+
### New Features
6+
7+
- **Java expression evaluation (ECJ compile+inject)** — full Java expression support in `dbg eval`, replacing the limited variable/field-only evaluator
8+
- Arithmetic, method calls with arguments, ternary, constructors, collections, string operations
9+
- Automatic reflection fallback for private field access
10+
- Compiles expressions to bytecode with ECJ 3.40.0, injects via JDI `ClassLoader.defineClass`
11+
- **Java hot code replace (`dbg hotpatch`)** — live-patch Java classes without restarting the JVM
12+
- `.java` input: compiles with ECJ using debuggee classpath, redefines via `vm.redefineClasses()`
13+
- `.class` input: reads bytecode directly, auto-detects inner class siblings
14+
- Obsolete frame detection with restart-frame support
15+
- Two-step DAP protocol (prepare + redefineClasses) avoids java-debug framework deadlock
16+
- Works with Spring Boot: attach to running app, hotpatch controller, verify with curl
17+
- **Unified structured logger** — single typed JSONL log file per session
18+
- Replaces separate CdpLogger + DaemonLogger + DEBUG_DAP with `Logger<N>` typed by source
19+
- `LogData<N, M>` conditional type: known messages enforce data shapes at compile time
20+
- Custom formatters per (source, msg) pair: CDP `→/←/⚡`, DAP `→/←/⚡`, default `key=value`
21+
- `dbg logs --src cdp --level trace` with colored output
22+
23+
### Bug Fixes
24+
25+
- **JVM freeze after hotpatch**`SUSPEND_ALL` breakpoint policy (matching IntelliJ) prevents VM safepoint deadlock when `redefineClasses` is called with only one thread paused
26+
- **Breakpoint disable/re-enable around redefineClasses** — prevents JDWP agent from firing events during class redefinition safepoint
27+
28+
### Improvements
29+
30+
- **Maven-based Java adapter installer** — dependencies resolved via `mvn dependency:copy-dependencies` instead of manual JAR downloads; `pom.xml` is the single source of truth
31+
- **java-debug 0.53.2** (built from source) — includes `suspendAllThreads` setting for `SUSPEND_ALL` policy
32+
- **`bun run build:java`** — one command to recompile the Java adapter during development
33+
- **`dbg install java`** always recompiles (no "already installed" guard)
34+
- **DAP runtime configs** extracted into `src/dap/runtimes/` with typed `DapRuntimeConfig` interface
35+
- **WaitForStopOptions** — unified continue/step options across CDP and DAP sessions
36+
- **`-cp` classpath support** for Java launch: `dbg launch java -- -cp lib/*:classes Main`
37+
- **Short filename resolution** for Java sources (Maven layout auto-detection)
38+
- **`PathSearchingVirtualMachine.classPath()`** for safe classpath resolution without thread resumption
39+
340
## 0.5.0
441

542
### New Features

0 commit comments

Comments
 (0)