# Batoi Press 1.1.0

Batoi Press 1.1.0 introduces integrated asset and frontend-library management while preserving the stable `1.0` content, theme, installer, and update contracts.

## Asset Management

- Classifies new images, documents, audio, video, CSS, JavaScript, and module uploads into typed paths below `radpress/content/assets/`.
- Serves typed files from recursive `/assets/{path}` URLs with MIME, immutable-cache, content-length, and `nosniff` headers.
- Keeps existing files under `radpress/content/media/` available from their unchanged `/media/{file}` URLs.
- Adds type filters, storage paths, copy controls, embed snippets, view actions, and guarded deletion to Admin Media.
- Supports image, document, audio, video, stylesheet, classic script, and module embed snippets.
- Preserves customized upload allowlists and limits while upgrading recognized historical defaults to the new asset baseline.

## Frontend Libraries

- Installs versioned ZIP packages containing a root `library.json` manifest.
- Preserves package directories for relative fonts, images, source maps, CSS, and script dependencies.
- Validates archive traversal, absolute paths, symbolic links, executable files, supported extensions, file count, extracted size, and declared entry points before installation.
- Supports global CSS and JavaScript entry points with `defer`, `async`, modules, media queries, integrity, and crossorigin metadata.
- Allows owners and admins to enable, disable, retain, and remove library versions.
- Ensures only one version of a library name is active while retaining older versions for rollback.
- Automatically injects enabled global entry points into public theme output.

## Static Export

- Recursively exports typed assets under `assets/`.
- Preserves complete frontend-library dependency trees and manifests.
- Continues exporting legacy media under `media/`.
- Includes enabled global library tags in generated static HTML.
- Verifies each expected recursive asset path in generated ZIP packages.

## Compatibility

This release is backward compatible with `1.0.x` content files, theme templates, public routes, installer layout, update package manifests, and existing `/media/` references. Customized security upload policies remain unchanged.

## Verification

- PHP syntax, asset, media, security, access-control, static-export, theme, update, browser, package-structure, checksum, and manifest checks passed.

## Publication

Publish `dist/latest.json` and `dist/batoi-press-1.1.0.zip` to the public Batoi Press release directory after artifact verification.
