# Batoi Press 1.5.0

Batoi Press 1.5.0 resolves the testing-team backlog for content embeds, theme operations, account recovery, updates, publishing dates, and homepage selection.

## Features and fixes

- Preserves inline presentation CSS while removing executable CSS patterns, event handlers, scripts, and unsafe URLs.
- Preserves HTTPS iframe embeds with constrained attributes and safe loading and referrer defaults.
- Adds installed-theme duplication with an editable name and generated unique slug.
- Adds a Forgot Password route that explains administrator-assisted recovery and a local CLI reset command for installations without account email addresses.
- Validates update ZIP uploads and creates a missing update staging directory before moving the package.
- Adds an editable publish date and time for published posts.
- Allows editors to select any published page as the site homepage from Menus.
- Ignores macOS metadata entries in otherwise valid theme ZIP packages.

## Theme package compatibility

Batoi Press theme packages still require `theme.json` and the documented PHP layouts. Legacy Batoi theme archives containing `templates/*.json` are not converted or installed because their rendering contract is different. The uploader now ignores harmless macOS metadata but continues rejecting incompatible theme formats explicitly.

## Password recovery

Installations with another owner or administrator can reset an account from Users. A sole owner can run:

```shell
php radpress/bin/reset-admin-password.php USERNAME
```

The command prompts locally for a new password and does not create or email a reset token.

## Compatibility

Existing page, post, menu, theme, update, and user data remain compatible. Sites without an explicit `homepage` continue resolving the `home` page at `/`.

## Verification

PHP lint, editor experience, security baseline, theme and branding, update runner, smoke, and release artifact verification checks passed. Theme tests cover duplication, editable manifest identity, and macOS metadata tolerance.
