If the underlying pijul supports setting the description from the command line, then separate the title from the body in checkin messages. Otherwise, just use plain messages.
Z4QSQSRZLT2NW4TQDXGOBPDXN5CV3TAPYMTFJPXDHCQ3M2QZGHPQC
(defun vc-pijul--split-on-first-line (str)
"Split STR on the first line.
That is, return a cons cell whose `car' is the first line of STR
and whose `cdr' is the rest of STR.
Note that newlines between the first line and the subsequent
lines will be removed.
If STR contains no newlines, just return a list with a single
element STR."
(save-match-data
(let ((first-newline (string-match "\n" str)))
(cond
(first-newline
(cons (substring str 0 first-newline)
(let ((rest (substring str (1+ first-newline))))
(cond
((string-match "\n+" rest)
(substring rest (match-end 0)))
(rest)))))
((list str))))))
(let* ((args
(let* ((support-description-p
(with-temp-buffer
(vc-pijul--call t "rec" "--help")
(goto-char (point-min))
(cond
((re-search-forward
(rx-to-string
'(seq bol (zero-or-more space) "--description")
t)
nil t)
t))))
(checkin-message
(cond
((string-prefix-p "Summary: " comment)
(substring comment 9))
(comment)))
(args
(list "--all" "-m"
(replace-regexp-in-string "^Summary: " "" comment))
(list "--all")
(cond
(support-description-p
(let* ((splitted
(vc-pijul--split-on-first-line checkin-message))
(title (car splitted))
(body (cdr splitted)))
(list "--message" title
"--description" body)))
((list "--message" checkin-message)))