Skip to content

fix: isolate skill eval workers#35

Open
alexe-sumup wants to merge 4 commits into
antongulin:mainfrom
alexe-sumup:fix/isolate-skill-eval-workers
Open

fix: isolate skill eval workers#35
alexe-sumup wants to merge 4 commits into
antongulin:mainfrom
alexe-sumup:fix/isolate-skill-eval-workers

Conversation

@alexe-sumup

Copy link
Copy Markdown

Summary

  • run each skill_eval query in its own temporary OpenCode project root
  • keep each synthetic skill isolated from parallel workers
  • move installed-skill conflict detection into the isolated eval root so project-installed skills no longer block evals

Why

Parallel trigger evals currently create multiple synthetic skills in the same project .opencode/skills directory. Concurrent opencode runs can select a sibling synthetic skill, which gets counted as a false negative because the evaluator only credits the exact per-run synthetic name.

Testing

  • npm exec --package bun -- node ./scripts/build.mjs
  • npm test
  • npm exec --package bun -- bun test --isolate test/*.test.ts

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f122ad4493

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread plugin/lib/run-eval.ts
opencode resolves its project root (and thus project-scoped skills) from
$PWD, not the spawn cwd. The trigger eval set cwd=evalRoot but leaked the
caller's PWD, so nested runs loaded the real project skill under test and
attributed its triggers to that skill instead of the synthetic one,
producing false 0-trigger results. Pin PWD to evalRoot so only the
synthetic skill (plus global skills) are in scope.
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