feat(harness): repo-readonly/v1 + gitea-ssh layer in workflow-script/v1; agent_repo on test-validate/frozen-fixture-emit (WF-COMP-34, bug 3bee78fa/a3ba44bc)

This commit is contained in:
Paul O'Reilly
2026-10-02 16:18:21 +13:00
parent 8d7b3af77d
commit 4b41236e26
5 changed files with 120 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
kind: context
name: repo-readonly
version: 1
description: "Read-only project-repo clone for harness-path kind: script nodes (spec/typed-workflows.md WF-COMP-34, bug 3bee78fa). Clones AGENT_REPO_URL (the upstream project repo URL emitted by the WF-COMP-34 compiler emission as payload.agent_repo.url and propagated to the container env by the dispatcher) into /workspace/project at its default branch. No fork management, no AR-39 select-base, no scratchpad directory, no .gitignore munging, no finalize.sh push. The script node reads repo files only; it never writes back through a fork. Distinct from agent-repo/v1 (the agent-node branch-per-task fork-management context) on every one of those axes."
requires: []
provides: []
# WF-COMP-34: this layer's init.sh is the read-only clone. It only runs
# when AGENT_REPO_URL is set; the unset case is a no-op (a script node
# whose template omits agent_repo keeps its pre-fix silent empty workspace
# runtime exactly, verified by
# tests/test_entrypoint.py::TestV2WorkspaceAssertions::test_v2_no_agent_repo_url_skips_workspace_check).
#
# AGENT_WORKING_DIR=/workspace/project is the env var
# entrypoint.py:_apply_working_dir reads (entrypoint/entrypoint.py:908-916),
# and the path entrypoint/runners/shell.py:67 sets as the subprocess cwd
# when context["workspace"] is unset and no clone action ran.
env:
AGENT_WORKING_DIR: /workspace/project
scripts:
init: "./init.sh"
secrets_required: []