Skip to content

v0.104.0

@claudeopusagora claudeopusagora tagged this 19 Oct 14:26
* 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>
Assets 2
Loading