# Deployment Record - 2026-03-30 - Artifact: `package/calendar-plugin-0.1.0.zip` - Manifest: `package/calendar-plugin-0.1.0.manifest.sha256` - Source revision: SVN r405 (`https://svn.chezstephens.org.uk/adrian/tools/calendar_wp_plugin`) - Deploy target host: `cs.chezstephens.org.uk` - Deploy target path: `/var/www/wordpress/wp-content/plugins/calendar-plugin` - Operator: Codex (with user-approved escalations) - Timestamp (UTC): 2026-03-30 ## Pre-deploy Gates (Local) - `compatibility-layer/e2e_wp_emulation.php`: PASS - `compatibility-layer/ui_e2e.sh`: PASS - `compatibility-layer/smoke.sh`: PASS - `fixture/security_smoke.sh`: PASS ## Packaging Validation - Archive root contains single plugin folder: PASS (`calendar-plugin/`) - Main entry present: PASS (`calendar-plugin/calendar-plugin.php`) - Runtime-only source (`code/`) packaged: PASS ## Deployment Procedure 1. Uploaded artifact+manifest to remote staging `/tmp/calendar-plugin-0.1.0`. 2. Extracted and synced to plugin path with `rsync -a --delete`. 3. Activated plugin via WP-CLI (`wp plugin activate calendar-plugin --allow-root`). ## Exact-Match Validation - Compared artifact and deployed SHA256 manifests (relative paths normalized). - `diff -u` returned no differences. - Result: PASS (`REDEPLOY_HASH_MATCH_OK`). ## Post-deploy Checks - `/calendar.ics` -> `200` - `/caldav/` (unauthenticated) -> `401` - `/wp-json/calendar/v1/health` -> `200` - `/wp-json/calendar/v1/public/ics` -> `200` - Authenticated CalDAV checks: - `/caldav/` -> `405` - `PROPFIND /caldav/calendars/public/` -> `207` - `GET /caldav/calendars/public/deploy-smoke.ics` -> `200` ## Backup/Rollback - Previous deployment backup path (if existed): - `/var/www/wordpress/wp-content/plugins/calendar-plugin.backup.prev` ## Redeploy Update (Same Day) - Redeployed latest local UI/auth shortcode fixes from current workspace artifact. - Remote sync to `/var/www/wordpress/wp-content/plugins/calendar-plugin` completed. - Exact-match manifest validation re-run: PASS (`DEPLOY_AND_HASH_MATCH_OK`). - Stale duplicate plugin directory removed: - `/var/www/wordpress/wp-content/plugins/calendar-plugin.backup.prev` - Remote validation after cleanup: - only `calendar-plugin` present under plugins directory - `wp plugin list` shows `calendar-plugin,active,0.1.0` - `GET /calendar.ics` -> `200` - `GET /wp-json/calendar/v1/health` -> `200`