@getpipher/armory-fleet 0.10.2 → 0.10.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpipher/armory-fleet",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "private": false,
5
5
  "description": "The armory suite's subagent orchestrator for the pi coding agent — a cross-harness, superpowers-native fleet where every agent is armory-native from birth.",
6
6
  "license": "MIT",
@@ -10,7 +10,9 @@ const STATUS_GLYPH: Record<RunMeta["status"], string> = {
10
10
 
11
11
  export function runsRow(r: RunMeta, getModelContextWindow?: (model: string) => number | undefined): string {
12
12
  const dur = r.endedAt ? fmtDuration(r.endedAt - r.startedAt) : "—";
13
- const tok = r.tokenTotal > 0 ? ` ${fmtTokens(r.tokenTotal)} tok` : "";
13
+ // SPEC-6-1 fix: "tok" is the final context snapshot (contextTokens), NOT cumulative
14
+ // tokenTotal — it pairs with the ctx% segment (same metric).
15
+ const tok = r.contextTokens != null && r.contextTokens > 0 ? ` ${fmtTokens(r.contextTokens)} tok` : "";
14
16
  const maxCtx = getModelContextWindow?.(r.model);
15
17
  const ctx = (r.contextTokens != null && maxCtx != null && maxCtx > 0) ? ` ${Math.round(r.contextTokens / maxCtx * 100)}%` : "";
16
18
  const cost = r.costTotal ? ` $${r.costTotal.toFixed(4)}` : "";
@@ -72,7 +72,10 @@ const STATUS_GLYPH: Record<WidgetRun["status"], string> = {
72
72
  function widgetLine(r: WidgetRun, now: number): string {
73
73
  const glyph = STATUS_GLYPH[r.status];
74
74
  const dur = typeof r.startedAt === "number" ? ` ${fmtDuration(now - r.startedAt)}` : "";
75
- const tok = r.tokenTotal ? ` ${fmtTokens(r.tokenTotal)} tok` : "";
75
+ // SPEC-6-1 fix: "tok" is the live context snapshot (contextTokens), NOT cumulative
76
+ // tokenTotal — it pairs with the ctx% segment (same metric). Showing tokenTotal here
77
+ // ballooned to 6.7M on long runs (cumulative re-sends) next to a 35% ctx, looking broken.
78
+ const tok = r.contextTokens != null ? ` ${fmtTokens(r.contextTokens)} tok` : "";
76
79
  const ctx = (r.contextTokens != null && r.maxContext != null && r.maxContext > 0) ? ` ${Math.round(r.contextTokens / r.maxContext * 100)}%` : "";
77
80
  const cost = r.costTotal ? ` $${r.costTotal.toFixed(4)}` : "";
78
81