Skip to content

Support an explicit host workspace for the none runtime #119

Description

@roark47

Background

In the app-upgrade-agents migration, the evaluation needed the agent to start inside an existing application repository. With environment.type: none, the agent still started in a generated /tmp/skill-up-* directory, so case prompts had to repeatedly instruct the agent to cd into an injected application path.

That workaround is fragile for long-running end-to-end evaluations because it depends on the model following directory instructions in every relevant command.

Why skill-up should change

The runtime owns the case working directory. For local/host execution, users need a way to say: "run this case in this existing workspace". Silently ignoring a workspace-related runtime kwarg is also confusing; unsupported kwargs should be rejected or documented clearly.

What to change

  • Add a supported configuration for the none runtime to use an explicit host workspace, for example environment.kwargs.workspace or a clearer host_workspace field.
  • Make default runtime Exec calls use that directory as cwd.
  • Define how fixture upload, skill installation, artifacts, and cleanup interact with an explicit host workspace.
  • If this is intentionally unsupported, fail validation when users pass the kwarg instead of ignoring it.

How to verify

  • Run skill-up run --runtime none --runtime-kwarg workspace=/tmp/app ... against a case whose prompt executes pwd or writes a marker file.
  • Assert the command runs in /tmp/app and generated files land there.
  • Verify --no-delete and default cleanup do not accidentally delete a user-provided host workspace.
  • Add unit tests for NoneRuntime.Create, Workspace(), and Exec cwd behavior.

Architecture impact

This needs a clear separation between the runtime execution workspace and the report/artifact output workspace. It also needs explicit cleanup semantics so skill-up never removes a user-owned repository by accident.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions