=== Umbra Bookshelf ===
Contributors: umbratools
Tags: books, series, isbn, authors, newsletter, publishing
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Complete book management for authors and publishers: catalogue and ISBN tracking, series, pen names, retail links, rating sync, GDPR consent, and newsletter delivery.

== Description ==

Umbra Bookshelf is a single plugin covering the full book workflow. It
consolidates three previously separate plugins:

* **Books** (formerly BD Bookshelf) — the catalogue: ISBN/ASIN variants,
  author records, series, retail sites and per-format buy links, Goodreads and
  Amazon rating synchronisation, SEO rows, shortlink click tracking, GDPR
  consent banners, and CSV/post import.
* **Library** (formerly BD BookShelfHelper) — the WordPress-native model: the
  `book` post type and `series` taxonomy, pen names, a focused data-entry
  screen, shortlinks, reviews and ratings, plus a migration screen.
* **Email** (formerly BD SimpleEmail) — newsletter delivery: subscribers and
  newsletters, a `[bdm_signup]` shortcode, signup and unsubscribe handling via
  AJAX and `admin_post`, Gemini-assisted composition, and Gmail/SMTP sending.

Everything now sits under a single **Umbra Bookshelf** admin menu.

= Upgrading from the old plugins =

Umbra Bookshelf reads and writes the same database tables, option keys, post
meta, cron hooks and shortcodes as the three plugins it replaces. Install Umbra
Bookshelf, then deactivate BD Bookshelf, BD BookShelfHelper and BD SimpleEmail.
**Do not delete** them from the Plugins page first — deleting runs their
uninstall routines, which drop your tables and options.

If you ran BD BookShelfHelper, the first page load after upgrading reconciles
your database automatically. The old table layout is kept aside as
`wp_bd_books_legacy_library` and `wp_bd_series_legacy_library` so nothing is
lost; you can drop those once you are satisfied the migration went well.

The shortcodes `[bd-book]`, `[bd-books]` and `[bdm_signup]` are unchanged, so
existing posts keep working. The admin menu locations have changed: see the
specification in `spec/SPEC_Umbra_Bookshelf_Plugin.md` for the full menu map.

== Frequently Asked Questions ==

= Do I need to migrate my books? =

Usually no. Table names, option keys, post meta keys and shortcodes are
deliberately unchanged; deactivate the old plugins rather than deleting them.
The one exception is a site that ran BD BookShelfHelper: its `bd_books` and
`bd_series` tables had a different layout, and those are reconciled
automatically on upgrade, with the originals kept aside.

= The admin menu looks different. =

It is one menu now instead of three. The catalogue, library and email screens
are all still present as submenus, and Settings is split into catalogue
settings and library settings.

= Where do ratings come from? =

Goodreads, refreshed every 12 hours. Amazon ratings are not scraped. Amazon
retail *links* still work as normal.

= Are there known problems? =

Yes — see `docs/KNOWN-ISSUES.md`, which is included with the plugin.

== Changelog ==

= 1.1.0 =
* Relicensed to GPLv2 or later for WordPress.org compatibility. The plugin
  headers previously said GPLv2 while the licence files said Apache-2.0.
* The catalogue schema is now canonical for `bd_books` and `bd_series`. A site
  that ran BD BookShelfHelper is reconciled automatically, preserving book IDs,
  ratings and post links; the old tables are kept aside rather than dropped.
* Goodreads is now the only rating source, with a single implementation and one
  12-hour cron event. Duplicated Amazon rating scraping removed.
* `Umbra_SEO` is now active, emitting meta, Open Graph, Twitter card and sitemap
  data for book detail pages.
* Fixed a missing default cover image and a missing email admin script, both of
  which caused 404s.
* Admin settings screen for ratings now notes that Goodreads is the only source.

= 1.0.0 =
* Initial release of the consolidated plugin.
* Merged BD Bookshelf, BD BookShelfHelper and BD SimpleEmail into one plugin
  under a single admin menu.
* Renamed plugin headers, text domains, classes, constants, asset handles and
  admin slugs to the Umbra Bookshelf identity.
* Preserved all database tables, option keys, post meta, cron hooks, nonces and
  shortcodes, so existing installs need no migration.
* Registered the top-level admin menu once instead of three times.
* Fixed a duplicate-class fatal error between the catalogue's theme-compatibility
  shim and the library module's helper class.
* Fixed duplicate AJAX handler, duplicate Settings submenu, and colliding asset
  handles across modules.
* Added `spec/SPEC_Umbra_Bookshelf_Plugin.md`, `docs/KNOWN-ISSUES.md`,
  `docs/ARCHITECTURE.md`, and the `tests/` verification suite.
