pub enum HistoryEventKind {
Show 14 variants
RelationshipAdded,
RelationshipRemoved,
RelationshipRetargeted,
BlockedMoveAcknowledged,
ParentSet,
ParentChanged,
ParentCleared,
TransitionAccepted,
TriageAccepted,
TriageDeclined,
TriageDuplicated,
TriageDeferred,
Archived,
Restored,
}Expand description
What kind of mutation a HistoryEvent records.
Closed set per data-model.md §8. blocked_move_acknowledged is defined
here so WP04 consumes it without editing this file.
Variants§
RelationshipAdded
A relationship was created.
RelationshipRemoved
A relationship was removed.
RelationshipRetargeted
A relationship was retargeted or re-kinded.
BlockedMoveAcknowledged
A move toward completion was confirmed while blockers were open.
ParentSet
An issue gained its first parent.
ParentChanged
An existing parent reference was repointed.
ParentCleared
A parent reference was removed.
TransitionAccepted
A status change was accepted by the transition service and applied.
WP03. The name says accepted because acceptance is the only outcome that
reaches the log: a rejected transition is completely inert and appends
nothing (contract §3.5), and a re-applied transition is idempotent and also
appends nothing. So the presence of this kind in a file is the record
that the change was accepted — a name like transition_attempted would
imply rejections are logged here too, and they are not.
TriageAccepted
A triage inbox issue was accepted into the normal workflow.
WP03 (mission triage-inbox-review-flow-01M3C600). Four triage kinds
rather than one triage_decided for the reason the parent kinds are
separate: the decision is the thing an audit reader is looking for, and
triage_decided — decline … makes them read the detail to learn which of
four mutually exclusive actions was taken. They extend the one #169 log
(research R5) — there is no second log and no triage-specific section.
Only applied decisions reach the log: a refusal appends nothing and a
repeated identical decision is a no-op (contract decision-history.md),
exactly as with HistoryEventKind::TransitionAccepted.
TriageDeclined
A triage inbox issue was declined: moved to the configured declined column, never deleted or archived (C-003).
TriageDuplicated
A triage inbox issue was marked a duplicate of another issue.
The event records the decision; the typed duplicates edge is the
HistoryEventKind::RelationshipAdded entry. One decision, two kinds
only because the relation already has its own kind and inventing a
second spelling for it would leave the graph and the log disagreeing.
TriageDeferred
A triage inbox issue was deferred: it stays in the inbox with a refreshed entry time (data-model §5).
Archived
The issue file was archived: renamed in place to a dot-prefixed name (issue #1492).
Restored
An archived issue was restored to its active name (issue #1492).
Implementations§
Source§impl HistoryEventKind
impl HistoryEventKind
Sourcepub fn is_triage_decision(self) -> bool
pub fn is_triage_decision(self) -> bool
Whether this kind records a triage decision (WP03’s four).
The membership test the decision service’s idempotence check and
not_in_triage/already_decided split both ask, so “is this a triage
decision?” has one answer rather than a four-way matches! at every
call site — where a fifth kind would be forgotten first.
Source§impl HistoryEventKind
impl HistoryEventKind
Sourcepub fn from_parent(kind: ParentEventKind) -> Self
pub fn from_parent(kind: ParentEventKind) -> Self
The model kind for a hierarchy event.
Vocabulary translation, not a rule: the service decides which transition
happened, and this maps that decision onto the log’s spelling. It lives on
the type that owns the log rather than at each call site, because three
callers need it — the storage write path, the --parent edit flag, and MCP’s
update_issue in WP07 — and a mapping repeated three times is one that will
be completed three times and fixed once.
Trait Implementations§
Source§impl Clone for HistoryEventKind
impl Clone for HistoryEventKind
impl Copy for HistoryEventKind
Source§impl Debug for HistoryEventKind
impl Debug for HistoryEventKind
Source§impl<'de> Deserialize<'de> for HistoryEventKind
impl<'de> Deserialize<'de> for HistoryEventKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for HistoryEventKind
impl Display for HistoryEventKind
impl Eq for HistoryEventKind
Source§impl FromStr for HistoryEventKind
impl FromStr for HistoryEventKind
Source§impl Hash for HistoryEventKind
impl Hash for HistoryEventKind
Source§impl Ord for HistoryEventKind
impl Ord for HistoryEventKind
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for HistoryEventKind
impl PartialEq for HistoryEventKind
Source§impl PartialOrd for HistoryEventKind
impl PartialOrd for HistoryEventKind
Source§impl Serialize for HistoryEventKind
impl Serialize for HistoryEventKind
impl StructuralPartialEq for HistoryEventKind
Auto Trait Implementations§
impl Freeze for HistoryEventKind
impl RefUnwindSafe for HistoryEventKind
impl Send for HistoryEventKind
impl Sync for HistoryEventKind
impl Unpin for HistoryEventKind
impl UnsafeUnpin for HistoryEventKind
impl UnwindSafe for HistoryEventKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more