Skip to content

fix(evi): mark sandbox workspaces safe for git across uid boundaries - #529

Merged
HugoRCD merged 2 commits into
mainfrom
fix/evi-sandbox-safe-directory
Aug 9, 2026
Merged

fix(evi): mark sandbox workspaces safe for git across uid boundaries#529
HugoRCD merged 2 commits into
mainfrom
fix/evi-sandbox-safe-directory

Conversation

@HugoRCD

@HugoRCD HugoRCD commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Production GitHub turns are currently failing their checkout on every turn, and eve swallows the failure:

[eve:github.defaults] GitHub checkout failed — swallowed
fatal: detected dubious ownership in repository at '/workspace'

The sandbox template builds under a different uid than the session user, so git's ownership protection rejects /workspace at configure git remote, the checkout dies, and the turn grinds on without the repository it believes it has. This is what turned the two @evlogai mentions on #427 into hours-long silent runs with no comment posted.

Bootstrap now registers /workspace and /workspace/repo as safe.directory in the same global git config that already sets the bot identity, and the revalidation key bumps to v3 so existing templates rebuild.

Typecheck green. No changeset: change confined to apps/*.

Summary by CodeRabbit

  • Bug Fixes
    • Improved session Git operations when user permissions differ.
    • Updated sandbox validation to ensure refreshed environments use the latest configuration.

@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
evi Ready Ready Preview Aug 9, 2026 2:04pm
4 Skipped Deployments
Project Deployment Actions Updated (UTC)
evlog-docs Skipped Skipped Aug 9, 2026 2:04pm
evlog-render-lab Skipped Skipped Aug 9, 2026 2:04pm
evlog-telemetry Skipped Skipped Aug 9, 2026 2:04pm
just-use-evlog Skipped Skipped Aug 9, 2026 2:04pm

Request Review

@vercel
vercel Bot temporarily deployed to Preview – evlog-docs August 9, 2026 13:45 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-telemetry August 9, 2026 13:45 Inactive
@vercel
vercel Bot temporarily deployed to Preview – just-use-evlog August 9, 2026 13:45 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-render-lab August 9, 2026 13:45 Inactive
@changeset-bot

changeset-bot Bot commented Aug 9, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 62ed252

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions github-actions Bot added the bug Something isn't working label Aug 9, 2026
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@HugoRCD, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 16 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 780df1d8-1fbb-49fa-961f-36b88eaadafc

📥 Commits

Reviewing files that changed from the base of the PR and between aa5ee49 and 62ed252.

📒 Files selected for processing (1)
  • apps/evi/agent/sandbox.ts
📝 Walkthrough

Walkthrough

The sandbox revalidation key changes from v2 to v3. Bootstrap configures /workspace and /workspace/repo as Git safe directories after setting the bot identity.

Changes

Sandbox Git operations

Layer / File(s) Summary
Workspace validation and Git safe directories
apps/evi/agent/sandbox.ts
The sandbox uses evlog-workspace-v3 for revalidation. Bootstrap adds /workspace and /workspace/repo to Git’s global safe-directory configuration.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the Git safe-directory fix for sandbox workspaces across UID boundaries.
Description check ✅ Passed The description explains the failure, root cause, fix, rebuild trigger, validation result, and changeset rationale; only the optional issue and documentation checklist items are absent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/evi-sandbox-safe-directory

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Thank you for following the naming conventions! 🙏

@pkg-pr-new

pkg-pr-new Bot commented Aug 9, 2026

Copy link
Copy Markdown
npm i https://pkg.pr.new/@evlog/cli@529
npm i https://pkg.pr.new/evlog@529
npm i https://pkg.pr.new/@evlog/nuxthub@529
npm i https://pkg.pr.new/@evlog/telemetry@529

commit: 62ed252

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/evi/agent/sandbox.ts`:
- Around line 18-22: Update the safe.directory setup in bootstrap() so the
/workspace and /workspace/repo entries are written to a Git configuration shared
with onSession() and the git tools, or applied under the session identity; do
not rely solely on the template-builder user's global config. Preserve the
existing user.name and user.email configuration.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5f7b4fa1-eb61-473f-b8cc-4597f743777c

📥 Commits

Reviewing files that changed from the base of the PR and between 7efe732 and aa5ee49.

📒 Files selected for processing (1)
  • apps/evi/agent/sandbox.ts

Comment thread apps/evi/agent/sandbox.ts Outdated
@HugoRCD
HugoRCD force-pushed the fix/evi-sandbox-safe-directory branch from aa5ee49 to 8951908 Compare August 9, 2026 13:59
@vercel
vercel Bot temporarily deployed to Preview – evlog-render-lab August 9, 2026 13:59 Inactive
@vercel
vercel Bot temporarily deployed to Preview – just-use-evlog August 9, 2026 13:59 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-telemetry August 9, 2026 13:59 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-docs August 9, 2026 13:59 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-telemetry August 9, 2026 14:02 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-docs August 9, 2026 14:02 Inactive
@vercel
vercel Bot temporarily deployed to Preview – just-use-evlog August 9, 2026 14:02 Inactive
@vercel
vercel Bot temporarily deployed to Preview – evlog-render-lab August 9, 2026 14:02 Inactive
@HugoRCD HugoRCD self-assigned this Aug 9, 2026
@HugoRCD
HugoRCD merged commit faad17f into main Aug 9, 2026
17 of 18 checks passed
@HugoRCD
HugoRCD deleted the fix/evi-sandbox-safe-directory branch August 9, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant