Skip to content

fix(strix): use exclusively owned trusted workspaces - #2658

Open
seonghobae wants to merge 1 commit into
mainfrom
fix/strix-private-workspace-20261015
Open

seonghobae wants to merge 1 commit into
mainfrom
fix/strix-private-workspace-20261015

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Runtime failure

Strix jobs 116383483250 (#2642) and 116388379628 (#2603) failed before scanning with "remote origin already exists". Both re-initialized the fixed runner temporary trusted-workspace directory, retaining an earlier Git remote.

Repair

Allocate one exclusive 0700 trusted checkout per job. Both event materialization routes and the substantive scanner consume the allocator's exact path. Always-cleanup validates the owned path, device/inode and UID and removes only that original directory; existing fixed directories, other workspaces and ambiguous replacements are not deleted. Allocation handoff failure removes only the newly created root.

This does not reset existing remotes, sweep shared temp, prune images or weaken any security/review gate. Trusted-base execution and PR-head-as-data scanning are preserved.

Verification

  • Regression failed before the allocator existed; final new tests: 6 passed, independently rerun and reviewed.
  • Actual local Git replay performs two fresh checkouts at the requested SHA while preserving an old fixed-path origin.
  • Symlink ancestry, identity drift, handoff failure, exclusive permissions and repeated cleanup controls pass.
  • Supplier plus existing gh-bootstrap contracts: 35 passed.
  • Complete local functional suite: 6533 passed, 10 skipped, 92 subtests passed, exit 0 (Python 3.12, GITHUB_ACTIONS=true, complete Git history and writable temporary HOME).
  • actionlint workflow/expression checks and diff-check pass. ShellCheck is unavailable; complete shell-scanner acceptance is not claimed.
  • Both published Git blob SHAs match the locally tested files.

Boundaries

Ready for normal exact-head review and CI, not merge or runtime acceptance. No predecessor approval transfers. Fresh remote Strix execution and independent qualifying approval remain required.

Owned-path cleanup is hygiene, not hostile same-UID isolation: another process with equivalent guest privileges can race or mutate state. Disposable guest isolation, host/network denial, credential boundaries and external teardown remain separate requirements. No production runner registration, ACL, credential or network change is included.

Existing #2573 lifecycle diagnostics and #2649 gh-bootstrap backport remain untouched; this narrowly repairs workspace reuse on current main.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

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

Next included review available in 32 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 30d94c14-831c-4587-8dd4-dbf395bb97b8
📥 Commits

Reviewing files that changed from the base of the PR and between 6a03ae9 and d37defe.

📒 Files selected for processing: 2
  • .github/workflows/strix.yml
  • tests/test_strix_private_workspace.py
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode reviewed the current-head product diff. Coverage is a separate gate.

Changed files

  • .github/workflows/strix.yml — GitHub Actions review job
  • tests/test_strix_private_workspace.py — regression suite

Changed behavior

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: strix.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: strix.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Test: test_strix_private_workspace.py"]
  S2 --> I2["regression suite"]
  I2 --> R2["Review risk: Test: test_strix_private_workspace.py"]
  R2 --> V2["targeted test run"]
Loading

Findings

No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.

  • Head SHA: d37defe946640ca80aaef325ed58f9c97047fc95
  • Workflow run: 38725712270
  • Workflow attempt: 1
  • Coverage gate: failure

Review outcome

Coverage is a gate, not the review. This body reviews the changed product files.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: strix.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: strix.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Test: test_strix_private_workspace.py"]
  S2 --> I2["regression suite"]
  I2 --> R2["Review risk: Test: test_strix_private_workspace.py"]
  R2 --> V2["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment.

This branch has not been deployed

No deployments
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