claude-discover 1.9.2 → 1.9.4

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.
@@ -70,12 +70,6 @@
70
70
  border-top-right-radius: 4px;
71
71
  }
72
72
 
73
- .heat-strip-label {
74
- fill: #cbd1dc;
75
- font-size: 10px;
76
- font-family: var(--font-mono), monospace;
77
- }
78
-
79
73
  .gantt-canvas {
80
74
  width: 100%;
81
75
  flex: 1;
@@ -580,7 +574,6 @@
580
574
  line-height: 18px;
581
575
  color: var(--text-dim);
582
576
 
583
- &.muted { color: var(--text-dim); }
584
577
  &.warn { color: var(--warn); }
585
578
  &.danger { color: var(--danger); }
586
579
  }
@@ -594,24 +587,6 @@
594
587
  }
595
588
  }
596
589
 
597
- .session-row-top {
598
- display: flex;
599
- justify-content: space-between;
600
- align-items: center;
601
- font-size: 11px;
602
- }
603
-
604
- .source-tag { font-weight: 600; letter-spacing: 0.4px; }
605
-
606
- .session-row-meta {
607
- display: flex;
608
- align-items: center;
609
- gap: 6px;
610
- font-size: 11px;
611
- min-width: 0;
612
- }
613
-
614
- .session-time { color: var(--text-faint); font-family: var(--font-mono), monospace; margin-left: auto; }
615
590
  .session-time-bottom {
616
591
  margin-top: 2px;
617
592
  display: flex;
@@ -620,9 +595,21 @@
620
595
  font-size: 10px;
621
596
  line-height: 14px;
622
597
  color: var(--text-faint);
598
+
599
+ & > * { flex: none; }
600
+ & > * + *::before { content: ', '; }
623
601
  }
624
602
  .session-model { color: var(--text-dim); }
625
- .session-time-meta { color: var(--text-faint); }
603
+
604
+ /* the only part of the line that gives way when the list pane narrows */
605
+ .session-project {
606
+ color: var(--text-dim);
607
+ flex: 0 1 auto;
608
+ min-width: 0;
609
+ overflow: hidden;
610
+ text-overflow: ellipsis;
611
+ white-space: nowrap;
612
+ }
626
613
 
627
614
  .session-name {
628
615
  font-weight: 600;
@@ -663,8 +650,6 @@
663
650
  text-overflow: ellipsis;
664
651
  white-space: nowrap;
665
652
  }
666
-
667
- .model-tag { font-family: var(--font-mono), monospace; color: var(--text-faint); margin-left: auto; }
668
653
  .markdown { white-space: normal; max-height: 500px; overflow: auto; }
669
654
  .markdown > *:first-child { margin-top: 0; }
670
655
  .markdown > *:last-child { margin-bottom: 0; }
@@ -908,7 +893,6 @@ button.msg-summary:hover { color: var(--text); background: var(--bg-elev-2); bor
908
893
 
909
894
  /* Assistant cycle card: header row above, bordered body with the response (tools fold into it). */
910
895
  .assistant-card-body {
911
- /*border: 1px solid var(--border);*/
912
896
  border-radius: 6px;
913
897
  padding: 5px 10px;
914
898
  background: var(--bg-elev);
@@ -916,12 +900,6 @@ button.msg-summary:hover { color: var(--text); background: var(--bg-elev-2); bor
916
900
  flex-direction: column;
917
901
  }
918
902
 
919
- .aux {
920
- & .block-text {
921
- margin: 5px 0 10px 0;
922
- }
923
- }
924
-
925
903
  /* Aux turns kept mounted while the card is folded, so their expanded state survives (see AssistantCard). */
926
904
  .turn-hidden { display: none; }
927
905
 
@@ -1029,6 +1007,7 @@ button.msg-summary:hover { color: var(--text); background: var(--bg-elev-2); bor
1029
1007
  .aux {
1030
1008
  font-size: calc(12px * var(--font-scale, 1));
1031
1009
 
1010
+ & .block-text { margin: 5px 0 10px 0; }
1032
1011
  &.error .aux-toggle { color: var(--danger); }
1033
1012
  }
1034
1013
 
@@ -1100,15 +1079,6 @@ button.msg-summary:hover { color: var(--text); background: var(--bg-elev-2); bor
1100
1079
  margin: 2px 0 4px;
1101
1080
  user-select: all;
1102
1081
  }
1103
-
1104
- .instructions-note {
1105
- font-size: calc(11px * var(--font-scale, 1));
1106
- color: var(--text-faint);
1107
- margin-bottom: 4px;
1108
- padding-bottom: 4px;
1109
- border-bottom: 1px dashed var(--border);
1110
- line-height: 1.5;
1111
- }
1112
1082
  .shorten-more {
1113
1083
  color: var(--warn);
1114
1084
  font-style: italic;
@@ -1213,12 +1183,7 @@ button.msg-summary:hover { color: var(--text); background: var(--bg-elev-2); bor
1213
1183
  border-radius: 2px;
1214
1184
  padding: 0 1px;
1215
1185
  }
1216
- .jsonl-viewer-loading,
1217
- .jsonl-viewer-error {
1218
- color: var(--text-faint);
1219
- }
1220
-
1221
- .jsonl-viewer-error { color: var(--danger); }
1186
+ .jsonl-viewer-loading { color: var(--text-faint); }
1222
1187
  .requests-view {
1223
1188
  flex: 1;
1224
1189
  display: flex;
@@ -1,4 +1,4 @@
1
- import { r as reactExports, j as jsxRuntimeExports, f as format, s as startOfWeek, a as startOfMonth, b as startOfDay, e as endOfWeek, c as endOfMonth, d as endOfDay, g as addWeeks, h as addMonths, i as addDays, k as isSameWeek, l as isSameMonth, m as isSameDay, n as intervalToDuration, o as getDaysInMonth, p as addHours, q as encode, H as Hourglass, G as Gauge, M as MessageSquare, C as Clock, Z as Zap, D as DollarSign, R as React, t as Markdown$1, u as rehypeHighlight, v as remarkGfm, T as Terminal, J as JsonView, w as vscodeTheme, x as tippy, y as reactDomExports, z as sn, X as Xt, A as Zt, B as tn, E as parse, F as delegate, I as clientExports } from "./vendors-S1fS5xz9.js";
1
+ import { r as reactExports, j as jsxRuntimeExports, f as format, s as startOfWeek, a as startOfMonth, b as startOfDay, e as endOfWeek, c as endOfMonth, d as endOfDay, g as addWeeks, h as addMonths, i as addDays, k as isSameWeek, l as isSameMonth, m as isSameDay, n as intervalToDuration, o as getDaysInMonth, p as addHours, q as encode, H as Hourglass, G as Gauge, M as MessageSquare, C as Clock, Z as Zap, D as DollarSign, R as React, t as Markdown$1, u as rehypeHighlight, v as remarkGfm, T as Terminal, J as JsonView, w as vscodeTheme, x as tippy, y as reactDomExports, z as an, A as qt, Q as Qt, B as nn, E as parse, F as delegate, I as clientExports } from "./vendors-JM3FOKMR.js";
2
2
  const SOURCE_COLORS = {
3
3
  scheduled: "#14b8a6",
4
4
  cli: "#3b82f6",
@@ -34,13 +34,13 @@ function useLocalStorage(key, initial) {
34
34
  }
35
35
  function clearOutdatedLocalStorage() {
36
36
  const version = localStorage.getItem(VERSION_KEY);
37
- if (version !== "1.9.2") {
38
- const [MAJOR, MINOR, PATCH] = "1.9.2".split(".");
37
+ if (version !== "1.9.4") {
38
+ const [MAJOR, MINOR, PATCH] = "1.9.4".split(".");
39
39
  const [major, minor, patch] = (version ?? "").split(".");
40
40
  if (MAJOR !== major || MINOR !== minor) {
41
41
  localStorage.clear();
42
42
  }
43
- localStorage.setItem(VERSION_KEY, "1.9.2");
43
+ localStorage.setItem(VERSION_KEY, "1.9.4");
44
44
  }
45
45
  }
46
46
  function useMouseFontScale(storageKey) {
@@ -677,14 +677,6 @@ function Toolbar({
677
677
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", {})
678
678
  ] });
679
679
  }
680
- const HOUR = 60 * 60 * 1e3;
681
- const THRESHOLDS = {
682
- context: { warn: 1e5, danger: 2e5 },
683
- messages: { warn: 250, danger: 500 },
684
- workTime: { warn: 0.5 * HOUR, danger: 2 * HOUR },
685
- cost: { warn: 3, danger: 8 },
686
- tokens: { warn: 3e6, danger: 8e6 }
687
- };
688
680
  function fmtDuration(ms) {
689
681
  if (!ms || ms < 0) return "—";
690
682
  if (ms < 6e4) return `${Math.round(ms / 1e3)}s`;
@@ -872,6 +864,14 @@ function PeriodSummary({ sessions, dayAnchor, granularity = "day" }) {
872
864
  ] })
873
865
  ] });
874
866
  }
867
+ const HOUR = 60 * 60 * 1e3;
868
+ const THRESHOLDS = {
869
+ context: { warn: 1e5, danger: 2e5 },
870
+ messages: { warn: 250, danger: 500 },
871
+ workTime: { warn: 0.5 * HOUR, danger: 2 * HOUR },
872
+ cost: { warn: 3, danger: 8 },
873
+ tokens: { warn: 3e6, danger: 8e6 }
874
+ };
875
875
  const countTokens = (text, model = "") => {
876
876
  if (!text) return 0;
877
877
  const LEGACY_CLAUDE = /-(3|4)(-|$)/;
@@ -1259,12 +1259,10 @@ ${TIPS.time}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Clock, { size: 11
1259
1259
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "session-label-text", children: sessionLabel(s) })
1260
1260
  ] }),
1261
1261
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "session-time-bottom", children: [
1262
+ s.project && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "session-project", title: s.project, children: s.projectShort }),
1263
+ s.models?.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "session-model", children: s.models.map((m) => m.replace(/^claude-/, "")).join(", ") }),
1262
1264
  /* @__PURE__ */ jsxRuntimeExports.jsx("span", { title: format(s.lastActivityAt, "MMM d, HH:mm:ss"), children: fmtAgo(s.lastActivityAt) }),
1263
- s.models?.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "session-model", children: [
1264
- ", ",
1265
- s.models.map((m) => m.replace(/^claude-/, "")).join(", ")
1266
- ] }),
1267
- linked && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "deeplink-note", "data-tippy-content": linkTip, "data-tippy-maxWidth": 560, children: ", opened from deep link" })
1265
+ linked && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "deeplink-note", "data-tippy-content": linkTip, "data-tippy-maxWidth": 560, children: "opened from deep link" })
1268
1266
  ] })
1269
1267
  ] }),
1270
1268
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "session-row-stats", children: [
@@ -2488,10 +2486,8 @@ const proxyChanges = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fr
2488
2486
  /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { children: `"env": {
2489
2487
  "ANTHROPIC_BASE_URL": "http://127.0.0.1:41414",
2490
2488
  "ENABLE_TOOL_SEARCH": "true"
2491
- },
2492
- "hooks": {
2493
- "SessionStart": ["…/bin/claude/hooks.mjs"]
2494
2489
  }` }),
2490
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Also registers the proxy as a login service so it survives restarts." }),
2495
2491
  /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { children: [
2496
2492
  "Note: ",
2497
2493
  /* @__PURE__ */ jsxRuntimeExports.jsx("code", { children: "/remote-control" }),
@@ -2575,8 +2571,8 @@ function App() {
2575
2571
  const [deepLink, setDeepLink] = reactExports.useState(null);
2576
2572
  const [sourceFilter, setSourceFilter] = reactExports.useState(null);
2577
2573
  const [projectFilter, setProjectFilter] = reactExports.useState(null);
2578
- const { defaultLayout, onLayoutChanged } = sn({ id: "app.body", panelIds: ["list", "detail"], storage: localStorage });
2579
- const { defaultLayout: rootLayout, onLayoutChanged: onRootLayoutChanged } = sn({ id: "app.root", panelIds: ["gantt", "body"], storage: localStorage });
2574
+ const { defaultLayout, onLayoutChanged } = an({ id: "app.body", panelIds: ["list", "detail"], storage: localStorage });
2575
+ const { defaultLayout: rootLayout, onLayoutChanged: onRootLayoutChanged } = an({ id: "app.root", panelIds: ["gantt", "body"], storage: localStorage });
2580
2576
  const dayRange = reactExports.useMemo(() => {
2581
2577
  const start = anchor;
2582
2578
  const end = endOfPeriod(anchor, granularity);
@@ -2655,14 +2651,14 @@ function App() {
2655
2651
  }
2656
2652
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "app", children: [
2657
2653
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
2658
- Xt,
2654
+ qt,
2659
2655
  {
2660
2656
  orientation: "vertical",
2661
2657
  className: "app-main",
2662
2658
  defaultLayout: rootLayout,
2663
2659
  onLayoutChanged: onRootLayoutChanged,
2664
2660
  children: [
2665
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Zt, { id: "gantt", defaultSize: 400, minSize: 180, className: "gantt-pane", children: [
2661
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Qt, { id: "gantt", defaultSize: 400, minSize: 180, className: "gantt-pane", children: [
2666
2662
  /* @__PURE__ */ jsxRuntimeExports.jsx(
2667
2663
  Toolbar,
2668
2664
  {
@@ -2696,16 +2692,16 @@ function App() {
2696
2692
  /* @__PURE__ */ jsxRuntimeExports.jsx(PeriodSummary, { sessions: dayItems.past, dayAnchor: anchor, granularity })
2697
2693
  ] })
2698
2694
  ] }),
2699
- /* @__PURE__ */ jsxRuntimeExports.jsx(tn, { className: "resize-handle resize-handle-h" }),
2700
- /* @__PURE__ */ jsxRuntimeExports.jsx(Zt, { id: "body", minSize: 20, className: "body-outer", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
2701
- Xt,
2695
+ /* @__PURE__ */ jsxRuntimeExports.jsx(nn, { className: "resize-handle resize-handle-h" }),
2696
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Qt, { id: "body", minSize: 20, className: "body-outer", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
2697
+ qt,
2702
2698
  {
2703
2699
  orientation: "horizontal",
2704
2700
  className: "body",
2705
2701
  defaultLayout,
2706
2702
  onLayoutChanged,
2707
2703
  children: [
2708
- /* @__PURE__ */ jsxRuntimeExports.jsx(Zt, { id: "list", defaultSize: 350, minSize: 200, maxSize: 700, className: "body-pane", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2704
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Qt, { id: "list", defaultSize: 350, minSize: 200, maxSize: 700, className: "body-pane", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2709
2705
  SessionList,
2710
2706
  {
2711
2707
  sessions: dayItems.past,
@@ -2714,8 +2710,8 @@ function App() {
2714
2710
  onSelect: selectSession
2715
2711
  }
2716
2712
  ) }),
2717
- /* @__PURE__ */ jsxRuntimeExports.jsx(tn, { className: "resize-handle resize-handle-v" }),
2718
- /* @__PURE__ */ jsxRuntimeExports.jsx(Zt, { id: "detail", minSize: 30, className: "body-pane", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Session, { meta: selected, missing, date: format(anchor, "yyyy-MM-dd"), granularity }) })
2713
+ /* @__PURE__ */ jsxRuntimeExports.jsx(nn, { className: "resize-handle resize-handle-v" }),
2714
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Qt, { id: "detail", minSize: 30, className: "body-pane", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Session, { meta: selected, missing, date: format(anchor, "yyyy-MM-dd"), granularity }) })
2719
2715
  ]
2720
2716
  }
2721
2717
  ) })