fleetlens 1.0.13 → 1.0.14

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.
Files changed (69) hide show
  1. package/app/apps/web/.next/BUILD_ID +1 -1
  2. package/app/apps/web/.next/build-manifest.json +3 -3
  3. package/app/apps/web/.next/prerender-manifest.json +3 -3
  4. package/app/apps/web/.next/server/app/_global-error.html +1 -1
  5. package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
  6. package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +1 -1
  13. package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
  14. package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
  15. package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
  16. package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
  17. package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
  18. package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
  19. package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
  20. package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  21. package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
  22. package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
  23. package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  24. package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  25. package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  26. package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  28. package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  29. package/app/apps/web/.next/server/app/team/onboarding/page_client-reference-manifest.js +1 -1
  30. package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
  31. package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
  32. package/app/apps/web/.next/server/chunks/[root-of-the-server]__02.51sr._.js +1 -1
  33. package/app/apps/web/.next/server/chunks/[root-of-the-server]__0zyh554._.js +1 -1
  34. package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
  35. package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
  36. package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0s~wd1k._.js +1 -1
  37. package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
  38. package/app/apps/web/.next/server/chunks/ssr/apps_web_0epqfet._.js +1 -1
  39. package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0x014hn._.js +1 -1
  40. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
  41. package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
  42. package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
  43. package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
  44. package/app/apps/web/.next/server/middleware-manifest.json +5 -5
  45. package/app/apps/web/.next/server/pages/500.html +1 -1
  46. package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
  47. package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
  48. package/app/apps/web/.next/static/chunks/00_9zw_tjem-o.js +14 -0
  49. package/app/apps/web/.next/static/chunks/{0r~~~j3kmv7s_.js → 08os0c_3cdpqn.js} +1 -1
  50. package/app/apps/web/.next/static/chunks/0f9bdjq4n1ykp.js +1 -0
  51. package/app/apps/web/app/usage/page.tsx +264 -1
  52. package/app/apps/web/lib/changelog-data.generated.ts +1 -1
  53. package/app/apps/web/lib/usage-data.ts +1 -1
  54. package/app/apps/web/lib/usage-display.test.ts +15 -0
  55. package/app/apps/web/lib/usage-display.ts +22 -3
  56. package/app/apps/web/package.json +1 -1
  57. package/app/apps/web/tsconfig.tsbuildinfo +1 -1
  58. package/dist/daemon-worker.js +358 -92
  59. package/dist/index.js +564 -155
  60. package/menubar/Fleetlens.app/Contents/Info.plist +2 -2
  61. package/menubar/Fleetlens.app/Contents/MacOS/FleetlensMenubar +0 -0
  62. package/menubar/Fleetlens.app/Contents/Resources/command-code.svg +4 -0
  63. package/menubar/Fleetlens.app/Contents/_CodeSignature/CodeResources +11 -0
  64. package/package.json +1 -1
  65. package/app/apps/web/.next/static/chunks/0lcq6isl3n79m.js +0 -1
  66. package/app/apps/web/.next/static/chunks/0livk1wjx5m4o.js +0 -14
  67. /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → FOCI6RnIt_wZ2j2ZEqW5_}/_buildManifest.js +0 -0
  68. /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → FOCI6RnIt_wZ2j2ZEqW5_}/_clientMiddlewareManifest.js +0 -0
  69. /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → FOCI6RnIt_wZ2j2ZEqW5_}/_ssgManifest.js +0 -0
@@ -28,7 +28,7 @@ export type UsageSnapshot = {
28
28
  used: number | null;
29
29
  limit: number | null;
30
30
  remaining: number | null;
31
- unit: "ai-credits" | "premium-requests";
31
+ unit: "ai-credits" | "premium-requests" | "credits";
32
32
  /** Raw Copilot SDK entitlement flag. It can mean no personal ceiling was
33
33
  * disclosed for an organization pool, not that use is unbounded. */
34
34
  unlimited: boolean;
@@ -21,6 +21,10 @@ describe("visibleUsageAgents", () => {
21
21
  "grok",
22
22
  "claude-code",
23
23
  ]);
24
+ expect(visibleUsageAgents([{ agent: "command-code" }])).toEqual([
25
+ "command-code",
26
+ "claude-code",
27
+ ]);
24
28
  });
25
29
 
26
30
  it("treats legacy snapshots without an agent as Claude Code", () => {
@@ -72,6 +76,16 @@ describe("sidebarUsageRows", () => {
72
76
  ).toEqual(["7d"]);
73
77
  });
74
78
 
79
+ it("shows monthly + 5h + weekly for Command Code", () => {
80
+ expect(
81
+ sidebarUsageRows("command-code", {
82
+ monthly: win(59.6),
83
+ five_hour: win(0.3),
84
+ seven_day: win(99.5),
85
+ }).map((r) => r.label),
86
+ ).toEqual(["5h", "wk", "Monthly"]);
87
+ });
88
+
75
89
  it("derives Copilot monthly windowMs from the calendar month of resets_at", () => {
76
90
  // resets_at = Mar 1 00:00 UTC → previous month is February (non-leap 2026)
77
91
  const febMs =
@@ -134,5 +148,6 @@ describe("copilotQuotaPresentation", () => {
134
148
  it("uses one unit mapping for headings and quota details", () => {
135
149
  expect(copilotUnitLabel("ai-credits")).toBe("AI credits");
136
150
  expect(copilotUnitLabel("premium-requests")).toBe("premium requests");
151
+ expect(copilotUnitLabel("credits")).toBe("credits");
137
152
  });
138
153
  });
@@ -65,6 +65,23 @@ export function sidebarUsageRows(
65
65
  if (agent === "grok") {
66
66
  return [{ label: "7d", window: snapshot.seven_day ?? null, windowMs: SEVEN_DAYS_MS }];
67
67
  }
68
+ if (agent === "command-code") {
69
+ const monthly = snapshot.monthly ?? null;
70
+ let monthlyMs = MONTHLY_MS;
71
+ if (monthly?.resets_at) {
72
+ const endMs = new Date(monthly.resets_at).getTime();
73
+ if (Number.isFinite(endMs)) {
74
+ const reset = new Date(endMs);
75
+ const startMs = Date.UTC(reset.getUTCFullYear(), reset.getUTCMonth() - 1, 1);
76
+ monthlyMs = Math.max(HOUR, endMs - startMs);
77
+ }
78
+ }
79
+ return [
80
+ { label: "5h", window: snapshot.five_hour ?? null, windowMs: FIVE_HOURS_MS },
81
+ { label: "wk", window: snapshot.seven_day ?? null, windowMs: SEVEN_DAYS_MS },
82
+ { label: "Monthly", window: monthly, windowMs: monthlyMs },
83
+ ];
84
+ }
68
85
  // Codex accounts that dropped the 5h limit only report 7d.
69
86
  if (agent === "codex" && snapshot.five_hour?.utilization == null) {
70
87
  return [{ label: "7d", window: snapshot.seven_day ?? null, windowMs: SEVEN_DAYS_MS }];
@@ -88,14 +105,16 @@ export type CopilotMonthlyQuota = {
88
105
  used: number | null;
89
106
  limit: number | null;
90
107
  remaining: number | null;
91
- unit: "ai-credits" | "premium-requests";
108
+ unit: "ai-credits" | "premium-requests" | "credits";
92
109
  unlimited: boolean;
93
110
  };
94
111
 
95
112
  export function copilotUnitLabel(
96
113
  unit?: CopilotMonthlyQuota["unit"],
97
- ): "AI credits" | "premium requests" {
98
- return unit === "premium-requests" ? "premium requests" : "AI credits";
114
+ ): "AI credits" | "premium requests" | "credits" {
115
+ if (unit === "premium-requests") return "premium requests";
116
+ if (unit === "credits") return "credits";
117
+ return "AI credits";
99
118
  }
100
119
 
101
120
  export function copilotQuotaPresentation(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-lens/web",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "private": true,
5
5
  "description": "Local-only dashboard for Claude Code sessions. Reads ~/.claude/projects/*.jsonl and visualizes agent activity.",
6
6
  "license": "MIT",