Skip to content

Releases: shrek-abaper/sap-engineering-skill

CLI 1.6.1 / Skills 1.3.1

Choose a tag to compare

@shrek-abaper shrek-abaper released this 30 Oct 03:09

CLI 1.6.1 / Skills 1.3.1

Changes

  • Richer ABAP Unit evidence: test classes/methods, alerts, details/stacks and explicit execution summaries. Optional --require-tests rejects empty runs without changing existing defaults.
  • Read-only get-source for returned repository/test-include URIs and line windows; get-dump for bounded diagnostic details with explicit evidence gaps.
  • Skill-guided Unit/Dump diagnosis, without automatic edits, risk escalation or a new workflow engine.
  • Experimental debugger primitives: bounded foreground owner, private authenticated IPC, scoped breakpoint/listen/attach, stack/variables, confirmed step/continue and non-terminating cleanup. SAP cookies are not persisted.
  • Independent allow_debug permission, disabled by default; source/transport writes can stay disabled. Configure an approved existing non-production profile with sap-adt configure --profile NAME --allow-debug. Complete environment connections use SAP_ALLOW_DEBUG=true with explicit SAP_ENVIRONMENT=dev|qas.
  • Task-oriented root help, risk-first descriptions and narrow/no-color rendering. Existing command paths and output defaults are preserved.
  • Corrected debugger discovery content negotiation and redirected Windows UTF-8 output.

Installation

npm install -g sap-adt-cli@1.6.1
sap-adt install

Or, with Python 3.10+:

python -m pip install "sap-adt-cli[keystore,file]==1.6.1"

Runtime archives cover Windows x64, Linux x64 and experimental macOS 15+ Intel/Apple Silicon. Windows also has an unsigned per-user desktop installer. Skill/plugin archives are separate from the CLI.

Important limits

Debugger attachment to a real SAP target and persistent SAP affinity remain unverified. Discovery/CSRF checks and synthetic cross-process tests do not certify SAP debugger authorization. Use only explicitly approved non-business targets; setup/controls require independent permission, non-PRD and per-action confirmation. Stepping, continuing or detaching can let application code write business data even when source writes are disabled. Cleanup is not rollback; an accepted cleanup request is not independent proof of remote release.

macOS remains experimental: no signing/notarization, personal-Mac, older-macOS, Keychain or Gatekeeper/quarantine certification. The Windows silent installer lifecycle is covered; graphical wizard clicks, actual PATH mutation and elevated installation are not certified.

Claude Code archive marketplace sources require Claude Code 2.1.224+.

sap-adt CLI 1.6.0 / skills 1.3.0

Choose a tag to compare

@shrek-abaper shrek-abaper released this 29 Oct 13:34

CLI 1.6.0 / skills 1.3.0

  • New read-only ADT feeds, per-part history, source/version diffs, transport details and transport diffs, with explicit evidence gaps.
  • Channel-aware sap-adt update, grouped help, Windows manual-proxy discovery, pip-proxy-aware Python updates, bounded failures and actionable recovery guidance.
  • Native npm runtimes: Linux x64 (glibc >=2.39), Windows x64, and experimental macOS 15+ Intel / Apple Silicon. npm requires Node.js >=18, not Python. PyPI requires Python >=3.10.
  • macOS native build, complete offline suites and isolated npm runtime installation passed on both architectures in Actions run 40881012113. Personal Macs, older macOS, macOS live SAP, Keychain, Gatekeeper/quarantine, signing and notarization remain unverified. Windows installer is unsigned; graphical wizard, host PATH mutation and elevated setup remain unverified.
  • Updated all skill snapshots and plugin payload. Claude Code archive-source plugins require >=2.1.224.

Install: npm install -g sap-adt-cli@1.6.0 then sap-adt install; or python -m pip install "sap-adt-cli[all]==1.6.0".

Artifacts are listed with SHA-256 digests in release-manifest.json and SHA256SUMS. Existing SAP configuration/credentials are preserved.

sap-adt 1.5.3 / plugin 1.2.7 — Windows x64 support

Choose a tag to compare

@shrek-abaper shrek-abaper released this 28 Oct 23:46

Windows x64 now has a native npm runtime, portable ZIP and desktop installer alongside Linux. Windows users: npm install -g "sap-adt-cli@^1.5.3", then sap-adt install. No Python required for npm or the desktop installer.

Fixed Windows file URL handling, silent installer dialogs, runtime self-test failure handling and installer-owned PATH cleanup. English/Chinese README and installation guidance are synchronized; plugin/docs version is 1.2.7.

Verified on Windows 11 x64 through WSL interop: npm installation and silent per-user desktop install, same-version upgrade, launch and uninstall in Unicode/space paths. PATH cleanup is tested separately without modifying the host PATH. Graphical wizard clicks, actual PATH mutation, elevated installs and macOS runtimes remain unverified. The Windows installer is unsigned and may trigger SmartScreen/AV warnings. No live SAP credentials or connection were used in packaging checks.

The plugin remains documentation-only and requires Claude Code >=2.1.224. Install the CLI separately. SHA256SUMS and release-manifest.json cover the attached artifacts.

sap-adt 1.5.2 / plugin 1.2.6

Choose a tag to compare

@shrek-abaper shrek-abaper released this 28 Oct 04:16

CLI 1.5.2 / plugin 1.2.6

  • Fixed sap-adt install hanging forever on proxied networks. The npm/npx
    wizard downloaded with Node core https.get, which ignores
    HTTPS_PROXY/HTTP_PROXY before Node 24 and had no timeout, so on a
    corporate network that requires a proxy it sat at "fetching …" with zero
    bytes. The wizard now resolves the proxy (https_proxy/HTTPS_PROXY,
    npm_config_*, http_proxy/HTTP_PROXY, honoring NO_PROXY) and
    tunnels through an HTTP proxy with CONNECT; TLS still verifies the real
    artifact host and every redirect hop keeps the allow-list check.
  • Downloads report size and periodic progress and abort on a bounded
    timeout with an actionable message instead of hanging.
  • Fixed EXDEV: cross-device link not permitted during install when
    os.tmpdir() is a different filesystem from the npm prefix (tmpfs /tmp
    on Linux/WSL): the staged tree is copied into place when rename cannot
    cross devices.
  • Installer tests cover proxy/no-proxy resolution, refusal of non-http
    proxies without echoing credentials, fast failure against an unreachable
    or black-holed proxy, and the cross-device fallback (14 tests).
  • Install docs gained a "Proxied / restricted networks" section with a
    manual fallback; plugin payload regenerated; marketplace digest updated.

sap-adt 1.5.1

Choose a tag to compare

@shrek-abaper shrek-abaper released this 28 Oct 02:57

sap-adt 1.5.1 / plugin 1.2.5

Patch release with two real-machine fixes verified on S/4HANA 2021 / Basis 7.56 (DEV and QAS):

  • get-type-group now reads /sap/bc/adt/ddic/typegroups/{name}/source/main.
    The previous /typegroups/groups/... path returned 404 on both systems.
    Recorded as verified protocol fact 13, with a real fixture and regression tests.
  • get-package no longer double-encodes parent_name ($TMP became
    %2524TMP, producing an empty 200 body / PARSE_FAILED). The raw name is
    passed through and encoded once; recorded as fact 14.

Install (compatible range unchanged: >=1.5.0,<2.0.0):

pip install "sap-adt-cli>=1.5.0,<2.0.0"
npm install -g "sap-adt-cli@^1.5.0" && sap-adt install

sap-adt 1.5.0 — PyPI distribution renamed to sap-adt-cli (plugin 1.2.0)

Choose a tag to compare

@shrek-abaper shrek-abaper released this 28 Oct 01:10

sap-adt 1.5.0 — PyPI distribution renamed to sap-adt-cli (plugin/docs 1.2.0)

The PyPI distribution is now sap-adt-cli, matching the npm package.
Nothing about the command or your configuration changes.

What changed

  • PyPI project renamed from sap-adt to sap-adt-cli (PyPI cannot rename a
    project, so the old name is deprecated rather than moved).
  • The old sap-adt project was removed from PyPI after the rename, so
    pip install sap-adt no longer resolves. Existing 1.4.x installs keep
    working until uninstalled; migrate with pip uninstall -y sap-adt followed
    by pip install "sap-adt-cli>=1.5.0,<2.0.0".
  • Unchanged: the command is sap-adt, the import package is sap_adt,
    configuration stays in ~/.sap-adt-cli, and every command, output contract,
    error code and safety gate is identical.

Install

Channel Command
npm (global command) npm install -g "sap-adt-cli@^1.5.0" then sap-adt install
npx (no global install) npx "sap-adt-cli@^1.5.0" install, prefix every call the same way
PyPI (Python ≥ 3.10) pip install "sap-adt-cli>=1.5.0,<2.0.0"
Linux x86_64 portable sap-adt-1.5.0-linux-x86_64.tar.gz
Windows / macOS not built (no build host)

Verification

  • 327 unittest, contract check, 8 Node installer tests, gitleaks clean,
    check_release (published state matches the live marketplace).
  • Frozen runtime reports 1.5.0 from the embedded sap-adt-cli metadata.
  • Windows and macOS builds remain unverified; real SAP connectivity was not
    exercised in this build.

Artifacts and digests: SHA256SUMS and release-manifest.json.

Update (plugin/docs 1.2.1, 2026-10-28)

  • Corrected the migration guidance (uninstall the old PyPI name first).
  • Withdrew the 1.5.0 deprecation stub; its files were removed from this
    release.

Update (plugin/docs 1.2.2, 2026-10-28)

  • The old PyPI project was removed entirely; docs now say it is gone
    (not frozen).

Update (plugin/docs 1.2.3, 2026-10-28)

  • Removed redundant per-skill .gitignore files; archived the stale
    transport-gate changelog; added LICENSE files to three skill folders
    that relied on the build-time root fallback.

Update (plugin/docs 1.2.4, 2026-10-28)

  • Single-source licensing: per-skill LICENSE copies removed; the repository
    root LICENSE is injected into every published skill/plugin snapshot.
    README license links point at the repository URL.

sap-adt 1.4.2 — credential precedence in --help (plugin 1.1.11)

Choose a tag to compare

@shrek-abaper shrek-abaper released this 27 Oct 17:47

sap-adt 1.4.2 — credential precedence in --help (plugin/docs 1.1.11)

Documentation-only release: no behavioral, output-contract or safety-gate
changes.

What changed

  • sap-adt --help now documents how credentials are resolved:
    1. process environment variables,
    2. a dotenv file declared by SAP_ADT_DOTENV (explicit path),
    3. the profile in ~/.sap-adt-cli/config.json + OS keystore.
      It also states the all-or-nothing rule and that no .env is read from the
      current directory or a skill folder.
  • The install guide gained a "Credentials & precedence" section, which now
    reaches every skill through references/setup.md.
  • Removed the unused SETUP_GUIDE constant.

Install

Channel Command
npm (global command) npm install -g "sap-adt-cli@^1.4.0" then sap-adt install
npx (no global install) npx "sap-adt-cli@^1.4.0" install, prefix every call the same way
PyPI (Python ≥ 3.10) pip install "sap-adt>=1.4.0,<2.0.0"
Linux x86_64 portable newest 1.x sap-adt-<ver>-linux-x86_64.tar.gz
Windows / macOS not built (no build host)

Ranges resolve to the newest compatible release, so patch releases do not
change these instructions.

Verification

  • 327 unittest, contract check, 8 Node installer tests, gitleaks clean,
    check_release (published state matches live marketplace).
  • Windows and macOS builds remain unverified; real SAP connectivity was not
    exercised in this build.

Artifacts and digests: SHA256SUMS and release-manifest.json.

sap-adt 1.4.1 — one ADT access path (plugin 1.1.8)

Choose a tag to compare

@shrek-abaper shrek-abaper released this 27 Oct 17:25

sap-adt 1.4.1 — one ADT access path (plugin/docs 1.1.10)

Internal consolidation release: transport collection now shares the same ADT
HTTP client and handlers as every other command. No command, output-contract,
credential or safety-gate changes.

What changed

  • sap-adt transport collect|ping uses sap_adt.adt.client +
    sap_adt.adt.handlers; the duplicated transport client and endpoint
    helpers were removed.
  • One implementation owns Basic Auth, CSRF, 403 retry, log redaction and the
    sap-client query parameter (now sent on every request, including the
    CSRF pre-flight). Request construction is otherwise unchanged.
  • All SAP-facing code lives in src/sap_adt; skills remain documentation.

Install

Channel Command
npm (global command) npm install -g sap-adt-cli then sap-adt install
npx (no global install) npx sap-adt-cli@1.4.1 install, prefix every call with npx sap-adt-cli@1.4.1
PyPI (Python ≥ 3.10) pip install sap-adt==1.4.1
Linux x86_64 portable sap-adt-1.4.1-linux-x86_64.tar.gz
Windows / macOS not built (no build host)

Verification

  • 327 unittest (contract + distribution), 8 Node installer tests, gitleaks
    clean, frozen-runtime smoke (--version, DML gate before network).
  • Transport dispatch, raw payloads, [NO_SOURCE]/[UNSUPPORTED] markers and
    the 404→E071 fallback are covered by offline tests; a guard test asserts no
    sap_adt.transport.client module exists.
  • Real SAP connectivity was not exercised in this release build.

Artifacts and digests: SHA256SUMS and release-manifest.json.
Plugin/docs 1.1.10; marketplace archive points at this release.

Update (plugin/docs 1.1.10, 2026-10-28)

  • Install guidance resolves the newest release within the compatible
    range (sap-adt-cli@^1.4.0, sap-adt>=1.4.0,<2.0.0) instead of a
    pinned patch version; unbounded @latest remains forbidden.

Update (plugin/docs 1.1.10, 2026-10-28)

  • Removed skill-local .env.example templates (the CLI never reads a
    .env from a skill folder); the template now lives in the install
    guide / references/setup.md.

sap-adt 1.4.0 — multichannel distribution (plugin 1.1.0)

Choose a tag to compare

@shrek-abaper shrek-abaper released this 27 Oct 15:38

sap-adt 1.4.0 — multichannel distribution (plugin/docs 1.1.7)

The CLI is an installable product, independent of the skill docs.

Install the CLI

Channel Command Status
npm / npx (Node ≥ 18) npx sap-adt-cli@1.4.0 install ✅ published (sap-adt-cli@1.4.0, latest)
PyPI (Python ≥ 3.10) pip install sap-adt==1.4.0 ✅ published
Linux x86_64 portable sap-adt-1.4.0-linux-x86_64.tar.gz → ./sap-adt/sap-adt ✅ built + smoke-tested (glibc 2.39)
Windows x64 installer sap-adt-1.4.0-windows-x86_64-setup.exe ❌ not built (no Windows build host)
macOS portable build ❌ not built (no macOS host)

No Python is needed for the portable/frozen runtime; the npm launcher needs Node.

What's new

  • sap-adt entry point; src/sap_adt package is the single implementation.
  • sap-adt transport collect|ping (read-only) replaces tr_collector.py;
    the legacy plaintext collector config is read only via explicit
    --legacy-config.
  • Plugin/docs 1.1.7: docs-only payload, conditional CLI readiness guidance,
    self-contained skill folders, compatible CLI range >=1.4.0,<2.0.0.
  • Safety gates unchanged: read-only default, profile-scoped capability
    flags, prd hard refusal, per-operation confirmation, DML rejection; the
    same 18 error codes and exit tiers.

Verification

  • 320 unittest (contract + distribution), 8 Node installer tests, gitleaks
    clean, frozen-runtime smoke without Python (env -i PATH=/nonexistent).
  • End-to-end from the public registries: npm install sap-adt-cli@1.4.0 →
    sap-adt install → runtime from this Release → sha256 → self-test;
    pip install sap-adt==1.4.0 → sap-adt --version.
  • Windows and macOS builds/installs are not verified — see
    packaging/targets.json.
  • Real SAP connectivity was not exercised in this release build.

Artifacts are listed in SHA256SUMS and release-manifest.json
(source commit recorded there). The live marketplace points at
sap-engineering-skills-1.1.7.zip with its SHA-256.

Update (plugin/docs 1.1.7, 2026-10-28)

  • npm and PyPI channels are live; installation docs and README updated.
  • Removed the legacy skill-local script entry points (sap_adt_cli.py /
    tr_collector.py); use sap-adt. No released artifact ever contained them.
  • SKILL.md now spells out the missing-CLI path (npm install via
    npx sap-adt-cli@1.4.0 install, or pip/portable) with explicit consent.
  • Plugin payload regenerated; marketplace digest updated to
    08494adb87c52e56c227052e5e1bb0320334842f0bed31432624ffde1470a403.

Update (plugin/docs 1.1.7, 2026-10-28)

  • Development assets moved out of the skill folder: history docs under
    docs/development/archive/sap-adt-cli/, ADT fixtures under
    tests/fixtures/sap_adt_cli/ (local raw captures stay ignored).

Update (plugin/docs 1.1.7, 2026-10-28)

  • READMEs audited against the post-refactor code: CLI install channels,
    src/tools/packaging layout, local-only test baseline, dotenv model,
    transport collect/ping commands and generated snapshots.

Update (plugin/docs 1.1.7, 2026-10-28)

  • npm package is sap-adt-cli; the installed CLI command is sap-adt.
    npm install -g sap-adt-cli puts it on PATH; npx does not, so npx
    users prefix every call (npx sap-adt-cli@1.4.0 <command>).