session-steward 0.10.2 → 0.11.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/CHANGELOG.md +15 -0
- package/README.md +17 -1
- package/bin/session-steward-cli.mjs +1 -0
- package/bin/session-steward-scheduler.mjs +5 -1
- package/dist/assets/index-BAo7Iw_z.js +9 -0
- package/dist/assets/index-DQxHKbAB.css +2 -0
- package/dist/index.html +2 -2
- package/lib/cleanup-schedules.mjs +38 -18
- package/lib/cli.mjs +81 -2
- package/lib/mcp.mjs +82 -13
- package/lib/providers/claude-code/process-state.mjs +73 -0
- package/lib/providers/claude-code/store.mjs +196 -33
- package/lib/providers/codex/database-families.mjs +2 -2
- package/lib/providers/codex/desktop-catalog.mjs +179 -0
- package/lib/providers/codex/store.mjs +31 -4
- package/lib/server.mjs +90 -5
- package/lib/session-cleanup.mjs +230 -53
- package/lib/session-protections.mjs +467 -0
- package/lib/storage/jsonl.mjs +2 -1
- package/package.json +2 -1
- package/dist/assets/index-BDiEQG6G.js +0 -9
- package/dist/assets/index-CXq8Tw8T.css +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.11.0] - 2026-09-14
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Sessions and workspaces can be marked Keep so manual and scheduled Session Steward cleanup skip them without indexing transcripts or changing provider data.
|
|
8
|
+
|
|
9
|
+
## [0.10.3] - 2026-09-10
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Deleted Codex sessions no longer linger in the ChatGPT sidebar.
|
|
14
|
+
- Claude cleanup now handles stale session markers, protects shared history, and removes leftover session files.
|
|
15
|
+
|
|
3
16
|
## [0.10.2] - 2026-09-07
|
|
4
17
|
|
|
5
18
|
### Fixed
|
|
@@ -155,6 +168,8 @@
|
|
|
155
168
|
- Support for custom Codex home folders and a saved folder preference.
|
|
156
169
|
- Streaming and bounded-memory discovery for large session collections and transcripts.
|
|
157
170
|
|
|
171
|
+
[0.11.0]: https://github.com/mallikcheripally/session-steward/compare/v0.10.3...v0.11.0
|
|
172
|
+
[0.10.3]: https://github.com/mallikcheripally/session-steward/compare/v0.10.2...v0.10.3
|
|
158
173
|
[0.10.2]: https://github.com/mallikcheripally/session-steward/compare/v0.10.1...v0.10.2
|
|
159
174
|
[0.10.1]: https://github.com/mallikcheripally/session-steward/compare/v0.10.0...v0.10.1
|
|
160
175
|
[0.10.0]: https://github.com/mallikcheripally/session-steward/compare/v0.9.0...v0.10.0
|
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ Session Steward makes session cleanup safer by finding those records, showing wh
|
|
|
19
19
|
- See session counts and the storage used by recognized session files.
|
|
20
20
|
- Find sessions inactive for 30, 60, or 90 days.
|
|
21
21
|
- Filter active or archived sessions by workspace, name, or session ID.
|
|
22
|
+
- Mark important sessions or workspaces Keep so cleanup skips them.
|
|
22
23
|
- Inspect session details and affected records before deletion.
|
|
23
24
|
- Read a session timeline of what you asked, what changed, and which commands ran.
|
|
24
25
|
- See how many tokens a session used, split into fresh input, cached input, cache writes, and output.
|
|
@@ -35,7 +36,11 @@ Session Steward makes session cleanup safer by finding those records, showing wh
|
|
|
35
36
|
- Thorough cleanup is unavailable when the detected storage format is not supported.
|
|
36
37
|
- Cleanup stays local and does not upload session contents.
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
### Keep important sessions
|
|
40
|
+
|
|
41
|
+
Mark a session or workspace Keep and Session Steward skips it during manual and scheduled cleanup. A workspace Keep also covers descendant folders and future sessions there.
|
|
42
|
+
|
|
43
|
+
It protects against Session Steward cleanup only. Codex or Claude Code can still remove the data.
|
|
39
44
|
|
|
40
45
|
### Session Steward does not remove
|
|
41
46
|
|
|
@@ -46,6 +51,8 @@ At startup, Session Steward may contact the public npm registry to check for a n
|
|
|
46
51
|
- Conversations stored in your ChatGPT or Claude account
|
|
47
52
|
- Claude Code worktrees, branches, repositories, remote sessions, SSH sessions, or Cowork data
|
|
48
53
|
|
|
54
|
+
At startup, Session Steward may contact the public npm registry to check for a newer version.
|
|
55
|
+
|
|
49
56
|
## Install and get started
|
|
50
57
|
|
|
51
58
|
Session Steward supports macOS, Linux, and Windows and requires Node.js 24.15 or newer.
|
|
@@ -192,6 +199,10 @@ workspace /path/to/project
|
|
|
192
199
|
internals
|
|
193
200
|
supporting
|
|
194
201
|
tokens
|
|
202
|
+
keep 3
|
|
203
|
+
unkeep 3
|
|
204
|
+
keep-workspace /path/to/project
|
|
205
|
+
unkeep-workspace /path/to/project
|
|
195
206
|
cleanup standard
|
|
196
207
|
cleanup thorough
|
|
197
208
|
overview
|
|
@@ -200,6 +211,9 @@ backups
|
|
|
200
211
|
|
|
201
212
|
Run `inactive`, `archive`, or `workspace` without a value to clear that filter.
|
|
202
213
|
|
|
214
|
+
`keep` and `unkeep` accept session selectors. `keep-workspace` and
|
|
215
|
+
`unkeep-workspace` accept a full path.
|
|
216
|
+
|
|
203
217
|
`backups` lists recovery backups retained after an interrupted or unsuccessful cleanup. Use `restore <number>` to restore one, or `delete-backup <number>` to remove it permanently. Both actions require an explicit confirmation.
|
|
204
218
|
|
|
205
219
|
</details>
|
|
@@ -229,6 +243,8 @@ You can then ask things like:
|
|
|
229
243
|
- “Find sessions I have not used in 60 days.”
|
|
230
244
|
- “Show sessions from this workspace, largest first.”
|
|
231
245
|
- “Delete those sessions.”
|
|
246
|
+
- “Keep this session from Session Steward cleanup.”
|
|
247
|
+
- “Keep every session in this workspace.”
|
|
232
248
|
- “Every 12 days, delete sessions I have not used in 45 days.”
|
|
233
249
|
- “Restore my latest backup.”
|
|
234
250
|
|
|
@@ -37,13 +37,17 @@ Options:
|
|
|
37
37
|
"../lib/cleanup-schedules.mjs"
|
|
38
38
|
);
|
|
39
39
|
const { createProviderSettings } = await import("../lib/settings.mjs");
|
|
40
|
+
const { createSessionProtectionStore } = await import("../lib/session-protections.mjs");
|
|
40
41
|
const settings = await createProviderSettings({
|
|
41
42
|
configDirectory: values["config-directory"],
|
|
42
43
|
});
|
|
43
44
|
const scheduleStore = createCleanupScheduleStore({
|
|
44
45
|
configDirectory: settings.getConfigDirectory(),
|
|
45
46
|
});
|
|
46
|
-
const
|
|
47
|
+
const protectionStore = createSessionProtectionStore({
|
|
48
|
+
configDirectory: settings.getConfigDirectory(),
|
|
49
|
+
});
|
|
50
|
+
const results = await runDueCleanupSchedules({ protectionStore, scheduleStore, settings });
|
|
47
51
|
if (results.some((result) => ["failed", "recovery-failed"].includes(result.status))) {
|
|
48
52
|
process.exitCode = 1;
|
|
49
53
|
}
|