scribeclock 0.1.4 → 0.1.5
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/dist/commands/ingest.js +10 -3
- package/package.json +1 -1
package/dist/commands/ingest.js
CHANGED
|
@@ -919,7 +919,7 @@ export const analyticsCommand = cmd({
|
|
|
919
919
|
REPO_FLAG,
|
|
920
920
|
{ name: "days", alias: "d", type: "number", description: "Window in days (default 30, max 180)." },
|
|
921
921
|
{ name: "environment", alias: "e", type: "string", description: "Only this environment." },
|
|
922
|
-
{ name: "report", type: "string", choices: ["overview", "daily", "retention", "screens", "clicks", "events", "breakdowns", "releases", "issues", "hourly"], description: "One section only." },
|
|
922
|
+
{ name: "report", type: "string", choices: ["overview", "daily", "retention", "screens", "clicks", "events", "breakdowns", "releases", "issues", "hourly", "weekday"], description: "One section only." },
|
|
923
923
|
{ name: "csv", type: "boolean", description: "Print the daily series as CSV." },
|
|
924
924
|
],
|
|
925
925
|
examples: ["scribeclock analytics", "scribeclock analytics --days 7 --report releases", "scribeclock analytics --days 90 --csv > usage.csv", "scribeclock analytics --json | jq .totals"],
|
|
@@ -945,11 +945,11 @@ export const analyticsCommand = cmd({
|
|
|
945
945
|
out.log("");
|
|
946
946
|
out.log(out.bold("Overview") + out.dim(" (vs previous window)"));
|
|
947
947
|
out.kv([
|
|
948
|
-
["active users", `${String(t.users ?? 0)} (${delta(t.users, prev.users)}) · ${String(t.new_users ?? 0)} new · stickiness ${pct(t.stickiness_pct)} · MAU ${String(t.mau ?? 0)}`],
|
|
948
|
+
["active users", `${String(t.users ?? 0)} (${delta(t.users, prev.users)}) · ${String(t.new_users ?? 0)} new · ${String(t.returning_users ?? 0)} returning · stickiness ${pct(t.stickiness_pct)} · MAU ${String(t.mau ?? 0)}`],
|
|
949
949
|
["sessions", `${String(t.sessions ?? 0)} (${delta(t.sessions, prev.sessions)}) · ${String(t.avg_session_minutes ?? 0)} min avg · ${String(t.avg_screens_per_session ?? 0)} screens/session`],
|
|
950
950
|
["crash-free", `${pct(t.crash_free_sessions_pct)} sessions · ${pct(t.crash_free_users_pct)} users`],
|
|
951
951
|
["page views / clicks", `${String(t.pageviews ?? 0)} / ${String(t.clicks ?? 0)} · ${String(t.events ?? 0)} events (${delta(t.events, prev.events)})`],
|
|
952
|
-
["errors / crashes", `${String(t.errors ?? 0)} (${delta(t.errors, prev.errors)}) / ${String(t.crashes ?? 0)} (${delta(t.crashes, prev.crashes)}) · ${String(t.users_affected ?? 0)} users affected`],
|
|
952
|
+
["errors / crashes", `${String(t.errors ?? 0)} (${delta(t.errors, prev.errors)}) / ${String(t.crashes ?? 0)} (${delta(t.crashes, prev.crashes)}) · ${String(t.users_affected ?? 0)} users affected · ${String(t.errors_per_1k_sessions ?? "–")} per 1K sessions`],
|
|
953
953
|
["bug reports", `${String(t.bug_reports ?? 0)} (${delta(t.bug_reports, prev.bug_reports)})`],
|
|
954
954
|
["issues", `${String(t.issues_opened ?? 0)} opened · ${String(t.issues_resolved ?? 0)} resolved · ${String(t.issues_regressed ?? 0)} regressed · ${String(t.open_issues ?? 0)} open · MTTR ${String(t.mttr_hours ?? 0)} h`],
|
|
955
955
|
["emails", `${String(t.emails_immediate ?? 0)} immediate · ${String(t.emails_digest ?? 0)} digests`],
|
|
@@ -1022,6 +1022,13 @@ export const analyticsCommand = cmd({
|
|
|
1022
1022
|
out.log(` ${hourly.map((h) => String(h.hour).padStart(2, "0")).join(" ")}`);
|
|
1023
1023
|
out.log(` ${hourly.map((h) => { const n = Number(h.events); const lvl = n === 0 ? " " : n < max / 4 ? "▁" : n < max / 2 ? "▃" : n < (3 * max) / 4 ? "▅" : "█"; return ` ${lvl}`; }).join(" ")}`);
|
|
1024
1024
|
}
|
|
1025
|
+
const weekday = (data.weekday ?? []);
|
|
1026
|
+
if (show("weekday") && weekday.some((w) => Number(w.sessions) || Number(w.events) || Number(w.errors))) {
|
|
1027
|
+
out.log("");
|
|
1028
|
+
out.log(out.bold("Day of week (UTC)"));
|
|
1029
|
+
const names = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
1030
|
+
out.table(["day", "sessions", "events", "errors"], weekday.map((w) => [names[Number(w.weekday)] ?? String(w.weekday), w.sessions, w.events, w.errors]), { indent: 2 });
|
|
1031
|
+
}
|
|
1025
1032
|
if (data.hint && !Number(t.events) && !Number(t.sessions))
|
|
1026
1033
|
out.info(out.dim(String(data.hint)));
|
|
1027
1034
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scribeclock",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "ScribeClock from the terminal: tasks, time clock, projects, PRDs, meetings, files, vault and Cloudflare — a thin client over the ScribeClock MCP server.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Haydar Al-Karar LLC, dba Karar Tech",
|