Skip to content

v0.5.2 — dump tools verified against real ADT

Choose a tag to compare

@yzonur yzonur released this 13 May 11:23

v0.5.2 — dump tools verified against real ADT

v0.5.0 shipped the new adt_list_dumps / adt_get_dump tools without
real-system verification, and several layers of bugs only showed up when
the server was pointed at an on-prem ADT (S/4HANA, NetWeaver-class). This
patch lands the fixes from two rounds of E4D testing.

If you installed 0.5.0 via npx claude-for-abap, upgrade — adt_get_dump
is fully broken on 0.5.0 and the list response can blow past tool-output
token limits.

Fixed in adt_list_dumps

  • Accept header now sends application/atom+xml;type=feed. Bare
    application/atom+xml returns HTTP 406.
  • Parser handles namespace-prefixed Atom tags (<atom:entry>,
    <atom:author>, …). Real feeds use the prefix; v0.5.0 returned count: 0
    against feeds of 245+ entries.
  • Per-entry runtimeError and program extracted from <atom:category>
    elements (real shape), not just <title> (often absent).
  • Server-side maxResults is unreliable across releases — trim client-side
    after parse and report totalReturnedByServer so the truncation is
    visible.
  • Strip the per-entry HTML summary field. On real systems it's a 10+KB
    chunk per dump (chapter index + back-link) that on a 20-row list pushed
    responses past the tool-output token limit.

Fixed in adt_get_dump

  • Path corrected to /sap/bc/adt/runtime/dump/<id> (singular). The plural
    feed path 404s.
  • Feed ids arrive already URL-encoded; the tool no longer re-encodes them
    (which produced %25 doubled escapes and a 404).
  • Detail Accept is application/vnd.sap.adt.runtime.dump.v1+xml. The
    endpoint returns metadata + a <dump:link relation="contents">
    sub-resource link. Tool now performs the two-step fetch (metadata, then
    the formatted text from the link).
  • Root-element attributes are parsed (xmlns filtered out). Real on-prem
    payload (title, error, terminatedProgram, author, datetime,
    serverInstance, …) lives there, not in child elements.
  • runtimeError, program, user, time, server, title are lifted
    to the top level of the response so the agent doesn't have to probe
    the fields map.
  • Chapter parser handles boxed (pipe-wrapped) dump text and skips
    separator rules; recognizes both "What can you do?" and "What can I do?"
    phrasings.

Added in adt_get_dump

  • Structured chapters map with the six critical sections by default
    (shortText, whatHappened, errorAnalysis, howToCorrect,
    whereTerminated, sourceCodeExtract), plus seven more recognized
    on-demand. Pass chapters: [...] to limit or full: true to also
    include the raw text (typically 100KB+).
  • chaptersAvailable lists every chapter the parser recognized, even when
    the response is filtered, so the agent can see what else is fetchable.

Tests: 62 → 91 across this release line, all passing. Lint clean. Existing
tool behavior unchanged.

Full diff: CHANGELOG.md.