@walwal-harness/cli 7.1.31 → 7.1.32

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.
@@ -159,20 +159,16 @@ export function Scene({ snapshot: initial, lang = "ko" }: SceneProps) {
159
159
  const activeMission = selectedMission ?? snapshot.missions[0] ?? null;
160
160
  const next: HeatSample[] = [];
161
161
  for (const lane of lanes) {
162
- // 3-state activity:
163
- // 0 = none (not on this mission)
164
- // 1 = standby (participated / has output, no live work)
165
- // 2 = in-progress (actively running right now)
162
+ // Live overlay records active work only. Historical participation is
163
+ // backfilled from persisted activity logs; completed reports must not
164
+ // keep repainting the current minute forever.
166
165
  let activity = 0;
167
166
  if (lane.kind === "worker") {
168
167
  const w = lane.worker;
169
168
  if (w) {
170
169
  if (w.active || w.status === "IN_PROGRESS") activity = 2;
171
- else if (w.content || w.status === "COMPLETE") activity = 1;
172
170
  }
173
171
  } else {
174
- const presentInMission =
175
- lane.mission?.cxxPresent.includes(lane.role) ?? false;
176
172
  const liveTodos = snapshot.todos.filter(
177
173
  (t) =>
178
174
  t.owner === lane.role &&
@@ -183,7 +179,7 @@ export function Scene({ snapshot: initial, lang = "ko" }: SceneProps) {
183
179
  (w) => w.active || w.status === "IN_PROGRESS"
184
180
  ).length;
185
181
  if (liveTodos > 0 && runningWorkers === 0) activity = 2;
186
- else if (presentInMission || lane.workers.length > 0 || runningWorkers > 0) activity = 1;
182
+ else if (runningWorkers > 0) activity = 2;
187
183
  }
188
184
  if (activity <= 0) continue;
189
185
  next.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walwal-harness/cli",
3
- "version": "7.1.31",
3
+ "version": "7.1.32",
4
4
  "description": "Company-style AI agent harness for Claude and Codex. Installs commands, CXX agents, skills, HR-Resource hiring pool, and project-local .harness runtime state.",
5
5
  "bin": {
6
6
  "walwal-harness": "bin/init.js"
@@ -141,11 +141,11 @@ function currentSamples(root, now = Date.now()) {
141
141
  const liveTodos = todos.filter((t) => t.owner === role && !["done", "completed"].includes(String(t.status)));
142
142
  let count = 0;
143
143
  if (!idle && liveTodos.length > 0 && runningWorkers.length === 0) count = 2;
144
- else if (active.cxxPresent.includes(role) || workers.length > 0 || runningWorkers.length > 0) count = 1;
144
+ else if (runningWorkers.length > 0) count = 2;
145
145
  if (count > 0) samples.push({ ts: new Date(now).toISOString(), laneId: role, count, hotfix: active.missionId.includes("hotfix"), missionId: active.missionId });
146
146
  }
147
147
  for (const worker of active.workers) {
148
- const count = !idle && !worker.complete && now - worker.updatedAt < RECENT_MS ? 2 : worker.complete || worker.content ? 1 : 0;
148
+ const count = !idle && !worker.complete && now - worker.updatedAt < RECENT_MS ? 2 : 0;
149
149
  if (count > 0) samples.push({ ts: new Date(now).toISOString(), laneId: worker.laneId, count, hotfix: active.missionId.includes("hotfix"), missionId: active.missionId });
150
150
  }
151
151
  return samples;