question/answer text: server-side file_refs
DashboardEvent::QuestionAdded gains question_refs and QuestionResolved gains answer_refs — both populated via scan_validated_paths at emit time, same helper the broker forwarder uses for Sent/Delivered. cold-load snapshot wraps each OpQuestion in QuestionView with the same fields computed once per /api/state. client threads refs through questionsState rows (pending + history) and passes them to appendLinkified at every render site (live pane, history details). path tokens in question and answer bodies now linkify with the same server-vouched guarantee broker messages already enjoyed.
This commit is contained in:
parent
378e8bf9df
commit
4ec401a6c7
4 changed files with 62 additions and 9 deletions
|
|
@ -106,6 +106,11 @@ pub enum DashboardEvent {
|
|||
asked_at: i64,
|
||||
deadline_at: Option<i64>,
|
||||
target: Option<String>,
|
||||
/// Verified file-path tokens that appear in `question`.
|
||||
/// Same shape as broker `Sent`/`Delivered` events; the
|
||||
/// client linkifies only what hive-c0re vouched for.
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
question_refs: Vec<String>,
|
||||
},
|
||||
/// A question was answered (operator answer, peer answer,
|
||||
/// operator override on a peer thread, or ttl watchdog
|
||||
|
|
@ -120,6 +125,9 @@ pub enum DashboardEvent {
|
|||
answered_at: i64,
|
||||
cancelled: bool,
|
||||
target: Option<String>,
|
||||
/// Verified file-path tokens that appear in `answer`.
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
answer_refs: Vec<String>,
|
||||
},
|
||||
/// A lifecycle action started for an agent (spawn / start / stop
|
||||
/// / restart / rebuild / destroy). Clients render a spinner next
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue