The read_image poisoning fix had no end-to-end guard because scenarios could
only send text. Add an upload_images step that renders and uploads visually
distinct images, let chat steps attach them the same way the WeChat channel
does, and assert the generated page actually embeds every upload.
Co-authored-by: Cursor <cursoragent@cursor.com>
Formalize fast release as --mode fast so verified changes can skip canary promotion and full Gate reruns while keeping backups and health checks.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add chat file/image upload UX, attachment proxying, vision thumbnails, and per-turn image scoping so agents only use the current upload. Extend MindSpace asset context, billing token state, OA/scenario verify scripts, and related runtime config.
Co-authored-by: Cursor <cursoragent@cursor.com>
Codifies the 103 production release workflow used for the
0701bug003 deploy: doc-mandated pre-release tests, build + dry-run,
release-portal-runtime-prod.sh, full post-deploy verification
(health, /auth/login, all 4 goosed ports, log keyword scan, real
API-driven page-create smoke test), and both a preferred rollback
(redeploy previous good commit) and an emergency manual rollback path.
Passwords are taken from env vars (JOHN_PASSWORD/H5_ACCESS_PASSWORD),
matching the existing scripts/fruit-theme-john-e2e.mjs convention —
never hardcoded in the skill file.
Co-Authored-By: Claude <noreply@anthropic.com>