Skip to content

Releases: abapify/adt-cli

v0.3.6

21 Apr 04:12

Choose a tag to compare

0.3.6 (2026-04-21)

🚀 Features

  • nx-cloud: setup nx cloud workspace (23de1e92)

🩹 Fixes

  • ci: trigger publish.yml on tag push, not via workflow_call (dc91f860)
  • ci: chain release -> publish via workflow_dispatch (GITHUB_TOKEN push won't trigger) (872e8a7c)
  • ci: grant actions: write to release job so it can dispatch publish.yml (fb842c3e)

❤️ Thank You

  • Petr Plenkov

v0.3.5

20 Apr 22:07

Choose a tag to compare

0.3.5 (2026-04-20)

🩹 Fixes

  • ci: propagate id-token: write to publish job in release.yml (2074dfcc)
  • ci: disable Nx Cloud for publish job (org exceeded free plan) (6a630228)
  • ci: set NX_NO_CLOUD=true in release version step too (aa7ecf14)
  • release: set preserveLocalDependencyProtocols=false so workspace:* is resolved (d201251d)

❤️ Thank You

  • Petr Plenkov

v0.3.4

20 Apr 21:49

Choose a tag to compare

0.3.4 (2026-04-20)

🩹 Fixes

  • ci: clear setup-node .npmrc to enable OIDC trusted publishing (aa9199fa)
  • ci: nuke repo .npmrc entirely in publish job to unblock OIDC (ab0d30d0)
  • packages: add repository/homepage/bugs to every published package (e1853e48)

❤️ Thank You

  • Petr Plenkov

v0.3.3

20 Apr 21:33

Choose a tag to compare

0.3.3 (2026-04-20)

🩹 Fixes

  • ci: force npm as nx release publish driver (bun has no OIDC) (434d80a5)
  • ci: set cli.packageManager=npm + bump npm for OIDC publishing (#1)
  • ci: revert global nx.json cli.packageManager, keep job-local override (1c75c732)

❤️ Thank You

  • Petr Plenkov

v0.3.2

20 Apr 21:18

Choose a tag to compare

0.3.2 (2026-04-20)

🚀 Features

  • nx-npm-access: add npm-fix target — auto-remediation, not just checks (4da7ad10)
  • nx-npm-access: add npm-prepare target — port /npm-publish prepare-ci (3d5a3f3c)
  • tools: nx-npm-access plugin — pre-release readiness check per package (c8ee3940)

🩹 Fixes

  • nx-npm-trust: don't fail when --fix successfully patched everything (5f3b70d1)
  • nx-npm-trust: don't treat auto-fixable issues as lingering errors (c5b1fda5)
  • nx-npm-trust: --prepare now speaks the right dialect of npm CLI (b6e70d3f)
  • nx-npm-trust: don't pass scope registry override to npm trust (ec45425c)

❤️ Thank You

  • Petr Plenkov

v0.3.1

20 Apr 19:09

Choose a tag to compare

0.3.1 (2026-04-20)

🚀 Features

  • aclass: Wave 0 — package skeleton + Chevrotain lexer (78a31f33)

🩹 Fixes

  • ci: unblock v0.3.x release — npm scope override + Docker website workspace (02d66b1b)

❤️ Thank You

v0.3.0

20 Apr 19:00

Choose a tag to compare

0.3.0 (2026-04-20)

🚀 Features

  • add CTS tr reassign command to change transport owner (cfd8b705)
  • add package CRUD and object CRUD commands (class, program, interface) (5fbb8600)
  • add datapreview osql, abap run, and DDIC object commands (9e9289e0)
  • add AUnit sonar format, improved exit codes, and ATC customizing command (fde59fab)
  • add CDS DDL and DCL source commands with XML injection fix (6b49e9af)
  • add checkout command and remaining CDS/DDIC subtask completions (bf97ca6c)
  • acds: full CDS DDL/DCL grammar + AST walker + validators — E09 (51fa799d)
  • adt: add user lookup command and system contract (431e4e19)
  • adt-mcp: add 7 new MCP tools and adt source CLI command (7c184ed1)
  • adt-mcp: add 12 new tools for feature parity with vibing-steampunk (#H1-#H8) (762e9938)
  • adt-mcp: implement 14 medium-priority MCP tools (#M1-#M10)" (170a2f68)
  • adt-mcp: Wave 1 — Streamable HTTP transport + stateful sessions + multi-system routing (#110)
  • adt-mcp: Wave 2 — HTTP auth middleware (bearer + reverse-proxy + CORS) (caf31a5c)
  • adt-mcp: Wave 1-C — migrate tools to session-aware args + getAdtClientV2Safe (1d4bb744)
  • adt-mcp: Wave 4 — OAuth 2.1 bearer validation (Okta / Entra ID / Cognito) (c25374c2)
  • adt-mcp,adt-cli: Wave 3 — transactional changesets (MCP + CLI parity) (abcb5c3e)
  • aunit: ABAP Unit code coverage — JaCoCo output + CLI/MCP parity (cbc19f4e)
  • badi: BAdI CRUD + real-SAP e2e harness — E03 (dd0f8ff0)
  • checkin: checkin via batch lock session — E08 (027a172d)
  • contracts: add datapreview, CTS useraction, DDL/DCL, tablesettings (0eeea082)
  • flp: Fiori Launchpad read-only inventory — E14 (aa8b42b5)
  • function: FUGR/FUNC CLI + MCP — E02 (e763d35c)
  • gcts: AFF/gCTS format plugin — E06 (665c16df)
  • gcts: format.export — complete checkin roundtrip for gCTS — QC2 (1f2442d8)
  • gcts-cli: gCTS command plugin — E07 (94583dc1)
  • incl: INCL CLI + MCP — E01 (ffbe4db0)
  • nx-cloud: setup nx cloud workspace (97f42b2c)
  • openai-codegen: scaffold abap-ast + openai-codegen packages and openspec change (b6aa7c89)
  • openai-codegen: Wave 1 — AST nodes, OAS loader, target profiles (bc378eaa)
  • openai-codegen: Wave 2 — printer, type emitter, inline cloud runtime (43bd050f)
  • openai-codegen: Wave 3 — emitter, security, formats, CLI + petstore3 (ffb2d4b5)
  • openai-codegen: Wave 4 — split exception into global class, fix activation on Steampunk, live deploy proof (ec6489ac)
  • openai-codegen: scaffold abap-ast + openai-codegen packages and openspec change (cacd75ba)
  • openai-codegen: Wave 1 — AST nodes, OAS loader, target profiles (ff040a46)
  • openai-codegen: Wave 2 — printer, type emitter, inline cloud runtime (dec6857d)
  • openai-codegen: Wave 3 — emitter, security, formats, CLI + petstore3 (b06c7022)
  • openai-codegen: Wave 4 — split exception into global class, fix activation on Steampunk, live deploy proof (bb7ce303)
  • openai-codegen: deterministic OpenAPI → ABAP client codegen (00ed7120)
  • openai-codegen: Wave 1 v2 — AST ABAPDoc, naming+CLI, 4 emitters + templates (ef71f004)
  • openai-codegen: Wave 2 v2 — impl class, INTF+locals format, generate.ts pipeline (bdb8ba68)
  • openai-codegen: table query params + HTTP exception wrapping (606ede32)
  • parity: 15 new MCP tools + CLI↔MCP e2e test harness (457c3cc5)
  • plugin: FormatPlugin API foundation — E05 (a4e6eeef)
  • rap: BDEF (Behavior Definition) CRUD — E10 (af89d726)
  • rap: SRVD (Service Definition) CRUD — E11 (0c3cb7e1)
  • rap: SRVB (Service Binding) CRUD + publish/unpublish — E12 (f8b6c3ce)
  • real-e2e: TRL backfill sweep + WB where-used 2-step POST fix (13e777da)
  • rfc: SOAP-over-HTTP RFC transport + adt rfc command — E13 (45487cc4)
  • strust: STRUST PSE/cert CLI + MCP — E04 (7a4ed04f)
  • wb: workbench CLI + real-e2e uncovers MCP endpoint bugs — E15 (f2d73d4b)

🩹 Fixes

  • apply CodeRabbit auto-fixes (5554994b)
  • add comment explaining DEVC case-preservation in URI resolution (6e97dbb8)
  • replace manual XML building and fast-xml-parser with schema-based contracts (c91f3745)
  • address all PR #99 review findings (#99, #5)
  • resolve all pre-existing typecheck + test failures — QC1 (81152316)
  • drop CDATA branch from TAG_RE in adt-rfc — CodeQL final (708ca6c4)
  • replace TAG_RE loop with split-based tokenizer — CodeQL final (c32db2ed)
  • broaden Z-prefix regex, mark test class in abapGit metadata (6ae8fa61)
  • adt-cli: harden user command JSON mode and input validation (f1d980de)
  • adt-mcp: extract resolveObjectUri helper to eliminate code duplication (99d4d0cd)
  • adt-mcp: also deduplicate activate-object loop; improve QuickSearchClient JSDoc (a63a4a4a)
  • adt-mcp: fix missing closing parenthesis in get-table-contents schema description (d7f8b4c9)
  • adt-mcp: format all new tool files + fix mock server route ordering (2818f49e)
  • adt-mcp: resolve SonarQube quality gate failures (0c6d97c3)
  • adt-mcp: address SonarCloud blockers in PR 101 (a001dede)
  • adt-mcp: address post-merge PR 101 review findings (#101)
  • adt-mcp: lint — preserve cause + no-fallthrough on --help case (#110)
  • adt-mcp: ReDoS in Bearer extraction (CodeQL finding) (#110)
  • adt-mcp: SonarCloud quality gate — reduce duplication + fix dead-code CORS branch + Dockerfile hardening (de6c1ccf)
  • adt-mcp: address Devin Review findings (684d5d1c)
  • adt-mcp: address review findings (Devin + Copilot) (49e25a2c)
  • adt-mcp: merge tool-call credentials in resolveClient path 3 (Devin finding) (75a7d211)
  • adt-mcp: don't leak locks on force=true rollback failure + docs match code (Devin findings) (8c2f1334)
  • adt-mcp: reject systemId mismatch in sap_connect + async resolveClient (Devin findings) (b8373868)
  • ci: resolve CodeQL ReDoS + code-quality findings, fix main CI (b4bfebc6)
  • ci: restore...
Read more

v0.2.0

02 Apr 13:51

Choose a tag to compare

0.2.0 (2026-04-02)

🚀 Features

  • add PROG (Program) and FUGR (Function Group) ABAP object type support (d3ebf34)
  • enhance service key authentication and add redirect URI support (4e2276f)
  • fix ADT export XML serialization and live-test on BTP + on-prem (dbe608b)
  • optimize export by skipping unchanged sources and auto-creating packages (172d91c)
  • move single-source save lifecycle to base class and add default unchanged detection (b6f58a5)
  • add nx format:write pre-commit instruction to GitHub Copilot config (185db86)
  • add @fission-ai/openspec dependency for spec management (f185730)
  • remove OAT format everywhere, make abapgit the default (4596efd)
  • abapGit roundtrip - export, deploy, and structure support (0da189a)
  • add adt diff command and fix CDS-to-abapGit serialization (130168d)
  • resolve DDIC metadata via ADT for zero-diff TABL serialization (a8198fa)
  • adk: add FunctionModule support with POST-then-PUT save flow, fix ETag refresh after metadata PUT (5db28a6)
  • adk: improve FUNC save reliability — skip POST if exists, compare function body only, add DEVC skeleton (b9469e0)
  • adk: add metadata-only unchanged detection, fix bulk save progress counter (ee2f4dc)
  • adk,adt-cli: add FUGR name normalization, lock handle persistence, and root URI extraction (ee2c300)
  • adk,adt-cli: centralize lock operations in LockService, add force-unlock, remove duplicate lock logic (66da454)
  • adk,adt-cli: fix ETag invalidation after lock acquisition, improve DEVC subpackage filtering, add --objects to package get (979aad9)
  • adt-auth: add port retry logic for OAuth callback server, fix refresh logging (cef30df)
  • adt-contracts: split Accept vs Content-Type headers in crud() (f16f525)
  • adt-diff: add --format ddl option and fix CDS DDL generation (5ba5e65)
  • adt-diff: support multi-file and glob patterns in diff command (c0c3128)
  • adt-diff: rename --format to --source, add annotation filtering for CDS comparison (07a59da)
  • adt-diff: add --raw mode, fix abapLanguageVersion auth issue, defer CLAS include saves (e0b4c04)
  • adt-export: remove full-repo scan fallback, add package validation and cascade skip logic (e6fe28b)
  • cds-to-abapgit: detect LANGDEP from spras/lang fields in CDS (ff711e8)
  • ddic: add abapGit handlers for TABL and TTYP object types (41b6a4b)

🩹 Fixes

  • remove package-lock.json and switch nx to use bun as package manager (44b7ff9)
  • restore package-lock.json, revert packageManager to npm, add legacy-peer-deps (1bbf03d)
  • correct .gitignore corruption and add FUGR fromAbapGit comment (cbb35d4)
  • update fast-xml-parser dependency to version 5.5.3 (7e0b6d6)
  • preserve targetNamespace xmlns in stripUnusedNamespaces + null guard in config-loader (caad1a5)
  • address all SonarQube findings for PR #81 (#81)
  • exclude generated schema files from SonarQube analysis to fix quality gate (014ad88)
  • add SonarCloud organization and project key to sonar-project.properties (394c670)
  • resolve SonarCloud quality gate failures (e8cfed9)
  • address remaining SonarQube findings - complexity, duplication, and code quality (11a3408)
  • update sonar-project.properties with exclusions and project key (dc374f8)
  • use [^<]+ in XML tag regexes to require non-empty content (b459ea7)
  • simplify sonar exclusions to /generated/ (ecc42c5)
  • simplify sonar exclusions to /generated/ (2c2dad3)
  • remove trailing blank lines from sonar-project.properties (56b8e5e)
  • run nx format:write to fix formatting on OpenSpec files (5c9fcb1)
  • resolve merge conflict and fix SonarQube duplication findings (f1edc75)
  • resolve SonarQube quality gate failures (security hotspot + duplication) (12bd3b8)
  • address Copilot and Devin review findings (a6c4707)
  • abapgit: align dd02v and dd03p field order (d7578d3)
  • adk: robust upsert fallback for DDIC objects (405/422 handling) (ac0d580)
  • adk: address PR review findings - reset _unchanged, deduplicate fallback, case-insensitive error matching (2816dd4)
  • adk: remove false from isEmpty in checkMetadataUnchanged (7b3bbeb)
  • adt-diff: use .acds extension for CDS DDL diff display (b1357ac)
  • adt-diff: align zage_tabl test expectations with fixture (591ea22)
  • adt-export: convert static import of lazy-loaded library to dynamic import (a5ded59)
  • cds-to-abapgit: stop emitting LANGDEP, CLIDEP, POSITION from CDS source (0d06b3c)
  • cds-to-abapgit: correct DD03P field ordering to match SAP (20a4ac7)
  • cds-to-abapgit: detect CLIDEP for client-dependent tables (50e1200)

❤️ Thank You

v0.1.8

11 Mar 15:37

Choose a tag to compare

0.1.8 (2026-03-11)

🚀 Features

  • add granular publish inputs to release workflow (95a890c)
  • add latest Docker tag when publishing releases (8eb4cf1)
  • add Copilot hooks to auto-approve waiting workflow runs (10245a6)
  • log all tool calls to JSON via postToolUse hook, print on sessionEnd (1902d5f)
  • add --service-key CLI option, Bearer token support, and CI e2e auth test (9f6710a)
  • adt-auth: add service-key auth plugin and env resolver (6bdb0c8)
  • adt-mcp: implement MCP server package with tools and mock backend (f625d32)
  • adt-mcp: add adt-mcp package from PR #59, resolving conflicts with main (#59)
  • nx-cloud: setup nx cloud workspace (4a29f8a)
  • nx-cloud: setup nx cloud workspace (63f92c9)
  • nx-cloud: setup nx cloud workspace (64881ab)

🩹 Fixes

  • correct @abapify/speci/client doc reference to use /rest subpath (6076db7)
  • address all Qodo review comments from today's PRs (#44-#49) (#44, #49, #48, #47, #46, #45)
  • add missing tsdown.config.ts to Docker build context (a3b62a1)
  • add tsdown.config.ts to Dockerfile COPY command to fix Docker build (5fcffca)
  • exclude root abapify project from Docker build (3b92804)
  • add build step before publish to include dist/ in packages (a401f5c)
  • remove build target from root abapify project.json (919fe89)
  • exclude workspace root tsdown.config.ts from nx-tsdown plugin (d57a8bd)
  • add missing zod dependency to adt-schemas and ts-xsd, bump to 0.1.9 (9c23f17)
  • add missing ts-morph and adk deps, bump to 0.1.10 (513bcb9)
  • correct husky hook path in git-commit skill (core.hooksPath = .husky/_) (bfcd9e8)
  • remove adt-client↔adk circular dep; add nx-ci pre-commit skill (6d2075d)
  • checkout PR head in CI to avoid 3-way merge re-introducing circular dep (0b35753)
  • remove @abapify/adk from adt-client deps (circular dep, re-added by merge commit) (87f267d)
  • run lint/test/build in pre-commit hook (same as CI) (c685732)
  • remove @abapify/adk from adt-client deps (circular dep, re-added by merge commit) (550a1d1)
  • checkout PR head in CI to avoid 3-way merge re-introducing circular dep (083897d)
  • exclude workspace root tsdown.config.ts from nx-tsdown plugin (96fbec3)
  • add adt bin symlinks in Docker image (21aa590)
  • Docker image - fix adt bin symlink paths and CMD (47f983c)
  • update devcontainer features configuration (dcbf9bd)
  • update base image to latest TypeScript Node version (45a2c14)
  • query action_required status in approve-workflows.sh hook script (d40d3b5)
  • add copilot/** push trigger to ci.yml and improve hook to check both approval statuses (b2c4f5e)
  • add auto-approve workflow for Copilot CI runs and improve hook coverage (3eeedf6)
  • use schedule trigger in auto-approve-copilot-ci.yml to break approval deadlock (1ce442a)
  • add copilot/** push trigger to ci.yml so CI runs without approval (d858434)
  • retry workflow approval after report_progress (push) tool call (a929799)
  • test-hooks.sh approve-workflows tests failing in CI (detached HEAD + PATH bug) (1d86678)
  • readServiceKey only accepts file paths; clear error when raw JSON passed (664d857)
  • --service-key must point to a file path, not raw JSON (d72de44)
  • remove inlinedDependencies and alwaysBundle from adt-cli tsdown config (f276b10)
  • restore package-lock.json tracking, switch CI to npm ci to fix eslint external dep resolution (f7de5a7)
  • release workflow always checks out and commits to main branch (e3b57e7)
  • adt-mcp: resolve SonarQube E Security Rating findings (5ab60c3)
  • adt-mcp: resolve all SonarQube issues blocking PR #59 quality gate (#59)
  • adt-mcp: resolve remaining SonarQube issues (e172e72)
  • adt-mcp: apply PR review feedback - not-yet-impl errors, semver deps, mock, docs (e2e274d)
  • ci: restore ci.yml (bun install), set nx.json cli.packageManager=npm to fix eslint dep resolution (c7b1ce8)
  • docker: disable nx daemon/TUI and reduce parallelism to fix exit code 130 (53a4df3)
  • lint: fix 3 CI failures: ts-xsd lint, adt-cli lazy-load error, adt-contracts test header (c7b856c)
  • sonarqube: fix code quality issues from PR #76 (#76)
  • ts-xsd: fix NamedNodeMap/NodeList iteration and resolve bugs (1d4a5dd)

❤️ Thank You

v0.1.7

02 Mar 15:40

Choose a tag to compare

0.1.7 (2026-03-02)

🚀 Features

  • add GitHub Packages publish workflow (94f75e3)
  • move all packages to @abapify namespace for GitHub Registry publishing (e54b934)

🩹 Fixes

  • use github.ref_name as fallback in Resolve ref step (ed8d8b9)
  • simplify ref resolution and update version input descriptions (c2fa443)
  • remove version input from workflow_dispatch - use built-in branch/tag selector (b2aa7d7)
  • remove scope restriction in publish-gpr workflow so unscoped packages go to GitHub Packages (b85984e)

❤️ Thank You