Skip to content

v0.5.4 — seven MCP/ADT seam bug fixes

Choose a tag to compare

@yzonur yzonur released this 18 May 13:30

Seven bugs surfaced in one real-world ABAP refactor session against a ~147 KB class (/FGLR/CL_FLEET_TRANSFER) on on-prem E4D. All sat at the MCP↔ADT seam and were invisible to the pure-unit-test suite.

Full write-up: docs/bugfix-2026-05-15.md

Added

  • adt_set_source_chunked — multi-call write protocol for class bodies that don't fit in one MCP call (10-min TTL buffer, 4 MB cap, strict ordering, partial-source guard at commit).
  • adt_get_source.firstLine / lastLine / onlyMethod — pagination + method-scope slicing with totalLines / totalBytes / scope / truncated metadata.
  • adt_set_source.acknowledgePartial — explicit bypass for the new partial-write guard.
  • adt_activate.processRedoneOOSourceVersionOnly / preauditRequested — recover from "Object components locked in request and separate task" 403s.
  • adt_lock.transport — forwarded as corrNr=<TR>. adt_set_source and adt_delete_object now forward transport to the LOCK call as well.

Fixed

  • adt_set_source partial-write guard — detectPartialSource() rejects input whose first non-comment line is not a recognised top-level ABAP keyword. PUT on ADT is atomic; previously a chunk sent as a "diff" silently deleted the rest of the include.
  • parseAdtError no longer drops CTS diagnostics — LONGTEXT and T100KEY-V1..V4 are extracted from both <entry key="…"> and <property name="…"> shapes, surfaced as error.properties.longText and error.properties.t100.

Investigated

  • Method-scope class URI does not exist server-side — ADT Eclipse fetches the full implementations include and slices client-side. adt_get_source.onlyMethod is the practical equivalent.

Tests

54 new unit tests across test/source-guard.test.js, test/source-pagination.test.js, test/source-chunked.test.js, test/lifecycle-activate.test.js, test/lock.test.js, plus extensions to test/adt-error.test.js. Suite at 141/141.

Install: npm install claude-for-abap@0.5.4