Skip to content

Feat/claude cli sessions - #1

Merged
sitjac merged 6 commits into
masterfrom
feat/claude-cli-sessions
Oct 24, 2026
Merged

sitjac merged 6 commits into
masterfrom
feat/claude-cli-sessions

Conversation

@sitjac

@sitjac sitjac commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Summary

Adds Claude CLI session support alongside Codex: discover, browse, rename, and delete Claude sessions under ~/.claude/projects, with writeback to the session jsonl (ai-title events) and history.jsonl (display field) so /resume shows the same name.

What changed

  • feat(core): ingest, browse, rename, and delete Claude CLI sessions
  • feat(web): show codex/claude source badges on sessions
  • feat(cli): --source filter on the list command
  • chore(rename): rename codex-keeper → session-keeper with one-time legacy-path migration
  • chore(deps): upgrade @fastify/static → 10.1.7, tsx → 4.23.15, vitest → 5.0.5
  • docs: updated changelog, readme and docs

Validation

  • npm run build
  • npm run web:build
  • npm test (58 passing)

Notes for reviewers

  • Migration is the key risk area: the rename introduces migrateLegacyPaths() and LEGACY_* constants. Please review that the one-time copy of ~/.config/codex-keeper / ~/.local/state/codex-keeper is correct and non-destructive.
  • Claude transcript parsing is new and mirrors the Codex parser; worth a close look for edge cases around tool_use / tool_result blocks and hidden bootstrap context.
  • Claude title precedence: renames persist via rename_state so a later last-prompt event can't revert a manual rename — this mirrors the existing Codex behavior and is the subtlest part to get right.
  • Dependency upgrades are separate commits and semver-major only where required by advisories (vitest@5, @fastify/static@10); all tests still pass. braces remains flagged by npm audit with no upstream fix — out of scope here.

sitjac and others added 6 commits October 23, 2026 11:37
Add Claude CLI session support alongside Codex. A new claude/ module
discovers session jsonl files under ~/.claude/projects, ingests their
metadata, parses transcripts, and writes back renames and deletes via
ai-title events and history.jsonl. Sessions carry a source field so the
database, list queries, and scan report can distinguish the two origins.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Label each session row and the detail header with its origin so the two
session types are distinguishable in the unified list.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Add a --source flag to the list command and document Claude CLI session
management in the README and example config.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Rename the package scope (@codex-keeper -> @session-keeper), CLI binary,
SessionKeeper class, config/state paths, and env vars. Add one-time
migration from the legacy ~/.config/codex-keeper and ~/.local/state/codex-keeper
paths so existing user data carries over.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Address security advisories: @fastify/static to 10.1.7 (path traversal /
auth bypass), tsx to 4.23.15 (pulls esbuild 0.28), and vitest to 5.0.5
(tinypool / @vitest/mocker RCE and mock-injection advisories).

Co-Authored-By: Claude Code <noreply@anthropic.com>
@sitjac
sitjac merged commit daf05af into master Oct 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant