v0.7.6
The biggest bundle since the runtime rework: 14 PRs across three themes. Two behaviour changes to know about (below). Full suite green (3,060 passed), 46 new deterministic-core tests plus dispatch guards.
Added
aiswmm calibratedrives the real SCE-UA engine (#339, #340; ADR-0005). Give it a model, an observed series, and a patch-map, and it runs a genuine spotpy SCE-UA experiment with live progress (progress.jsoncheckpoints,--progresslines), leaving a self-describing experiment dir:convergence.csv,calibration_summary.json(engine: sceua-spotpy,is_stub: false),best_params.json,09_audit/candidate artifacts,trials/. A same-units guard screams on >100x magnitude mismatches (the L/s vs m3/s classic). The historical synthetic walker survives behind explicit--engine synthetic. Verified end to end against the real swmm5 binary.- Self-describing sessions (#330, #331, #336; ADR-0003). Every session dir now carries
session.yaml(verbatim goal, status lifecycle) plus an auto-derivedagent_snapshot.json(resolved provider/model, prompt hash, tool-schema hash, per-SKILL.md hashes, permission profile) and an environment fingerprint (python, platform, version, git commit, container identity) that flows intomanifest.jsonandexperiment_provenance.json. Interactive turns included. aiswmm runs tidy(#333): archives stale unaudited agent runs toruns/archive/(audited runs never move, nothing is ever deleted,--dry-runpreviews). First real run archived 320 of 553 accumulated directories.- SWMMCanada pre-submit route announce (#337): with a current upstream, the status line reports "PREVIEW: Real municipal network - Ottawa, ON" before the multi-minute build starts; older upstreams are silently tolerated.
- Windows install smoke in CI (#335): the documented one-liner runs weekly on a hosted Windows runner and smokes the installed CLI; closed the oldest open issue (#3).
- Docker Hub mirror (#338): tagged images dual-publish to docker.io/zhonghao0901 with README sync alongside ghcr.
Changed (behaviour)
aiswmm calibratedefaults to the real engine: a bare invocation now requires--observed-csvand--patch-map. Scripts that relied on the synthetic walker add--engine synthetic(unchanged semantics, still stampedis_stub: true).- One canonical run-directory layout (#332; ADR-0004): new runs use the reserved stage numbers (
05_builder,06_runner,07_qa,08_plot,09_audit,10_upstream/{swmmanywhere,swmmcanada},11_review) on every path; the agent runner no longer writes engine outputs flat at the run root. Historical runs stay readable forever (alias-tolerant readers); nothing writes legacy names again, and a real-swmm5 CI guard rejects any new scheme. - The rule planner routes "run .inp" to
run_swmm_inpinstead of the doctor fallback (#334); SWMMCanada builds report live stage/percent on the status line (#325).
Fixed
- Bare
plot_runconverges (the rain-series default resolves itself) and agent-pathaudit_runno longer writes the user's Obsidian vault by default (#329): both found by the new handler-chain convergence test. - Skill-directory lookups are resource-aware for pip installs (four call sites moved to
resource_root(), grep-guarded), so wheel users reach the calibration engine and full agent snapshots (#339). - Audit artifacts no longer scatter into the MCP server's working directory on relative paths (#332); swmm-gis no longer hardcodes sibling-skill paths (closed #246);
_resolve_run_dirdeduplicated (closed #296).
Upstream: SWMMCanada
Option B landed on both sides: upstream /aoi/preview now reports mode/city/in_canada from the same dispatcher submit uses, and GET /api/v1/coverage exposes the live city registry (8 real-network cities incl. Regina's dual sanitary system) so client city lists can never drift again. The aiswmm client consumes preview best-effort today; coverage consumption follows the production redeploy.
Install / upgrade
pip install -U aiswmm==0.7.6Containerised (multi-arch, auto-published for this tag, now on both registries):
docker pull ghcr.io/zhonghao1995/agentic-swmm-workflow:v0.7.6
docker pull zhonghao0901/agentic-swmm-workflow:v0.7.6One-line installers resolve the latest release automatically. Full details in CHANGELOG.md.