Skip to content

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 27 Sep 21:31
· 16 commits to main since this release

Session Cartographer 0.8.1

This release is about commits the log never recorded. On 2026-09-26, 43 of
the 125 commits that landed in git had no git_commit event. The commit hook
now records every commit a Bash call makes, and a new day digest checks the log
against git, so a gap like that shows up instead of reading as a quiet day.

Every commit a call makes is logged

  • A Bash call that committed more than once logged only its last commit: a fix
    committed with its audit doc lost the fix, and a cd into a second
    repository to commit there lost the commits made before it. The hook now reads
    the reflog of every repository the command commits in and writes one row per
    commit, oldest first. Each row has a new commit_action field: commit,
    amend, merge, cherry-pick, revert or am.
  • Merges and cherry-picks were never detected; they are now logged, as are
    reverts and git am.
  • In Claude Code, a commit in a call that exited non-zero (git commit … && npm test with a failing test) is logged.
  • git commit inside quotes or a comment, such as a grep pattern or a list a
    loop iterates over, no longer produces a commit row for a commit that never
    happened.
  • A commit made as cd <repo> && git commit is filed under that repository,
    not the directory the shell ended in.
  • A repository's first commit lists its files and diff shape.

Replayed on the 38 calls behind the 46 unlogged commits of 2026-09-26 and
2026-09-27, the new hook logs all 46 and no commit the call did not make.

Codex keeps logging one commit per call: its hook payloads carry no call
duration, which the new path needs to tell this call's commits from another
session's. Codex now loads hooks/codex-hooks.json, which leaves out the one
Claude-only event this release registers.

Day digest

One local calendar day across every session, by project, with each commit
checked against git:

node plugins/session-cartographer/scripts/session-digest.js --day yesterday
node plugins/session-cartographer/scripts/session-digest.js --day 2026-09-26 --md    # paste-ready receipt
node plugins/session-cartographer/scripts/session-digest.js --day today --json      # carto.day-digest/1
  • Each project shows its commits, sessions, active time, diagnoses, most-edited
    files and the repository's current state. Active time is wall clock: the
    five-minute periods with any logged event, with every session merged, so three
    sessions in one hour count as one hour.
  • A logged commit is marked landed, moved (landed under a new sha after an
    amend, rebase or cherry-pick), rewritten away, not in git, or unchecked. Your
    commits that no session logged are listed as git-only. The receipt lists only
    commits git has.
  • cartographer-pulse.sh --day-digest yesterday adds the receipt to a scheduled
    pulse, scoped by the pulse's own allowlist. Work outside the allowlist is
    reported as a count, never by name.
  • The Memory Desk has a Day view with a date picker, Today and Yesterday.
    Each commit links to the session that made it, and Copy receipt copies the
    Markdown. The view runs the same script as the command line, so the two show
    the same numbers.

Explorer

  • Closing a file review returns focus to that file's row, including rows past
    the eighth, and a second Escape closes the task as it should.
  • The session digest prints paths under your home directory as ~/…, and
    counts a file edited in an agent worktree and in the main checkout as one
    file.

After updating

  • Restart long-running Claude Code sessions. A session keeps the hooks it
    started with. On 2026-09-26, 23 commits went unlogged in sessions still
    running the previous version hours after the update was installed. Codex
    reads its hooks on every call, but from its own copy of the plugin, which
    can update later than Claude Code's.

  • Restart Turbo to get the Day view. A Turbo started before the update keeps
    serving the old API, and the view says so:

    node plugins/session-cartographer/scripts/cartographer-turbo.js stop

    Then run /carto, or open the desk and press Start Turbo.