Repository navigation
Releases: shrek-abaper/sap-engineering-skill
Release list
CLI 1.6.1 / Skills 1.3.1
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-testsrejects empty runs without changing existing defaults. - Read-only
get-sourcefor returned repository/test-include URIs and line windows;get-dumpfor 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_debugpermission, disabled by default; source/transport writes can stay disabled. Configure an approved existing non-production profile withsap-adt configure --profile NAME --allow-debug. Complete environment connections useSAP_ALLOW_DEBUG=truewith explicitSAP_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 installOr, 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
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
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
CLI 1.5.2 / plugin 1.2.6
- Fixed
sap-adt installhanging forever on proxied networks. The npm/npx
wizard downloaded with Node corehttps.get, which ignores
HTTPS_PROXY/HTTP_PROXYbefore 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, honoringNO_PROXY) and
tunnels through an HTTP proxy withCONNECT; 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 permittedduring install when
os.tmpdir()is a different filesystem from the npm prefix (tmpfs/tmp
on Linux/WSL): the staged tree is copied into place whenrenamecannot
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
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-groupnow 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-packageno longer double-encodesparent_name($TMPbecame
%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 installsap-adt 1.5.0 — PyPI distribution renamed to sap-adt-cli (plugin 1.2.0)
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-adttosap-adt-cli(PyPI cannot rename a
project, so the old name is deprecated rather than moved). - The old
sap-adtproject was removed from PyPI after the rename, so
pip install sap-adtno longer resolves. Existing 1.4.x installs keep
working until uninstalled; migrate withpip uninstall -y sap-adtfollowed
bypip install "sap-adt-cli>=1.5.0,<2.0.0". - Unchanged: the command is
sap-adt, the import package issap_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-climetadata. - 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
.gitignorefiles; 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)
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 --helpnow documents how credentials are resolved:- process environment variables,
- a dotenv file declared by
SAP_ADT_DOTENV(explicit path), - the profile in
~/.sap-adt-cli/config.json+ OS keystore.
It also states the all-or-nothing rule and that no.envis read from the
current directory or a skill folder.
- The install guide gained a "Credentials & precedence" section, which now
reaches every skill throughreferences/setup.md. - Removed the unused
SETUP_GUIDEconstant.
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)
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|pingusessap_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-clientquery 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.clientmodule 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@latestremains forbidden.
Update (plugin/docs 1.1.10, 2026-10-28)
- Removed skill-local
.env.exampletemplates (the CLI never reads a
.envfrom 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)
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-adtentry point;src/sap_adtpackage is the single implementation.sap-adt transport collect|ping(read-only) replacestr_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); usesap-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 issap-adt.
npm install -g sap-adt-cliputs it on PATH; npx does not, so npx
users prefix every call (npx sap-adt-cli@1.4.0 <command>).