# PSCOT v1.1.2

PSCOT is a framework-free PHP and SQLite site for presenting books, novellas, short stories, articles, and other writing by Jay Pscot.

## Requirements

- PHP 8.2 or newer
- PDO SQLite (`pdo_sqlite`)
- Fileinfo (`fileinfo`)
- JSON
- Apache with `.htaccess` support, or equivalent hosting rules
- HTTPS for production

PSCOT has no Composer, PHP framework, JavaScript framework, CSS framework, Node, build system, database server, or third-party analytics dependency.

## Upgrade from v1.1.1

1. Back up `~/data/pscot.com/`.
2. Copy the contents of the `pscot-site/` directory over the existing public site.
3. Do **not** rerun the installer.
4. Reload the Library page. Stable asset filenames use the central application version as a cache-busting query parameter.

v1.1.2 requires no database migration. Existing catalog entries, Authors, Series, Tags, prepared Views, files, covers, permissions, summaries, settings, and analytics remain intact.

## Library filter correction

- Author and Series selectors now use the actual server-rendered selector options as their authoritative lookup values.
- Author and Series filtering updates results asynchronously without a full-page reload.
- Active Author, Series, Tag, and text-search filters remain in place when a prepared View is changed.
- **Clear all** remains the only control that intentionally removes every custom filter.
- Filter state remains shareable through `preset`, `tags`, `authors`, `series`, and `q` URL parameters.
- Server-side Author and Series matching is performed against each hydrated work's actual assignments.

## Stable internal filenames

Release numbers appear on the external ZIP, checksum, README, release notes, design notes, license, manifest, and version files supplied alongside the ZIP. Files inside the ZIP now use stable deployment names, including:

```text
README.md
RELEASE.md
DESIGN.md
LICENSE.txt
VERSION.txt
MANIFEST.sha256
site.webmanifest
assets/css/site.css
assets/css/desk.css
assets/js/library.js
assets/js/desk.js
```

The package extracts into `pscot-site/`. CSS, JavaScript, manifest, icon, and branding URLs use the central PSCOT version for cache invalidation instead of embedding the release number in each filename.

## Deployment checks

- Select an Author and confirm results update without a page reload.
- Select a Series and confirm the same behavior.
- Confirm selected filters appear as removable chips and remain in the URL.
- Change among prepared Views and confirm Author, Series, Tag, and search filters remain active.
- Remove individual chips and confirm results update dynamically.
- Use **Clear all** and confirm every filter is removed.
- Reload a filtered URL and confirm all filters are restored.

## Software license

The PSCOT application source code is released under the MIT License. The license does not apply to books, articles, stories, uploaded documents, cover artwork, logos, branding, or other catalog content unless separately identified as licensed.

Current release: v1.1.2, July 25, 2026.
