CI / checks (push) Skipped
CI / checks (pull_request) Failing after 55s
execution.SSHHost.execute is now the only way the agent runs anything (L13). Commands travel as a script on SSH's stdin, so the secrets handed to a call are never on a command line, and every value handed out is redacted from the output. Timeouts kill the remote process group, and an unreachable host is reported as such, not as a failed command. Workspace and GitRepo run on the build VM. The clone uses the repository's SSH URL, so no credential is stored in it (#89); fetches and pushes get the push key over stdin, in a short-lived ssh-agent, and PRs are still opened from the agent's host with its API token. The bench runs on the build host too. Tests reach "the build VM" through a throwaway local sshd (nisse_dev .testing); CI installs openssh-server. The live push test now pushes with the sandbox's deploy key (NISSE_PUSH_KEY). Fixes #89. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
45 lines
1.6 KiB
YAML
45 lines
1.6 KiB
YAML
# Agent config for the live integration tests, aimed at test resources: the
|
|
# testing identities, the dedicated test room, and the sandbox repo. Never
|
|
# point it at production.
|
|
#
|
|
# Secrets are ${…} references. CI passes them as environment variables;
|
|
# locally they come from .env at the repository root. A missing one fails
|
|
# the live tests that need it, rather than skipping them, so a broken
|
|
# credential cannot hide as a skip.
|
|
|
|
# Unused by the live tests, which work in pytest's temporary directories on a
|
|
# throwaway local sshd (the `ssh_host` fixture); present because every agent
|
|
# config has them.
|
|
state_db: /tmp/nisse-test/state.db
|
|
workspace: /tmp/nisse-test/work
|
|
project: nisse-dev-testing
|
|
build_host:
|
|
address: 127.0.0.1
|
|
key: /tmp/nisse-test/unused-key
|
|
|
|
llm:
|
|
base_url: https://litellm.dongar.net
|
|
token: ${NISSE_LLM_TOKEN}
|
|
|
|
# The live tests exercise the gated loop and the routes over a real proxy,
|
|
# not local-model competence (measured separately by test_model_capability),
|
|
# so every role uses a model that holds the tool-call contract.
|
|
roles:
|
|
executor: claude-haiku-4-5
|
|
planner: claude-haiku-4-5
|
|
helper: claude-haiku-4-5
|
|
expert: claude-haiku-4-5
|
|
|
|
matrix:
|
|
homeserver: https://matrix.dongar.net
|
|
user_id: "@nisse-dev-testing:dongar.net"
|
|
token: ${NISSE_MATRIX_TOKEN}
|
|
room_id: "!UxpXhTlQsFIeNZwkgv:dongar.net" # the test room, never production
|
|
operators: ["@dongar:dongar.net"]
|
|
|
|
gitea:
|
|
url: https://gitea.dongar.net
|
|
token: ${NISSE_GITEA_TOKEN}
|
|
repo: dongar/nisse-dev-testing-sandbox # the sandbox, never a real project
|
|
operators: [dongar]
|