mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-23 09:07:46 +02:00
Add recovery_needed and next-action surface to IssueBlockerAttention
Phase 5 of the liveness plan needs the blocker read model to distinguish a "productive run stopped without continuation" leaf from generic attention or stalled-review chains. Extend the shared type so server and UI share one vocabulary for the new surface (state, reasons, owner, hint). Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
2656a86dae
commit
7d475f85bf
3 files changed
+33
-1
No files matched your search
@@ -333,6 +333,9 @@ export type {
|
||||
IssueBlockerAttention,
|
||||
IssueBlockerAttentionReason,
|
||||
IssueBlockerAttentionState,
|
||||
IssueBlockerNextActionHint,
|
||||
IssueBlockerNextActionOwner,
|
||||
IssueBlockerNextActionOwnerType,
|
||||
IssueProductivityReview,
|
||||
IssueProductivityReviewTrigger,
|
||||
IssueReferenceSource,
|
||||
|
||||
@@ -136,6 +136,9 @@ export type {
|
||||
IssueBlockerAttention,
|
||||
IssueBlockerAttentionReason,
|
||||
IssueBlockerAttentionState,
|
||||
IssueBlockerNextActionHint,
|
||||
IssueBlockerNextActionOwner,
|
||||
IssueBlockerNextActionOwnerType,
|
||||
IssueProductivityReview,
|
||||
IssueProductivityReviewTrigger,
|
||||
IssueReferenceSource,
|
||||
|
||||
@@ -119,13 +119,37 @@ export interface IssueRelationIssueSummary {
|
||||
terminalBlockers?: IssueRelationIssueSummary[];
|
||||
}
|
||||
|
||||
export type IssueBlockerAttentionState = "none" | "covered" | "stalled" | "needs_attention";
|
||||
export type IssueBlockerAttentionState =
|
||||
| "none"
|
||||
| "covered"
|
||||
| "stalled"
|
||||
| "needs_attention"
|
||||
| "recovery_needed";
|
||||
|
||||
export type IssueBlockerAttentionReason =
|
||||
| "active_child"
|
||||
| "active_dependency"
|
||||
| "stalled_review"
|
||||
| "attention_required"
|
||||
| "explicit_waiting"
|
||||
| "productive_run_stopped"
|
||||
| "continuation_exhausted"
|
||||
| "continuation_suppressed"
|
||||
| null;
|
||||
|
||||
export type IssueBlockerNextActionOwnerType = "agent" | "user" | "none";
|
||||
|
||||
export interface IssueBlockerNextActionOwner {
|
||||
type: IssueBlockerNextActionOwnerType;
|
||||
agentId?: string | null;
|
||||
userId?: string | null;
|
||||
}
|
||||
|
||||
export type IssueBlockerNextActionHint =
|
||||
| "wake_to_continue"
|
||||
| "needs_human_review"
|
||||
| "create_recovery_issue"
|
||||
| "reassign"
|
||||
| null;
|
||||
|
||||
export interface IssueBlockerAttention {
|
||||
@@ -137,6 +161,8 @@ export interface IssueBlockerAttention {
|
||||
attentionBlockerCount: number;
|
||||
sampleBlockerIdentifier: string | null;
|
||||
sampleStalledBlockerIdentifier: string | null;
|
||||
nextActionOwner: IssueBlockerNextActionOwner | null;
|
||||
nextActionHint: IssueBlockerNextActionHint;
|
||||
}
|
||||
|
||||
export type IssueProductivityReviewTrigger =
|
||||
|
||||
Reference in new issue
Block a user