sessiongraph 0.1.9 → 1.0.0

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/docs/guide.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Explore & visualize all your LLM sessions**
4
4
 
5
- A local-first galaxy of your LLM sessions. Import **OpenCode, Claude Code, Codex, and Cursor**, explore relationships and changed files, search conversations, and fly through their timeline.
5
+ A local-first galaxy of your LLM sessions. Import **OpenCode, Claude Code, Codex, Cursor, Gemini CLI, Qwen Code, Pi, GitHub Copilot CLI, Cline, Roo Code, Kilo Code, and Continue**, explore relationships and changed files, search conversations, and fly through their timeline. Source-specific coverage is listed below.
6
6
 
7
7
  ## Open SessionGraph
8
8
 
@@ -21,7 +21,7 @@ Installers appear in `src-tauri/target/release/bundle/`. On macOS, open `macos/S
21
21
 
22
22
  ### npm launcher
23
23
 
24
- The launcher and platform packages are configured for public npm distribution. Registry publishing is still being finalized; use the [desktop downloads](../README.md#install) in the meantime. Once published:
24
+ Install and open the public npm launcher with Node 24+:
25
25
 
26
26
  ```sh
27
27
  npx sessiongraph
@@ -40,11 +40,11 @@ To test installation before publishing:
40
40
  ```sh
41
41
  pnpm package:desktop
42
42
  # macOS Apple Silicon example:
43
- npx --package ./release/sessiongraph-0.1.0.tgz \
44
- --package ./release/sessiongraph-app-darwin-arm64-0.1.0.tgz sessiongraph
43
+ npx --package ./release/sessiongraph-1.0.0.tgz \
44
+ --package ./release/sessiongraph-app-darwin-arm64-1.0.0.tgz sessiongraph
45
45
  ```
46
46
 
47
- The launcher requires Node 24+. Platform packages are optional dependencies selected by OS/architecture. The browser build is bundled into the launcher package. `scripts/package-desktop.mjs` builds both tarballs. Pushes to `main` build platform installers, create a version tag and GitHub release, and publish public npm packages. See [Releases](releases.md) for the workflow and credentials. macOS builds are ad-hoc signed but not notarized.
47
+ The launcher requires Node 24+. Platform packages are optional dependencies selected by OS/architecture. The browser build is bundled into the launcher package. `scripts/package-desktop.mjs` builds both tarballs. Pushes to `main` build platform installers, create a version tag and GitHub release, and publish public npm packages. See [Releases](releases.md) for the workflow. macOS builds are ad-hoc signed but not notarized.
48
48
 
49
49
  ### Browser development
50
50
 
@@ -87,9 +87,28 @@ Onboarding closes automatically after a successful import and library refresh. I
87
87
  | Claude Code | SDK `listSessions`, `getSessionMessages`, `getSubagentMessages`; local transcript metadata | All local projects, worktrees, and subagent transcripts. SDK-visible conversation chain can omit pre-compaction text. No inferred fork ancestry. File evidence requires a successful matching edit-tool result. |
88
88
  | Codex | Bounded streaming reads of active and archived local JSONL rollouts | Explicit recorded fork/parent fields; completed file-change events. Mirrored event text is not imported twice. Store-only/cloud-only history and ordinary ChatGPT desktop/web chats are not imported. No agent process is started. |
89
89
  | Cursor | IDE JSONL transcripts in `~/.cursor/projects/*/agent-transcripts/`, CLI `~/.cursor/chats/` and ACP `~/.cursor/acp-sessions/` stores | Explicit subagent directories; one representation per native ID, preferring the committed store conversation. No inferred forks or successful edits. Legacy Composer databases, older `.txt` transcripts, cloud-only and SDK-only history are excluded. |
90
+ | Gemini CLI | `~/.gemini/tmp/*/chats/` JSON/JSONL; sandbox cache equivalent | Reconstructs append-only patches and rewinds. Explicit subagent directories form parent links. Workspace identity comes from `.project_root`; unknown directories stay unknown. |
91
+ | Qwen Code | `~/.qwen/projects/*/chats/*.jsonl` | Recorded forks and parent sessions remain distinct. Tool results retain call IDs and recorded execution status. Daemon-only histories are excluded. |
92
+ | Pi | `~/.pi/agent/sessions/**/*.jsonl` | Imports all recorded branches, reasoning, tools, and compaction entries. Entry parent IDs describe the in-file tree; parent-session file paths are not guessed into fork/child relationships. |
93
+ | GitHub Copilot CLI | `~/.copilot/session-state/**/events.jsonl` | Final persisted messages replace streaming mirrors. Explicit spawning-parent IDs form child links. Only committed `fileEdits` records establish changed files, including recorded partial-success edits. Cloud-only sessions are excluded. |
94
+ | Cline | Extension `tasks/*/api_conversation_history.json`; `~/.cline/data/sessions/*/*.messages.json` | Matching task metadata or `session.json` supplies workspace and lineage. Database-only metadata remains unknown. Extension snapshots can omit UI-only and pre-compaction messages. |
95
+ | Roo Code | Extension `tasks/*/api_conversation_history.json` and `history_item.json` | Recorded task parents; partial API-conversation snapshots. XML tool requests alone do not establish successful edits. |
96
+ | Kilo Code | Legacy extension task JSON | Legacy extension histories only. Current Kilo CLI and migrated database histories are excluded. Same snapshot limitations as Roo Code. |
97
+ | Continue | `~/.continue/sessions/*.json` and session index | IDE/CLI conversation snapshots and recorded tool messages. No inferred relationships or edit evidence. Missing message times stay unknown; attachments and transient tool UI state are omitted. |
90
98
 
91
99
  Source roots respect `CLAUDE_CONFIG_DIR` and `CODEX_HOME`. `SESSIONGRAPH_SERVICE_FILE` selects a local OpenCode service registration. Adapters never read authentication files or execute source configuration, hooks, or agents. Source formats can evolve: unsupported history is disclosed rather than fabricated.
92
100
 
101
+ ### Additional source locations
102
+
103
+ - Gemini respects `GEMINI_CLI_HOME` as a replacement home directory. `SESSIONGRAPH_GEMINI_HOME` selects a `.gemini`-style directory containing `tmp/`.
104
+ - Qwen respects `QWEN_RUNTIME_DIR`, then `QWEN_HOME`. `SESSIONGRAPH_QWEN_HOME` overrides both and contains `projects/`.
105
+ - Pi respects `PI_CODING_AGENT_DIR`; `SESSIONGRAPH_PI_SESSIONS_DIR` directly selects the sessions directory.
106
+ - `SESSIONGRAPH_COPILOT_HOME` selects a `.copilot`-style directory containing `session-state/`.
107
+ - Cline, Roo, and legacy Kilo discovery covers standard VS Code, Insiders, VSCodium, Cursor, Windsurf, and local VS Code Server extension storage. `SESSIONGRAPH_CLINE_HOME`, `SESSIONGRAPH_ROO_HOME`, and `SESSIONGRAPH_KILO_HOME` select storage directories containing `tasks/`. Cline's override can also contain `data/sessions/`; its normal CLI discovery respects `CLINE_DIR`, `CLINE_DATA_DIR`, and `CLINE_SESSION_DATA_DIR`.
108
+ - Continue respects `CONTINUE_GLOBAL_DIR`; `SESSIONGRAPH_CONTINUE_HOME` overrides it and contains `sessions/`.
109
+
110
+ These file adapters read stable snapshots bounded to 32 MB combined, 50,000 records/messages, 20,000 histories/directories, 100,000 directory entries, and six levels of nested directories. Symlink history files are skipped. Changing, unreadable, or oversized sources retain their saved imports. Missing message times remain unknown; session creation falls back to recorded metadata, the first recorded message, or file time. File snapshots are unavailable for these sources; successful matching edit results supply evidence where supported. Binary attachments and unsupported blocks are disclosed as omitted.
111
+
93
112
  ### Cursor details
94
113
 
95
114
  - Select **Cursor** in **Manage sources**, then import. Cursor need not be running. This is a local-format adapter, not a supported Cursor history-export API; the [Cursor SDK](https://cursor.com/docs/sdk/typescript) documents its own local agent store.
@@ -130,7 +149,7 @@ Desktop update checks and downloads contact GitHub without session content; npm
130
149
  - Click a session for changed-file satellites and source evidence. File details load in 120-message batches; the map displays at most 80 files. Evidence describes historical edits, not today's Git diff.
131
150
  - **Play** follows newly appearing clusters with a half-turn around the graph and a closing pullback (30 seconds at 1×). Dragging, zooming, scrubbing, fitting, or opening a dialog pauses playback. 2D pans without orbiting; reduced motion keeps the camera still.
132
151
  - The timeline's calendar offers a styled range picker with presets, month/year navigation, typed ISO dates, and keyboard navigation. Date boundaries are inclusive in your local timezone. Select menus share keyboard/typeahead behavior and styling across filters, settings, search, events, and the launcher.
133
- - **Open session** lets you choose OpenCode, Claude Code, Codex, or Cursor Agent and a working directory. See cross-harness continuation below.
152
+ - **Open session** lets you choose one of eight CLI destinations and a working directory. See cross-harness continuation below.
134
153
  - Unknown model/cost/token fields stay unknown. Session selection is encoded in a local permalink.
135
154
 
136
155
  ### Sound and appearance
@@ -142,14 +161,15 @@ Open **Settings** using the gear button. Changes apply live and persist on this
142
161
  - **Graphics:** performance/balanced/high rendering, glow, node size, stars, labels, and focus dimming.
143
162
  - **Trails & playback:** all/selected/hidden lifetime trails, brightness, decorative flow and speed, relationship links, event markers, and 0.25×–3× playback. Flow respects reduced motion and never changes event timestamps or trail endpoints.
144
163
 
145
- **Restore defaults** resets these preferences; they live in versioned browser/WebView local storage, separately from the session library.
164
+ **Restore defaults** resets these preferences; they are saved in the local library, with an appearance cache in browser/WebView local storage.
146
165
 
147
166
  ## Continue in another harness
148
167
 
149
- Select a session, click **Open session**, and choose **Open in → OpenCode / Claude Code / Codex / Cursor Agent**. The original working folder is prefilled; choose an existing folder if it has moved.
168
+ Select a session, click **Open session**, and choose **Open in → OpenCode / Claude Code / Codex / Cursor Agent / Gemini CLI / Qwen Code / Pi / GitHub Copilot CLI**. The original working folder is prefilled; choose an existing folder if it has moved.
150
169
 
151
170
  - The same harness resumes the native session (`opencode --session`, `claude --resume`, `codex resume`). OpenCode also offers its local browser route. Claude subagent histories use a fresh context handoff because they cannot be resumed independently.
152
171
  - Cursor CLI sessions from the default store can resume with [`cursor-agent --resume`](https://cursor.com/docs/cli/reference/parameters) in their verified original folder. Cursor IDE, ACP, subagent, custom-root, and relocated histories start a new Cursor Agent session with saved context. Install the Cursor Agent CLI to use this destination.
172
+ - Gemini, Qwen, and Copilot use `--resume <native ID>`; Pi uses `--session <native ID>`. Eligible local histories resume in their original working directory. SessionGraph-specific custom-root overrides, relocated directories, and child sessions use saved-context handoffs. Gemini sandbox-cache histories also use handoffs. No source agent installation is needed just to read its saved files.
153
173
  - A different harness starts a **new session with saved context**. It reads a local Markdown handoff, recaps where the conversation left off, and asks what to do next. Preparing or copying the command does not start an agent. Saved context works even when the original source app is offline.
154
174
  - Handoffs preserve the initial user request and up to 200 recent messages in conversation order, bounded to roughly 166,000 text characters. Long messages/tool outputs are shortened. The chooser displays coverage and the context file path. Files, credentials, tool state, and native session identities are not migrated.
155
175
  - Context files live in `handoffs/` beside SessionGraph's database, with private filesystem permissions. Identical saved context reuses the same file. They stay on disk so a copied command can be used later; remove them when no longer needed.
package/docs/v1.0.0.md ADDED
@@ -0,0 +1,31 @@
1
+ # SessionGraph v1.0.0
2
+
3
+ **Explore & visualize all your LLM sessions**
4
+
5
+ ## Twelve coding agents, one local library
6
+
7
+ Gemini CLI, Qwen Code, Pi, GitHub Copilot CLI, Cline, Roo Code, Kilo Code's legacy extension history, and Continue join OpenCode, Claude Code, Codex, and Cursor.
8
+
9
+ - Search across saved conversations and explore messages, tools, recorded reasoning, and changed-file evidence.
10
+ - Preserve explicit forks, child sessions, and in-file branch links without guessing ancestry or missing timestamps.
11
+ - Continue in eight CLI destinations, using native resume where supported or a local saved-context handoff.
12
+ - Find sources quickly in Settings and Manage sources; detected and previously selected sources appear first.
13
+ - Auto-import selected sources by default, with a persistent off switch. Time ranges, filters, and appearance preferences survive restarts.
14
+
15
+ Import, search, and visualization run locally. Imports are read-only and never start an AI agent. Saved history remains available when a source is offline or deselected.
16
+
17
+ Source coverage varies: Kilo support covers legacy extension task JSON, and some conversation snapshots omit earlier compacted content, attachments, or metadata. See the [source coverage guide](https://github.com/arvindell/sessiongraph/blob/v1.0.0/docs/guide.md#source-coverage).
18
+
19
+ ## Install
20
+
21
+ Native downloads are available for macOS Apple Silicon/Intel, Windows x64, and Linux x64/ARM64. Desktop updates verify signed, version-bound packages.
22
+
23
+ With Node.js 24+:
24
+
25
+ ```sh
26
+ npx sessiongraph@1.0.0
27
+ # Or open the browser edition with its local backend:
28
+ npx sessiongraph@1.0.0 --browser
29
+ ```
30
+
31
+ [Privacy details](https://github.com/arvindell/sessiongraph/blob/v1.0.0/PRIVACY.md) · [MIT license](https://github.com/arvindell/sessiongraph/blob/v1.0.0/LICENSE)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sessiongraph",
3
- "version": "0.1.9",
3
+ "version": "1.0.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -25,11 +25,11 @@
25
25
  "README.md"
26
26
  ],
27
27
  "optionalDependencies": {
28
- "sessiongraph-app-darwin-arm64": "0.1.9",
29
- "sessiongraph-app-darwin-x64": "0.1.9",
30
- "sessiongraph-app-linux-arm64": "0.1.9",
31
- "sessiongraph-app-linux-x64": "0.1.9",
32
- "sessiongraph-app-win32-x64": "0.1.9"
28
+ "sessiongraph-app-darwin-arm64": "1.0.0",
29
+ "sessiongraph-app-darwin-x64": "1.0.0",
30
+ "sessiongraph-app-linux-arm64": "1.0.0",
31
+ "sessiongraph-app-linux-x64": "1.0.0",
32
+ "sessiongraph-app-win32-x64": "1.0.0"
33
33
  },
34
34
  "type": "module",
35
35
  "engines": {
@@ -70,5 +70,5 @@
70
70
  "vite": "^7.2.0"
71
71
  },
72
72
  "packageManager": "pnpm@11.10.0",
73
- "sessionGraphCommit": "4236f4f68c8c6535830f1d32da1ae592398fa4b0"
73
+ "sessionGraphCommit": "5cfead10aa54c81c46ed55bf6ab2725fa5c14cb7"
74
74
  }