Repository navigation
Open
Description
Summary
The IBM Z (s390x) container deployment under s390x/ still targets Nous v1. Nous v2 (#330, branch nous-v2) removed the v1 CLI flags and v1 campaign keys. So on v2, s390x/run_campaign.sh deploy fails at once: nous run rejects the v1 flags with an argparse error, exit 2. The example campaign also carries keys that v2 ignores. People use the IBM Z path, so it needs a focused fix before nous-v2 merges into main.
What breaks (with proof, on nous-v2-wip at 302340d)
-
run_campaign.shpasses removed flags. Lines 307-312:nous run ${CAMPAIGN_YAML} --agent sdk --max-iterations ${NOUS_MAX_ITERATIONS} \ --timeout ${NOUS_TIMEOUT} --max-cli-retries ${NOUS_MAX_CLI_RETRIES} ${auto_approve_flag}--agent,--timeout,--max-cli-retriesand--auto-approvewere removed in 302340d.nous run x.yaml --agent sdknow printsnous: error: unrecognized arguments: --agent sdkand exits 2.--max-iterationsis still valid.- Lines 66-69 and 282 build these flags from
NOUS_TIMEOUT,NOUS_MAX_CLI_RETRIESandNOUS_ALLOW_AUTO_APPROVE. Lines 300-302 passNOUS_ALLOW_AUTO_APPROVEandROUTINES_API_BASEinto the container; nothing in v2 reads either.
-
s390x/campaign.yamluses v1 keys.parse_campaign_configwarns about and ignores:prompts:(line 65,methodology_layer: prompts/methodology; that directory no longer exists);max_turns:(lines 77-79,design/execute_analyze; v2 has no turn caps);theory_references:(line 83).
It sets no
task_type,locked_parameters,objectiveorexperiment_commands. -
s390x/README.mddocuments v1:- lines 122-125: the
max_turnsdesign/execute budgets; - line 142:
NOUS_ALLOW_AUTO_APPROVE; - line 144:
NOUS_TIMEOUTandNOUS_MAX_CLI_RETRIES; - lines 188-196: the old output layout (findings.json and principles.json at the top level, ledger "per phase", no
runs/iter-N/,runs.jsonl,baseline.json,answer.json,nous_evidence/).
- lines 122-125: the
-
s390x/check_claude_agent.py:46defaults to the imagenous:0.4.0. -
s390x/Dockerfile:- check it installs v2 cleanly. It copies
orchestrator/andprompts/, and installs with--no-deps, so the pinnedclaude-agent-sdk==0.2.172frompyproject.tomlmust come fromenvironment.yml; - check the package data (
orchestrator/v2/schemas/*.json,prompts/v2/**/*.md,orchestrator/defaults.yaml) is present in the image.
- check it installs v2 cleanly. It copies
Fix (focused PR into nous-v2)
run_campaign.sh:- call
nous run ${CAMPAIGN_YAML} --max-iterations ${NOUS_MAX_ITERATIONS}only; - remove
NOUS_TIMEOUT,NOUS_MAX_CLI_RETRIES,NOUS_ALLOW_AUTO_APPROVEandROUTINES_API_BASEhandling; - keep
NOUS_CAMPAIGN_PARENTand the mounts.
- call
campaign.yaml:- rewrite in v2 form:
research_question,target_system.repo_path,max_iterations,task_type,experiment_commands, optionallocked_parametersandobjective; - move the theory notes into the
research_questionor thetarget_system.description; - it must parse with no warnings.
- rewrite in v2 form:
README.md:- v2 env vars and run parameters;
- the v2 artifact layout, linking to
docs/data-model.mdanddocs/example-campaign/; - how to resume (
nous resume <work_dir>).
environment.yml/Dockerfile:- pin
claude-agent-sdk==0.2.172, the same version aspyproject.toml; - confirm the package data is installed;
- update
check_claude_agent.py's default image tag.
- pin
Acceptance
bash -n s390x/run_campaign.shpasses, and grep finds no removed flag or removed env var ins390x/.- A test or script check:
s390x/campaign.yamlparses withorchestrator.v2.config.parse_campaign_configand logs no warnings. This can be a pytest intests/that only parses the file, with no live calls. - On an IBM Z host:
./s390x/run_campaign.sh verifypasses, then onedeploycampaign reaches REPORT, withruns.jsonlrows andanswer.jsonpresent. This is a manual operator check, recorded in the PR. - Nothing outside
s390x/changes, except the optional parse test.
Context
- Nous v2 spec and decisions: Nous v2: one agent session, enforced validation, a light method, unattended resume #330. The v1 flags were removed in 302340d on
nous-v2-wip. - Not in scope:
k8s/deployment.yaml, which is the GitHub Actions runner and unrelated.
Metadata
Metadata
Assignees
Labels
No labels
Activity
Nous v2: one session, enforced validation, light method (#330) (#333)