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.dispatchwas a closed switch — unknown commands returned "not implemented", so a host couldn't serve its own debug requests without forking the protocol. nessy needs anessy/debugStatechannel (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 fromdispatch's default case undercpuMu(coherent state reads).handled=falsedefers 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.