Replace all references to the previous Portal host 180.159.29.143 with
114.85.107.50 across release scripts, safety gates, runbooks, and docs.
Also add scripts/push-wechat-news-morning-draft-now.mjs for direct draft
push without waiting on the worker poll interval.
Co-authored-by: Cursor <cursoragent@cursor.com>
Update scripts, docs, nginx configs, and release-gate safety checks after the Studio server public IP changed from 58.38.22.103.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>