tickmarkr 1.48.0 → 1.48.1

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.
@@ -33,6 +33,9 @@ function stylize(out) {
33
33
  }
34
34
  export async function doctor(_argv, cwd = process.cwd(), adapters = allAdapters(), opts = {}) {
35
35
  const cfg = loadConfig(cwd);
36
+ // banner at START — the logo greets the operator before the ~60s probe wait, never trailing it (operator report 2026-07-17)
37
+ if (opts.banner !== false && visual())
38
+ process.stdout.write(BANNER);
36
39
  // stderr, live: auth probes are real LLM calls (up to 30s per configured model) and the CLI
37
40
  // otherwise prints nothing until the end — silence here reads as a hang (v1.33.1)
38
41
  console.error("probing installed agent CLIs — one short LLM call per configured model, may take a minute...");
@@ -165,6 +168,5 @@ export async function doctor(_argv, cwd = process.cwd(), adapters = allAdapters(
165
168
  const modelSummary = modelStatus.length || preferStatus.length
166
169
  ? `\nmodel status:\n${[...modelStatus, ...preferStatus].join("\n")}`
167
170
  : "";
168
- const body = stylize(`tickmarkr doctor — capability matrix:\n${rows.join("\n")}${modelSummary}${drift}\nwrote ${stateDirName(cwd)}/doctor.json`);
169
- return opts.banner !== false && visual() ? BANNER + body : body;
171
+ return stylize(`tickmarkr doctor — capability matrix:\n${rows.join("\n")}${modelSummary}${drift}\nwrote ${stateDirName(cwd)}/doctor.json`);
170
172
  }
@@ -210,6 +210,8 @@ export async function init(argv, cwd = process.cwd()) {
210
210
  yes: { type: "boolean" },
211
211
  },
212
212
  });
213
+ // banner at START on the visual surface — every init path, not just the wizard, and never trailing the probe (operator report 2026-07-17)
214
+ emitBanner();
213
215
  const gdir = values["global-dir"] ?? globalConfigDir();
214
216
  mkdirSync(gdir, { recursive: true });
215
217
  const notes = [];
@@ -262,8 +264,5 @@ export async function init(argv, cwd = process.cwd()) {
262
264
  }
263
265
  if (values.agent)
264
266
  await installAgentFiles(cwd, values.force ?? false, values.docs ?? false, notes);
265
- const body = `${notes.join("\n")}\n${doc}\n${nextSteps(cwd, SCAFFOLD_SPEC)}\n${ENVIRONMENTS_FOOTER}`;
266
- if (visual() && !bannerEmitted)
267
- return BANNER + body;
268
- return body;
267
+ return `${notes.join("\n")}\n${doc}\n${nextSteps(cwd, SCAFFOLD_SPEC)}\n${ENVIRONMENTS_FOOTER}`;
269
268
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tickmarkr",
3
- "version": "1.48.0",
3
+ "version": "1.48.1",
4
4
  "description": "Spec in, verified work out.",
5
5
  "type": "module",
6
6
  "license": "MIT",