pi-better-harness 0.15.2 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -40,7 +40,7 @@ const PlanStepSchema = Type.Object({
|
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
const WorkflowRowChangeSchema = Type.Object({
|
|
43
|
-
id: Type.Optional(Type.String({ description: "Unit id, component id (e.g. C1), or fleet stage (explore,
|
|
43
|
+
id: Type.Optional(Type.String({ description: "Unit id, component id (e.g. C1), or fleet stage (explore, implement, review, ci, canary). Omit for run-level fields." })),
|
|
44
44
|
target: Type.Optional(StringEnum(["unit", "component", "fleet", "run"] as const, { description: "Required with add. Otherwise only needed when the same id names two kinds of row." })),
|
|
45
45
|
set: Type.Optional(Type.Object({}, {
|
|
46
46
|
additionalProperties: true,
|
|
@@ -43,7 +43,7 @@ export interface RushPlanUpdateResult {
|
|
|
43
43
|
/** Contract values from rush-issues references/task-plan.md. */
|
|
44
44
|
export const RUSH_UNIT_STATUSES = ["pending", "in-flight", "diagnosing", "succeeded", "blocked", "cancelled"] as const;
|
|
45
45
|
export const RUSH_UNIT_STAGES = ["pending", "implement", "validate", "self-review", "diagnose", "done"] as const;
|
|
46
|
-
export const RUSH_COMPONENT_STATUSES = ["building", "combining", "review", "cicd", "merged", "blocked"] as const;
|
|
46
|
+
export const RUSH_COMPONENT_STATUSES = ["building", "combining", "review", "ci", "cicd", "merged", "blocked"] as const;
|
|
47
47
|
export const RUSH_FLEET_STATUSES = [
|
|
48
48
|
"pending", "in-flight", "diagnosing", "succeeded", "failed", "blocked", "cancelled", "not-applicable", "merged",
|
|
49
49
|
] as const;
|
|
@@ -91,7 +91,9 @@ export function projectRushPlan(data: unknown, runId: string): RushPlan {
|
|
|
91
91
|
planRevision: data.planRevision as number,
|
|
92
92
|
issues,
|
|
93
93
|
fleet,
|
|
94
|
-
|
|
94
|
+
// The skill marks canary work per unit (`warehouseCanary`); older plans set a run-level flag.
|
|
95
|
+
warehouseCanaryRequired: data.warehouseCanaryRequired === true ||
|
|
96
|
+
persistedUnits.some((unit: unknown) => isRecord(unit) && unit.warehouseCanary != null && unit.warehouseCanary !== false),
|
|
95
97
|
spec: isRecord(data.spec) && typeof data.spec.title === "string" ? { title: data.spec.title } : undefined,
|
|
96
98
|
};
|
|
97
99
|
}
|
|
@@ -132,9 +134,10 @@ function workflowStatus(status: string): DisplayStatus {
|
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
function presentRushPlan(plan: RushPlan): PlanPresentation {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
// The warehouse canary only applies to data work; hide it otherwise.
|
|
138
|
+
const stages = ["explore", "implement", "review", "ci", ...(plan.warehouseCanaryRequired ? ["canary"] : [])];
|
|
139
|
+
const fleet = stages.map((stage) => {
|
|
140
|
+
const status = plan.fleet[stage]?.status ?? "pending";
|
|
138
141
|
const display = workflowStatus(status);
|
|
139
142
|
const style = statusStyle(display);
|
|
140
143
|
return { color: style.color, text: ` ${stage} ${style.glyph}${display === "unknown" ? ` ${planText(status)}` : ""}` };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-better-harness",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.3",
|
|
4
4
|
"description": "Pi extension bundle for a write sandbox, subagents, background tasks, SSH, goals, and structured plans.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"pi-better-background-tasks": "0.6.3",
|
|
56
56
|
"pi-better-goal": "0.6.0",
|
|
57
|
-
"pi-better-plan": "0.5.
|
|
57
|
+
"pi-better-plan": "0.5.2",
|
|
58
58
|
"pi-better-sandbox": "0.8.1",
|
|
59
59
|
"pi-better-ssh": "0.1.1",
|
|
60
60
|
"pi-better-subagents": "0.11.0",
|