Portal v0.40.0 — Large runbooks finish, and every result stays readable
·
605 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Large runbooks can now finish without an arbitrary total-step ceiling. The real safety bounds remain: 16 stages, 256 resolved items, bounded targets, waits, arguments, and output.
When a terminal runbook result is too large for one MCP response, wait_for_run keeps the summary in the first response and returns an opaque continuation for ordered 64 KiB pages. Small executions still finish in one call.
Security and access
- Runner, pack, action, approval, and audit discovery now follows the member's current runner and pack scope across the console and MCP.
- Catalog rows require deployment on a runner the member can see, malformed cross-account associations fail closed, and open pages refresh after access or runner-group changes.
- Phoenix LiveView is patched past the navigation open-redirect advisory.
Runner
- Installer-managed runners can update themselves with
emisar update. The runner verifies the release checksum and GitHub build attestation before using the installer's stop, swap, restart, and rollback transaction. emisar pack update --jsonnow emits its partial report before returning a post-update validation error, preserving machine-readable output for automation.
Packs and console
- The catalog now carries 100 packs and 1,682 actions, adding JFrog Artifactory, Databricks, Sentry, Symbolicator, and NTPsec, with larger Cassandra and Cloudflare coverage.
- MFA enrollment completed in another tab returns to the app cleanly.
- Approval forms live-validate empty restricted pack selections.
- Runbook lists show a loading state on the disconnected first render instead of flashing a false empty state.
The MCP bridge remains at v0.7.0; this release does not mint an unchanged bridge version.