Skip to content

ADR 0006 — v1.4.0: DAP custom-request extension point

  • Status: Accepted
  • Release: v1.4.0 (2026-06-04)
  • Theme: A minimal library release cut specifically to give a downstream emulator (nessy) a protocol seam.

D1 — AttachConfig.CustomRequestHandler

  • Context: dap.Server.dispatch was a closed switch — unknown commands returned "not implemented", so a host couldn't serve its own debug requests without forking the protocol. nessy needs a nessy/debugState channel (PPU/OAM/mapper/APU state) over the same connection.
  • Decision: add an opt-in CustomRequestHandler func(command string, args json.RawMessage) (body any, handled bool, err error), invoked from dispatch's default case under cpuMu (coherent state reads). handled=false defers to the standard not-implemented error.
  • Consequences: hosts extend the protocol additively; chippy stays general. This is the first of the host-debug hooks later grouped under epic #419 (ADR 0008 D5). The release carries only this change + a vscode types fix.

Note

v1.4.0's release pipeline still contained the bundled VS Code extension, whose marketplace publish failed (the extension was blocked — ADR 0007). The binary release shipped fine.