tickmarkr 1.33.2 → 1.33.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/README.md +1 -1
- package/dist/cli/commands/status.js +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -368,7 +368,7 @@ Cloning this repo gives Claude Code project skills under `.claude/skills/`:
|
|
|
368
368
|
- **`/tickmarkr-auto`** — the **GSD binding**: run remaining GSD milestone phases autonomously with tickmarkr as the
|
|
369
369
|
executor (plans → compile → dry-run → run → merge → sync-back). Bindings are per-SDD by nature — the
|
|
370
370
|
sync-back writes that methodology's artifacts; other SDDs need their own thin binding, not this one.
|
|
371
|
-
- **`/overseer`** — supervise an autonomous tickmarkr engagement from a Herdr workspace: two-tier visible hierarchy,
|
|
371
|
+
- **`/tickmarkr-overseer`** — supervise an autonomous tickmarkr engagement from a Herdr workspace: two-tier visible hierarchy,
|
|
372
372
|
journal-based watchers, gate-failure triage, human-checkpoint routing. Requires `HERDR_ENV=1`.
|
|
373
373
|
|
|
374
374
|
Repo-scoped: available automatically in Claude Code sessions inside this repo; not installed by npm.
|
|
@@ -100,13 +100,16 @@ const liveness = (events) => {
|
|
|
100
100
|
const pid = daemonPid(events);
|
|
101
101
|
if (pid === undefined)
|
|
102
102
|
return `last event ${age} ago · daemon pid unknown`;
|
|
103
|
+
// a dead pid after run-end is a clean exit, not a crash — "dead" is only alarming (red) while
|
|
104
|
+
// the run is still incomplete (operator's crash indicator)
|
|
105
|
+
const ended = events.some((e) => e.event === "run-end");
|
|
103
106
|
let state;
|
|
104
107
|
try {
|
|
105
108
|
process.kill(pid, 0);
|
|
106
109
|
state = "alive";
|
|
107
110
|
} // no throw ⇒ alive
|
|
108
111
|
catch (k) {
|
|
109
|
-
state = k.code === "ESRCH" ? "dead" : "alive";
|
|
112
|
+
state = k.code === "ESRCH" ? (ended ? "finished" : "dead") : "alive";
|
|
110
113
|
} // EPERM ⇒ alive
|
|
111
114
|
return `last event ${age} ago · daemon pid ${pid} ${state}`;
|
|
112
115
|
};
|
|
@@ -172,6 +175,7 @@ const renderFrame = (cwd) => {
|
|
|
172
175
|
const gauge = (fill ? color("█".repeat(fill), anyFailed ? 31 : 32, true) : "") + (fill < gaugeCells ? dim("░".repeat(gaugeCells - fill)) : "");
|
|
173
176
|
const live = liveness(events)
|
|
174
177
|
.replace(/\bdead\b/, color("dead", 31, true))
|
|
178
|
+
.replace(/\bfinished\b/, color("finished", 2, true))
|
|
175
179
|
.replace(/\balive\b/, color("alive", 32, true))
|
|
176
180
|
.replaceAll(" · ", dot);
|
|
177
181
|
const tally = `${done}/${g.tasks.length} done`;
|