@cryptiklemur/lattice 1.21.0 → 1.22.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.
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect, useRef } from "react";
2
- import { Plus, ChevronDown, Search, LayoutDashboard, FolderOpen, TerminalSquare, StickyNote, Calendar, BarChart3, Bookmark } from "lucide-react";
2
+ import { Plus, ChevronDown, Search, LayoutDashboard, FolderOpen, TerminalSquare, StickyNote, Calendar, BarChart3, Bookmark, Settings, Network } from "lucide-react";
3
3
  import { LatticeLogomark } from "../ui/LatticeLogomark";
4
4
  import type { SessionSummary, ServerMessage, SettingsDataMessage } from "@lattice/shared";
5
5
  import type { DateRange } from "./SessionList";
@@ -11,7 +11,7 @@ import { useSession } from "../../hooks/useSession";
11
11
  import { clearSession } from "../../stores/session";
12
12
  import { useOnline } from "../../hooks/useOnline";
13
13
  import { openTab, openSessionTab, getWorkspaceStore } from "../../stores/workspace";
14
- import { getSidebarStore, goToAnalytics } from "../../stores/sidebar";
14
+ import { getSidebarStore, goToAnalytics, openSettings } from "../../stores/sidebar";
15
15
  import { setAnalyticsScope } from "../../stores/analytics";
16
16
  import { ProjectRail } from "./ProjectRail";
17
17
  import { SessionList } from "./SessionList";
@@ -268,17 +268,38 @@ export function Sidebar({ onSessionSelect }: { onSessionSelect?: () => void }) {
268
268
  </span>
269
269
  </div>
270
270
  <div className="flex-1 overflow-auto px-4 py-3 pb-16">
271
- <button
272
- type="button"
273
- onClick={function () {
274
- setAnalyticsScope("global");
275
- openTab("analytics");
276
- }}
277
- className="flex items-center gap-2 w-full px-2 py-1.5 mb-2 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
278
- >
279
- <BarChart3 size={12} />
280
- <span className="font-mono tracking-wide">Global Analytics</span>
281
- </button>
271
+ <div className="flex flex-col gap-0.5 mb-3">
272
+ <button
273
+ type="button"
274
+ onClick={function () {
275
+ setAnalyticsScope("global");
276
+ openTab("analytics");
277
+ getSidebarStore().setState(function (s) {
278
+ return { ...s, activeView: { type: "chat" } };
279
+ });
280
+ }}
281
+ className="flex items-center gap-2 w-full px-2 py-1.5 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
282
+ >
283
+ <BarChart3 size={12} />
284
+ <span className="font-mono tracking-wide">Global Analytics</span>
285
+ </button>
286
+ <button
287
+ type="button"
288
+ onClick={function () { openSettings("nodes"); }}
289
+ className="flex items-center gap-2 w-full px-2 py-1.5 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
290
+ >
291
+ <Network size={12} />
292
+ <span className="font-mono tracking-wide">Nodes</span>
293
+ </button>
294
+ <button
295
+ type="button"
296
+ onClick={function () { openSettings("appearance"); }}
297
+ className="flex items-center gap-2 w-full px-2 py-1.5 rounded-lg text-[11px] text-base-content/40 hover:text-base-content/70 hover:bg-base-300/30 transition-colors"
298
+ >
299
+ <Settings size={12} />
300
+ <span className="font-mono tracking-wide">Settings</span>
301
+ </button>
302
+ </div>
282
303
  <SectionLabel label="Projects" />
283
304
  <div className="text-[12px] text-base-content/40 px-4">
284
305
  Select a project from the rail to view sessions.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptiklemur/lattice",
3
- "version": "1.21.0",
3
+ "version": "1.22.1",
4
4
  "description": "Multi-machine agentic dashboard for Claude Code. Monitor sessions, manage MCP servers and skills, orchestrate across mesh-networked nodes.",
5
5
  "license": "MIT",
6
6
  "author": "Aaron Scherer <me@aaronscherer.me>",