CI / checks (push) Skipped
CI / checks (pull_request) Failing after 5m7s
- Config: `projects: {name: entry}` with repo, base_branch, workspace,
build_host, push credential, labels (defaults added to every issue),
secrets by ${VAR} reference with visibility (commands | harness), and
egress (recorded, not enforced). Every problem in every entry is
reported at once; an inline secret, a bad visibility, a repeated repo or
a non-slug name is an error.
- The old loop runs exactly one project (only_project) and refuses more.
- The new loop is per project: each its own clone, workspace (with its
commands-visible secrets, redacted on return), push credential and
milestones; intake polls every project's repository; items are scoped
to their project for every run, publish and PR watch. Issues are named
project#14 when there is more than one project, and a bare #14 that
matches two is asked about. Switching projects parks the one worked on
last (all others after a boot).
- A restatement that ends in a question is sent back to the driver, not
posted: the e2e driver kept asking "Is this the right interpretation?",
which a plain yes can't answer.
Tests: config entries and errors, two-project assembly, two-project loop
tests (intake, own workspaces and repos, #14 in both, do-next, label
defaults, parking across projects), the property walk over two projects
with a new own_repository_only property (an item using the first
project's repo fails 15 of 16 seeds), and the restatement check.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
54 lines
2.1 KiB
YAML
54 lines
2.1 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;
|
|
# present because every agent config has it.
|
|
state_db: /tmp/nisse-test/state.db
|
|
|
|
projects:
|
|
nisse-dev-testing:
|
|
repo: dongar/nisse-dev-testing-sandbox # the sandbox, never a real project
|
|
# The live tests replace these with a throwaway local sshd (the `ssh_host`
|
|
# fixture) or the bring-up build VM, in temporary directories.
|
|
workspace: /tmp/nisse-test/work
|
|
build_host:
|
|
address: 127.0.0.1
|
|
key: /tmp/nisse-test/unused-key
|
|
# What pushes go by (D4): the sandbox's deploy key, whose private half CI
|
|
# writes to this path from the NISSE_PUSH_KEY secret (locally: copy it
|
|
# there). An HTTPS push token works too: push_user plus push_token.
|
|
push_key: /tmp/nisse-test/push_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}
|
|
# nisse-testing-operator plays the operator in the end-to-end tests
|
|
# (NISSE_OPERATOR_TOKEN); an operator here and nowhere else.
|
|
operators: [dongar, nisse-testing-operator]
|