This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

abcd drain --json echoes each issue's disposition reason straight from the ledger reader: that text includes the reader's error messages with record paths unquoted and a record's raw deferred_after value, so a repository whose ledger file name or deferred_after carries a control or bidi rune (U+202E, U+009B) puts it raw on the --json stream, and the drain copies the same text into a judgement's note in drain.json, where readDrain (since iss-2610121505153157) then refuses the whole file. Found by the implementer of iss-2610121505153157.

issueresolvedminoriss-2610121516552317

abcd drain --json echoes each issue's disposition reason straight from the ledger reader: that text includes the reader's error messages with record paths unquoted and a record's raw deferred_after value, so a repository whose ledger file name or deferred_after carries a control or bidi rune (U+202E, U+009B) puts it raw on the --json stream, and the drain copies the same text into a judgement's note in drain.json, where readDrain (since iss-2610121505153157) then refuses the whole file. Found by the implementer of iss-2610121505153157.

Security scope (abcd-fixes-what-it-adds): the route does not exist without abcd. The reader, the text it builds and the --json stream that carries it are abcd's own, so abcd added it and fixes it, at the boundary the text enters by; the fix changes nothing about how the repository works.

Frontmatter

idiss-2610121516552317
typeissue
lifecycleresolved
severityminor

mentions2