Skip to content

Bug: entire v0.4.5 corrupts local git config user.name by setting it to the literal string "user.email" #456

@jojoprison

Description

@jojoprison

Description

After entire creates checkpoint commits or merges session logs, .git/config gets user.name = user.email (the literal string "user.email") instead of the actual username. This causes all subsequent commits in the repository to show an incorrect author.

Environment

  • entire version: 0.4.5 (a92c0d0)
  • OS/Arch: darwin/arm64
  • Go version: go1.25.6
  • Install method: Homebrew (entireio/homebrew-tap)

Evidence

  • After entire performs "Merge remote session logs" or creates checkpoint commits, .git/config contains:
    [user]
        name = user.email
  • The global git config has user.name = jojoprison and user.email = egyabig2@gmail.com, but the local override created by entire sets user.name to the literal string "user.email" — clearly a variable name reference bug in the code.
  • Running strings $(which entire) reveals the string temporaryuser.name in the binary, which suggests a string concatenation or template bug where a variable like temporary + user.name was intended but user.email was used instead.
  • 72 commits were affected — all showing author as user.email <egyabig2@gmail.com> instead of jojoprison <egyabig2@gmail.com>, starting from when entire performed its first "Merge remote session logs" operation.

Steps to Reproduce

  1. Set global git config: git config --global user.name "jojoprison" and git config --global user.email "egyabig2@gmail.com"
  2. Use entire.dev with Claude Code sessions in a repository
  3. Let entire create checkpoint commits or merge session logs
  4. Check local git config: git config --local user.name
  5. Actual result: user.email (literal string)
  6. Expected result: Either no local override, or the actual username (jojoprison)

Impact

  • All commits made after entire's operation show wrong author name
  • This silently corrupts the git history — users may not notice for a long time
  • In our case, 72 commits had to be identified as affected

Workaround

Remove the corrupted local config entry:

git config --local --unset user.name

Root Cause Hypothesis

Looking at the binary strings, it appears there's a bug where entire tries to set a temporary user.name in the local git config but accidentally writes the literal string "user.email" instead of reading the value from git config user.name or git config user.email. This could be a typo in the Go source code, e.g.:

// Likely bug: something like
git config --local user.name "user.email"  // writes literal "user.email"
// Instead of:
git config --local user.name "$actual_username"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions