Skip to content

Releases: oisee/vibing-steampunk

v2.38.1

07 Apr 21:33

Choose a tag to compare

v2.38.0

07 Apr 20:43

Choose a tag to compare

v2.37.0 — Graph Engine & Package Boundary Analysis

05 Apr 17:21

Choose a tag to compare

What's New

Graph Engine (pkg/graph/) — 1500 LOC, 11 tests

Package boundary analysis — check if your ABAP code stays within package boundaries:

SAP(action="analyze", params={
    "type": "check_boundaries",
    "package": "$ZDEV",
    "whitelist": "$ZCOMMON,$ZUTIL*"
})

Three modes: Offline (embedded parser, no SAP needed) | Object | Package

Dynamic call detection — catches CALL FUNCTION lv_variable, SUBMIT (lv_prog), CREATE OBJECT TYPE (lv_class) that CROSS/WBCROSSGT miss.

Six verdicts: STANDARD ✓ | SAME_PACKAGE ✓ | ALLOWED ✓ | VIOLATION ✗ | DYNAMIC ⚠ | UNKNOWN

Improved SAP Tool Description & Help

  • Concise description with real SAP(action=..., target=..., params={...}) syntax
  • Method-level read/edit: params={"method": "GET_DATA"}
  • New SAP(action="help", target="tips") — best practices & workflows

Design Reports

  • 001: GUI Debugger — 3-phase plan, ADT debugger API map
  • 002: Graph Engine — ZXRAY port, 4 data sources, boundary queries
  • 003: Codex Alignment — edge semantics, provenance model

🤖 Generated with Claude Code

v2.36.0: All PRs Closed — mcp-go v0.47, SSO, HTTP Streamable

05 Apr 00:50

Choose a tag to compare

v2.36.0 — Backlog Zero

All 14 community PRs processed. 0 open PRs remaining.

Highlights

mcp-go v0.47.0 (was v0.17.0)

  • 400+ API migrations across 33 handler files
  • New Streamable HTTP transport: vsp --transport http --http-addr :8080
  • Typed accessors: GetString(), GetFloat(), GetBool(), GetInt()

Browser SSO Authentication (PR #77 @cwbr)

  • --browser-auth opens browser for Kerberos/SAML/Keycloak login
  • Auto-detects Edge, Chrome, Chromium, Brave on all platforms
  • --cookie-save cookies.txt persists session for reuse
  • --keepalive 5m prevents idle session timeout

Full Sprint Stats (v2.33.0 → v2.36.0)

Metric Before After
Open PRs 14 0
Open Issues 18 6 (backlog)
Tools (expert) 122 147
Tools (focused) 81 100
Unit tests ~250 821
Test packages 11/13 14/14
mcp-go v0.17.0 v0.47.0

All Processed PRs

PR Author Action
#80 @oklausen Merged (copilot-instructions)
#44 @mv0101 Merged (Windows quickstart)
#83 @blicksten Merged (version history)
#85 @blicksten Cherry-picked (CDS tools)
#84 @blicksten Cherry-picked (testing tools)
#53 @andreasmuenster Reimplemented (Clean Core)
#41 @Prolls Cherry-picked (gCTS)
#42 @Prolls Cherry-picked (i18n)
#37 @kts982 Reimplemented (pagination)
#38 @danielheringers Reimplemented (mcp-go upgrade)
#77 @cwbr Cherry-picked (Browser SSO)
#79 @snymanpaul Reimplemented (session fix)
#82 @blicksten Closed (endpoints need rewrite)
#86 @blicksten Closed (doesn't compile)

Remaining Issues (6, all backlog)

  • #74: CDS DDLX metadata extensions
  • #55: RunReport APC spool (architecture)
  • #27: Additional object types (ongoing)
  • #45, #46: Sync script improvements
  • #2: GUI debugger (parked)

v2.35.0: Quality Sprint Complete — 147 tools, 816 tests

05 Apr 00:21

Choose a tag to compare

v2.35.0 — Quality Sprint Complete

Two back-to-back sprints processed 11 community PRs and closed 11 issues.

New Tools (+25 since v2.33.0)

Category Tools Source
Version History GetRevisions, GetRevisionSource, CompareVersions PR #83 @blicksten
CDS Analysis GetCDSImpactAnalysis, GetCDSElementInfo PR #85 @blicksten
Testing GetCodeCoverage, GetCheckRunResults PR #84 @blicksten
Clean Core GetAPIReleaseState PR #53 @andreasmuenster
gCTS (10 tools) List/Get/Create/Delete repos, Clone, Pull, Commit, Branches, History PR #41 @Prolls
i18n (7 tools) GetObjectTexts, DataElementLabels, MessageClass, TextPool, CompareLanguages, Write ops PR #42 @Prolls
Table Pagination GetTableContents + offset/columns_only PR #37 @kts982

Stability Fixes

  • Default session → stateless (fixes #81, #26)
  • Installer resilience for SAP 7.40 (#87, #75)
  • Graph namespace fix (#76)
  • --verbose for all CLI subcommands
  • All test packages pass (was 11/13 → 14/14)

Community Scorecard

Metric Count
PRs merged/cherry-picked 8
PRs closed with thanks 3 (#79, #86, closed with detailed feedback)
Issues closed 11 (#26, #30, #34, #39, #40, #43, #56, #75, #76, #81, #87)
Contributors credited 7 (@blicksten, @Prolls, @andreasmuenster, @kts982, @snymanpaul, @oklausen, @mv0101)

Stats

Metric v2.33.0 v2.35.0
Tools (expert) 122 147
Tools (focused) 81 100
Unit tests ~250 816
Test packages 11/13 pass 14/14 pass

Codex Integration

New: docs/cli-agents/codex.md — MCP configuration for OpenAI Codex with SAP Q/A testing scenarios and safety configs.

Full Changelog

v2.33.0...v2.35.0

v2.34.0: Quality Sprint — 129 tools, 798 tests

04 Apr 23:33

Choose a tag to compare

What's New in v2.34.0

Quality Sprint Results

Stability fixes:

  • Default session type → stateless (fixes "Session not found" on POST operations) — #81
  • vsp install zadt-vsp no longer aborts on older SAP systems (7.40) — #87, #75
  • vsp graph handles namespaced objects like /UI5/CL_REPOSITORY#76
  • --verbose / -v works for ALL CLI subcommands (was MCP-only) + SAP_VERBOSE=true
  • All 13 test packages pass (was 11/13): fixed pkg/dsl Go vet + pkg/jseval escaping

7 new tools (129 total, 88 focused):

Tool Description Source
GetRevisions Version history (Atom feed) PR #83 @blicksten
GetRevisionSource Read specific version PR #83 @blicksten
CompareVersions Diff two versions PR #83 @blicksten
GetCDSImpactAnalysis CDS where-used analysis PR #85 @blicksten
GetCDSElementInfo CDS entity metadata PR #85 @blicksten
GetCodeCoverage ABAP Unit test coverage PR #84 @blicksten
GetCheckRunResults Check run findings PR #84 @blicksten

GetTableContents enhanced:

  • offset — client-side pagination (inspired by PR #37 @kts982)
  • columns_only — schema-only mode, no data rows

Community Contributions

Action PRs/Issues
Merged as-is #80 (@oklausen), #44 (@mv0101), #83 (@blicksten)
Cherry-picked with fixes #85 (@blicksten), #84 (@blicksten)
Reimplemented with credit #37 (@kts982) — pagination
Closed with thanks #79 (@snymanpaul) — cleaner fix in main
Issues resolved #81, #87, #75, #76, #30, #34

Test Suite

  • 798 unit tests across 13 packages — all passing
  • 32.5% overall coverage — roadmap to improve CRUD/safety/handler coverage

Diagnostic Tips

# Verbose mode for all commands
vsp -v query T100
SAP_VERBOSE=true vsp search "ZCL_*"

# Different SAP versions have different endpoints
# If query fails but search works, your system may not support datapreview/freestyle

Full Changelog

v2.33.0...v2.34.0

v2.33.0: CLI Verbose Fix

03 Apr 13:43

Choose a tag to compare

What's New in v2.33.0

Bug Fix: --verbose now works for all CLI subcommands

Previously --verbose / -v was a local flag only available in MCP server mode.
CLI subcommands like vsp query, vsp search, vsp source silently ignored it.

Fixed:

  • vsp -v query T100 — now shows HTTP request/response details
  • SAP_VERBOSE=true vsp query T100 — env var also works for CLI mode
  • All subcommands inherit --verbose via PersistentFlags

How to Diagnose ADT Endpoint Issues

If a command fails, add -v to see the exact HTTP status and response:

vsp -v query T100
vsp -v install zadt-vsp

Full Changelog

  • --verbose flag moved from rootCmd.Flags() to rootCmd.PersistentFlags()
  • Added PersistentPreRunE to enable HTTP logging before subcommand execution
  • SAP_VERBOSE env var now checked in CLI path via viper

v2.32.0: Full Stack ABAP

22 Mar 15:21

Choose a tag to compare

What's New in v2.32.0

Native ABAP Parser & Linter

  • ABAP Lexer — mechanical port of abaplint to Go. 100% oracle match on 22,612 tokens across 29 files.
  • Statement Parser — 91 statement types, 100% match on 3,254 statements. Colon chaining, NativeSQL, pragmas.
  • ABAP Linter — 8 rules (line_length, empty_statement, obsolete_statement, etc.), 100% oracle match, 795μs/file. Works fully offline.

CLI Toolchain (28 commands)

Command What SAP needed?
`vsp query T000 --top 5` Query SAP tables Yes
`vsp grep "pattern" --package PKG` Search source code Yes
`vsp graph CLAS ZCL_FOO --direction callers` Call graph (WBCROSSGT fallback) Yes
`vsp deps '$PKG' --format summary` Transport readiness Yes
`vsp lint --file src.abap` ABAP linter No
`vsp parse --stdin --format json` ABAP parser No
`vsp compile wasm prog.wasm` WASM→ABAP compiler No
`vsp context CLAS ZCL_FOO --depth 2` Compressed deps (multi-level) Yes
`vsp system info` System version + ZADT_VSP check Yes

WASM Self-Host Compiler — 3-Way Verified

  • 12 functions: add, factorial, fibonacci, gcd, is_prime, abs, max, min, pow, sum_to, collatz, select
  • Native WASM (Node.js): 51/51 PASS
  • Go WASM→ABAP compiler: compiles OK
  • ABAP self-host on SAP A4H: 11/11 PASS
  • 505 bytes WASM → base64 → parse → compile → GENERATE SUBROUTINE POOL → execute

Lua Scripting (50+ bindings)

New: `query()`, `lint()`, `parse()`, `context()`, `systemInfo()`
Example scripts: package-audit, table-explorer, dependency-check

TS→Go Transpiler

New `pkg/ts2go/` — produces valid Go from TypeScript. Tested on abaplint lexer (3 files compile with gofmt).

Documentation

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 (Intel) vsp-darwin-amd64
macOS ARM64 (Apple Silicon) vsp-darwin-arm64
Windows x64 vsp-windows-amd64.exe
Windows ARM64 vsp-windows-arm64.exe
Windows x86 vsp-windows-386.exe

Installation

```bash

Linux/macOS

curl -LO https://github.com/oisee/vibing-steampunk/releases/download/v2.32.0/vsp-linux-amd64
chmod +x vsp-linux-amd64
sudo mv vsp-linux-amd64 /usr/local/bin/vsp

Or build from source

git clone https://github.com/oisee/vibing-steampunk.git
cd vibing-steampunk && go build -o vsp ./cmd/vsp
```

Full Changelog

v2.30.0...v2.32.0

v2.30.0 — WASM Compiler + TS Transpiler + Unified Analyzer

20 Mar 14:38

Choose a tag to compare

WASM-to-ABAP AOT Compiler

Compile any WebAssembly binary to native ABAP. Three paths:

.wasm → pkg/wasmcomp (Go)  → ABAP source     (AOT compiler)
.ts   → pkg/ts2abap (Go)   → OO ABAP classes  (direct transpiler)
.wasm → zcl_wasm_compiler  → ABAP on SAP      (self-hosting, 785 lines)

QuickJS: 1,410 functions compiled, 100% opcodes, 101K lines ABAP.
abaplint: 26.5MB WASM compiled to 396K lines ABAP.

Self-Hosting Compiler on SAP

785 lines of ABAP parse any .wasm, generate ABAP, compile via
GENERATE SUBROUTINE POOL, and execute — all within SAP. No external tools.

TS-to-ABAP Direct Transpiler

TypeScript to clean OO ABAP without WASM intermediate. 800x smaller
output. abaplint lexer transpiled and running on SAP A4H.

Unified 5-Layer Code Intelligence

Combines regex (fast), parser (accurate), SCAN ABAP-SOURCE (SAP kernel),
CROSS/WBCROSSGT (index), and ADT Where-Used. Confidence scoring with
parser as primary authority, CROSS as supplementary.

Also in this release

  • Hyperfocused mode (99.5% schema reduction) from v2.29.0
  • Context compression (7-30x per dependency)
  • Method-level surgery (95% token reduction)

Platforms

Linux x64/ARM64/x86/ARM, macOS Intel/Apple Silicon, Windows x64/ARM64/x86

v2.29.0 — Token Efficiency Sprint

19 Mar 10:13

Choose a tag to compare

Token Efficiency Sprint

This release is all about making every token count — hyperfocused mode, context compression, and method-level surgery work together to reduce token consumption by 10–75x.

Hyperfocused Mode — 1 Tool, 99.5% Less Schema

--mode hyperfocused registers a single SAP(action, target, params) tool instead of 122 individual tools.

Mode Tools Schema Tokens
Focused (default) 81 ~14,000
Expert 122 ~40,000
Hyperfocused 1 ~200

All safety controls (read-only, allowed-ops, package restrictions) work identically across all modes.

Context Compression — 7-30x Per Dependency

GetSource auto-appends compressed dependency contracts (public API signatures only). One MCP call returns source + surrounding context. 10 regex patterns extract dependencies, contracts fetched in parallel, classes compressed to PUBLIC SECTION only.

Method-Level Surgery — 95% Source Reduction

Read/write individual methods without pulling entire classes:

SAP(action="read",  target="CLAS ZCL_FOO", params={"method": "CALCULATE"})
SAP(action="edit",  target="CLAS ZCL_FOO", params={"method": "CALCULATE", "source": "..."})

vsp handles fetch, splice, syntax check, push internally. Context compression scopes to the method's own dependencies.

ABAP LSP

vsp lsp --stdio provides real-time syntax checking and go-to-definition — zero token cost (runs via editor LSP channel, not MCP).

Mode Unification

SAP_TOOL_MODE removed. Now one axis: SAP_MODE=focused|expert|hyperfocused.

Combined Token Budget

Component Expert Mode Hyperfocused + Method Ratio
Schema overhead 40,000 200 200x
Read + context 1,300 165 7.9x
Edit round-trip 2,100 210 10x
Total 43,600 575 75.8x

Platforms

Linux x64, ARM64, x86, ARM | macOS Intel, Apple Silicon | Windows x64, ARM64, x86

Credits

  • Filipp Gnilyak — hyperfocused mode concept
  • Lars Hvam — abaplint ABAP parser