fix(groundskeeper): send groupPath on iterationCreate, harden fake for both mutations

The first real apply against the-foundry hit graphql: HTTP 200 carrying errors: Exactly one of group_path or project_path arguments is required on iterationCreate: CreateIterationInput accepts either groupPath or projectPath, both individually nullable, and validates "exactly one of" only when the mutation resolves, so the missing field passed offline and failed live. Auditing the engine's only other mutation, updateEpic, against live schema introspection found it already correct (groupPath and iid, both ID!, are already sent); its hardening below is precautionary, not a second live bug.

ITERATION_CREATE_MUTATION and its call site now send groupPath. tests/groundskeeper/harness.py gains --graphql-strip-field to remove a named variable before the fake sees it, plus validation on both mutations reproducing the real error text -- the "exactly one of" message for iterationCreate, the ID! coercion message for updateEpic -- so a regression is caught even if a future change stops sending a field the engine currently sends correctly. Reverting the engine fix and rerunning turns 7 assertions red, including the exact live error string; restored, the suite is 256/0 and all four manifests (both fixtures, the-foundry, evidence-factory) still validate.

Merge request reports

Loading
Loading