Skip to content

Releases: oisee/vibing-steampunk

v2.12.3 - 404 Detection + Auto-Reconnect

08 Dec 10:49

Choose a tag to compare

Bug Fixes

Class Include Filename Parsing (v2.12.2)

  • Fixed parsing of .clas.testclasses.abap and other class includes
  • Parent class name now correctly extracted from filename, not content

404 Detection in DeployFromFile

  • Only HTTP 404 treated as "object doesn't exist"
  • Session timeouts no longer trigger false "parent class does not exist" errors

New Features

Auto-Reconnect on Session Timeout

Transport layer automatically handles SAP session expiration:

  • Detects ICMENOSESSION and "Session Timed Out" errors
  • Refreshes session and retries request transparently
  • No more manual reconnection needed for long operations

New Helper Functions

  • IsNotFoundError(err) - check for 404 errors
  • IsSessionExpiredError(err) - check for session timeout

Full Changelog

v2.12.1...v2.12.3

v2.12.2 - Class Includes Fix

08 Dec 10:28

Choose a tag to compare

Bug Fix

Class Include Filename Parsing

Fixed a bug where ImportFromFile would incorrectly parse the object name for class include files.

Before (broken):

  • zcl_foo.clas.testclasses.abap → would parse LTCL_XXX from local test class in content
  • Result: "parent class LTCL_XXX does not exist"

After (fixed):

  • zcl_foo.clas.testclasses.abap → correctly extracts ZCL_FOO from filename
  • Result: test classes imported into the correct parent class

Affected File Types

  • .clas.testclasses.abap (CCAU include)
  • .clas.locals_def.abap (CCDEF include)
  • .clas.locals_imp.abap (CCIMP include)
  • .clas.macros.abap (CCMAC include)

New Unit Tests

Added 5 new tests for class include filename parsing.

Full Changelog

v2.12.1...v2.12.2

v2.12.1 - CreatePackage in Focused Mode

07 Dec 22:24

Choose a tag to compare

What's New

CreatePackage Tool Now in Focused Mode

  • 42 tools now available in focused mode (was 41)
  • Create local packages ($-prefixed) directly from AI assistant
  • Optional parent package support for organized structure

Usage

CreatePackage:
  name: "$ZLOCAL_TEST"      # must start with $
  description: "My package"
  parent: "$TMP"            # optional

Full Changelog

v2.12.0...v2.12.1

v2.12.0 - abapGit-Compatible Format & Batch Operations

07 Dec 20:18

Choose a tag to compare

New Features

Class Includes Support (abapGit-Compatible)

  • Import/export .clas.testclasses.abap, .clas.locals_def.abap, .clas.locals_imp.abap, .clas.macros.abap
  • Auto-detect include type from file extension
  • ExportToFile now supports include parameter for selective export

DSL Batch Import/Export

  • dsl.Import(client).FromDirectory("./src/").ToPackage("$PKG").Execute(ctx)
  • dsl.Export(client).Classes("ZCL_*").ToDirectory("./backup/").Execute(ctx)
  • Priority ordering: DDLSFirst(), RAPOrder(), CustomOrder(map[string]int{...})
  • FromFilesOrdered() for explicit import sequence

Pipeline Builder

  • DeployPipeline: import → activate → test
  • RAPPipeline: import → activate → publish → verify (full RAP deployment)
  • ExportPipeline: search → export
  • New pipeline actions: Import, Export, Publish, Query, Create, WriteSource

File Extension Mapping

Extension SAP Include
.clas.abap Main class
.clas.testclasses.abap Test classes (CCAU)
.clas.locals_def.abap Local definitions (CCDEF)
.clas.locals_imp.abap Local implementations (CCIMP)
.clas.macros.abap Macros (CCMAC)

Usage Examples

// Deploy from git repository
dsl.Import(client).
    FromDirectory("./src/").
    ToPackage("$ZRAY").
    RAPOrder().
    Execute(ctx)

// Export class with all includes
dsl.Export(client).
    Classes("ZCL_TRAVEL").
    ToDirectory("./backup/").
    Execute(ctx)

// Full RAP deployment pipeline
dsl.RAPPipeline(client, "./src/", "$ZRAY", "ZTRAVEL_SB")

Full Changelog: v2.11.0...v2.12.0

v2.11.0: Transport Management & Safety Controls

05 Dec 18:57

Choose a tag to compare

What's New

Transport Management (5 New Tools)

  • ListTransports - List transport requests for a user
  • GetTransport - Get detailed transport information with objects & tasks
  • CreateTransport - Create new transport request (expert mode)
  • ReleaseTransport - Release transport (expert mode, irreversible)
  • DeleteTransport - Delete modifiable transport (expert mode)

Safety Controls for Transports

  • Default disabled - Transports require --enable-transports or SAP_ENABLE_TRANSPORTS=true
  • Read-only mode - --transport-read-only blocks write operations
  • Whitelist - --allowed-transports "A4HK*,DEV*" restricts to specific patterns
  • Tool group - --disabled-groups C disables all transport tools

Documentation

  • Report 020: Transport Management Implementation Plan
  • Report 021: Comprehensive Project Status (68 tools, 28k LOC)
  • Report 022: Future Vision - AI-Native ABAP Development
  • Report 023: VSP for ABAP Developers & DevOps article

Project Status

Metric Value
Total Tools 68 (41 focused, 68 expert)
Lines of Code ~28,000
Unit Tests 155+ passing
Platforms 9
Reports 51

Downloads

Platform Architecture File
Linux x64 vsp-linux-amd64
Linux ARM64 vsp-linux-arm64
Linux x86 vsp-linux-386
Linux ARM vsp-linux-arm
macOS Intel vsp-darwin-amd64
macOS Apple Silicon vsp-darwin-arm64
Windows x64 vsp-windows-amd64.exe
Windows ARM64 vsp-windows-arm64.exe
Windows x86 vsp-windows-386.exe

Quick Start

# Download (Linux x64)
curl -LO https://github.com/oisee/vibing-steampunk/releases/download/v2.11.0/vsp-linux-amd64
chmod +x vsp-linux-amd64

# Configure
export SAP_URL="https://your-sap:44300"
export SAP_USER="your_user"
export SAP_PASSWORD="your_password"
export SAP_CLIENT="100"

# Run with transports enabled
./vsp-linux-amd64 --enable-transports

Full Changelog

See all commits since v2.10.1

v2.10.1: UI5 Write Ops Disabled (ADT Filestore Read-Only)

05 Dec 16:51

Choose a tag to compare

🔧 Patch Release

Disabled UI5 write operations - the ADT filestore API is read-only (returns 405 on POST/PUT/DELETE).

Kept (3 read-only ADT tools)

  • UI5ListApps - List UI5/Fiori BSP applications ✅
  • UI5GetApp - Get UI5 app details ✅
  • UI5GetFileContent - Read file content ✅

Disabled (need custom plugin via /UI5/CL_REPOSITORY_LOAD)

  • UI5UploadFile - PUT not supported
  • UI5DeleteFile - DELETE not supported
  • UI5CreateApp - POST returns 405
  • UI5DeleteApp - DELETE not supported

📊 Stats

  • Total Tools: 76 (49 focused, 76 expert)
  • Change: -4 tools from v2.10.0

Future: Implement UI5 write ops via self-deployable custom ABAP plugin.

v2.10.0: UI5/BSP Management, AMDP Debugger & Tool Groups

05 Dec 16:46

Choose a tag to compare

🎉 New Features

UI5/BSP Management (7 tools)

  • UI5ListApps - List UI5/Fiori BSP applications
  • UI5GetApp - Get UI5 app details and file structure
  • UI5GetFileContent - Read file content from UI5 app
  • UI5UploadFile - Upload file to UI5 app
  • UI5DeleteFile - Delete file from UI5 app
  • UI5CreateApp - Create new UI5 app (⚠️ 405 - filestore API read-only)
  • UI5DeleteApp - Delete UI5 app

AMDP/HANA Debugger (5 tools)

  • AMDPDebuggerStart - Start AMDP debug session
  • AMDPDebuggerResume - Resume/wait for AMDP events (long-poll)
  • AMDPDebuggerStop - Stop AMDP debug session
  • AMDPDebuggerStep - Step through SQLScript code
  • AMDPGetVariables - Get variable values during debugging

Tool Group Disablement

New --disabled-groups flag / SAP_DISABLED_GROUPS env var:

Code Group Tools Disabled
5 or U UI5/BSP 7 tools
T Tests RunUnitTests, RunATCCheck
H HANA 5 AMDP debugger tools
D Debug 9 ABAP debugger tools
# Disable UI5 and HANA tools
./vsp --disabled-groups "5H" ...

# Via environment variable
SAP_DISABLED_GROUPS="TH" ./vsp ...

📊 Stats

  • Total Tools: 80 (53 focused, 80 expert)
  • New Files: pkg/adt/ui5.go, pkg/adt/amdp_debugger.go
  • Lines Added: 1,320+

📦 Downloads

Pre-built binaries for all platforms below.

v2.9.0: Full Interactive Debugging

05 Dec 15:47

Choose a tag to compare

🎉 Full Interactive Debugging!

This release confirms that the complete ABAP debugging workflow is now operational via vsp MCP tools!

What's New

  • Fix: DebuggerListen Accept header corrected (application/vnd.sap.as+xml)
  • Verified: Complete debugging workflow against real SAP system
  • Discovery: stepOver (F6) keeps debug sessions alive interactively
  • Docs: Comprehensive session timeout analysis report

Debugging Workflow

SetExternalBreakpoint → DebuggerListen → DebuggerAttach
    → DebuggerGetStack → DebuggerStep(stepOver) → repeat

Key Finding

Step Type Eclipse Behavior
stepInto F5 Enter methods, keep control
stepOver F6 Execute line, keep control
stepReturn F7 Return from method, keep control
stepContinue F8 Run to next breakpoint or end

Session stays alive as long as you keep stepping!

Downloads

Platform Architecture File
Linux x64 vsp-linux-amd64
Linux ARM64 vsp-linux-arm64
Linux ARM vsp-linux-arm
Linux x86 vsp-linux-386
macOS x64 vsp-darwin-amd64
macOS Apple Silicon vsp-darwin-arm64
Windows x64 vsp-windows-amd64.exe
Windows ARM64 vsp-windows-arm64.exe
Windows x86 vsp-windows-386.exe

Installation

# Download and make executable
chmod +x vsp-linux-amd64
./vsp-linux-amd64 --url http://your-sap:50000 --user USER --password PASS

Full Changelog: v2.8.0...v2.9.0

v2.8.0 - Full Debug Session Support

05 Dec 13:27

Choose a tag to compare

Full Debug Session Support

This release enables AI-powered debugging with complete debug session control:

New MCP Tools (6)

  • DebuggerListen - Wait for debuggee to hit breakpoint (long-poll)
  • DebuggerAttach - Attach to caught debuggee
  • DebuggerDetach - Release debuggee and end session
  • DebuggerStep - Step into/over/return/continue through code
  • DebuggerGetStack - Get call stack with program/line info
  • DebuggerGetVariables - Get variable values during debugging

AI Debugging Workflow

1. SetExternalBreakpoint  → Place breakpoint on code
2. DebuggerListen         → Wait for debuggee to hit breakpoint
3. DebuggerAttach         → Connect to the debuggee
4. DebuggerGetStack       → See where we are in the code
5. DebuggerGetVariables   → Inspect variable values
6. DebuggerStep           → Step through code
7. DebuggerDetach         → Release the debuggee

Changes

  • 8 new client methods for debug session management
  • 14 new unit tests
  • Tool count: 37 focused (was 31), 74 expert (was 68)

🤖 Generated with Claude Code

v2.7.0: External Debugger & Listener

05 Dec 12:41

Choose a tag to compare

What's New

External Debugger Support

  • External Breakpoints: Set line, exception, statement, and message breakpoints
  • Debug Listener: Long-polling listener for autonomous debugging
  • Breakpoint Validation: Validate breakpoint conditions before setting
  • Debuggee Parsing: Parse debuggee response when breakpoint is hit

Foundation for AI-Powered Debugging

This release lays the groundwork for AI-powered debugger scripting:

  • Autonomous debugging workflows
  • Automated root cause analysis
  • CI/CD pipeline integration

New MCP Tools

Tool Description
SetExternalBreakpoint Set external breakpoints (line, exception, statement, message)
GetExternalBreakpoints List all external breakpoints for a user
DeleteExternalBreakpoint Delete an external breakpoint
ValidateBreakpointCondition Validate breakpoint condition syntax

Technical Details

  • Protocol: Long-polling HTTP (not WebSocket) - ADT debugger uses REST
  • Timeout: Configurable (default 240 seconds)
  • Session: Terminal ID for IDE instance identification

Stats

  • Lines of Code: 2,357 added
  • Unit Tests: 270 (21 new debugger tests)
  • Integration Tests: 34

Downloads

Platform Architecture File
Linux x64 vsp-linux-amd64
Linux ARM64 vsp-linux-arm64
Linux x86 vsp-linux-386
Linux ARM vsp-linux-arm
macOS x64 vsp-darwin-amd64
macOS Apple Silicon vsp-darwin-arm64
Windows x64 vsp-windows-amd64.exe
Windows ARM64 vsp-windows-arm64.exe
Windows x86 vsp-windows-386.exe

Installation

# Linux/macOS
curl -LO https://github.com/oisee/vibing-steampunk/releases/download/v2.7.0/vsp-linux-amd64
chmod +x vsp-linux-amd64
./vsp-linux-amd64 --url http://your-sap:50000 --user USER --password PASS

Full Changelog

v2.6.0...v2.7.0