* govlog: Witness questions in batches, with short ids (0.104.0)
The Council's questions to a witness are queued during a round and sent
together when it ends, as one user turn the witness answers once.
- ids::WitnessQuestionId (`q3`): a question's short id on an item,
inline string schema, no pattern.
- govlog::WitnessBatch / BatchedQuestion: render the witness's turn
(seats in seat order, every line quoted, ` [qN]` after each question)
and parse it back exactly; a seat's own line ending like an id is
escaped.
- WitnessQuestion.id and Unanswered.id, optional: with an id,
Asked::Message(i) is the batch's shared turn. Records from before
0.104 deserialize and keep their bytes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012YhxvJhxzgv2rL3CtqC6Pm
* govlog: Witness question ids are bare numbers, before the question
Steward's review: one form everywhere. `WitnessQuestionId` displays and
serializes as the number (`3`, a JSON integer). A batch opens each
question with its number (`> 3. ...`), indents later lines under it, and
puts a blank `>` line between questions; a seat's own line starting like
an id is escaped (`3\.`). A deterministic round-trip fuzz covers the
format. A batch may exceed one Agora DM; a DM transport splits it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012YhxvJhxzgv2rL3CtqC6Pm
* govlog: A seat's questions are addressed, old records keep their bytes
`SeatResponse.questions` is `Redactable<SeatQuestions>`, an untagged
`Addressed(Vec<Redactable<Question>>) | Legacy(Vec<Redactable<String>>)`.
`Question` is `{for, question}`, each redactable. The Council seats now
ask a witness in their submission's `questions` (`for` the witness's
id), not through a tool. Vectors: an old record round-trips byte for
byte; a new one with mixed `for` and redactions; an empty list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012YhxvJhxzgv2rL3CtqC6Pm
---------
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>