You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Automated Shell PATH Configuration: Enhanced install.sh to automatically detect the user's active shell (bash, zsh, fish) and register ~/.local/bin in the corresponding profile (.bashrc, .zshrc, config.fish). Includes recursive symlink resolution to preserve GNU Stow / Chezmoi dotfile setups, idempotent delimiter replacement (# >>> debroid installer >>>), and automatic skip when already on PATH (#75).
Installer Integration Test Suite: Added a hermetic multi-shell integration test suite (scripts/test_install.sh) executed on every CI PR run, validating binary installation, shell PATH exports, subshell CLI version invocation, AI skill extraction, and dotfile symlink safety across environments (#75).
Rich Kotlin & Compound Expression Evaluation: The debroid eval command now natively supports evaluating complex runtime expressions directly in your paused stack frame, including static methods, static constants/fields, compound boolean logic, short-circuiting, Kotlin properties, safe calls, default fallbacks, and type casting (#72, #79, #80):
Static Methods & Constants:debroid eval <session_id> <thread_id> "Math.max(10, 20)", java.lang.System.currentTimeMillis(), Integer.MAX_VALUE, View.VISIBLE, or String.class (supports fully-qualified and simple class names with standard package imports like java.lang, java.util, kotlin, android.util, android.view, etc., and Kotlin singleton/companion objects via INSTANCE) (#79)
Runtime Type Checks & Type Casting:debroid eval <session_id> <thread_id> "(account as AdminAccount).permissions" or account as? GuestAccount ?: fallback (supports safe/unsafe casting as / as?, type checks is / !is, and numeric conversions)
Omit Null Values in JSON Serialization: Configured CLI JSON serialization to omit null fields (explicitNulls = false), reducing JSON payload size and saving context tokens for AI agents.
Fixed
StringReference Incorrectly Marked as Primitive: Fixed an issue where StringReference variable values were formatted with isPrimitive = true despite providing a heap objectId. Strings are reference types on the JVM heap and are now correctly reported with isPrimitive = false (#58).
Breakpoint ID in Poll Breakpoint Hit Event: Fixed an issue where polling for BREAKPOINT_HIT events returned breakpointId as null. Registered breakpoint request IDs (bp_*) are now attached to JDI breakpoint requests and propagated into the poll event payload (#73).
JVM User Home Resolution in Launcher Stub: Updated the standalone binary launcher stub in install.sh and release workflow to pass -Duser.home="$USER_HOME" to the Java runtime, and added $HOME environment variable fallbacks in SkillExtractor, UpdateCache, and BinaryUpdater to ensure proper path resolution under custom $HOME configurations and Linux environments (#75).