# Changelog ## 0.0.18 - Theme Studio 0.0.3 catalog seed - Updated the built-in GracePress Theme Studio catalog seed to version `0.0.3`. - Changed the Theme Studio description to match the new profile editor role. - Keeps the MeshCentral package manager authoritative over GracePress-managed plugin rows while preserving unrelated third-party plugin rows. ## 0.0.17 - GracePress row ownership cleanup - Resolves MeshCentral plugin registry row IDs from `_id`, `id`, or `pluginId` so cleanup works across MeshCentral database adapters. - Archives and removes GracePress-owned legacy rows when their short name no longer matches the GracePress catalog entry. - Archives and removes duplicate GracePress-owned rows for the same managed MeshCentral short name while preserving the active row when one exists. - Reports missing row IDs as explicit sync errors instead of silently leaving obsolete GracePress rows in the MeshCentral plugin catalog. - Keeps cleanup scoped to GracePress-managed plugin entries so unrelated third-party MeshCentral plugins are not touched. ## 0.0.16 - Legacy row quarantine - Archives and removes obsolete legacy MeshCentral plugin rows such as `gracepress-theme-studio` after preserving their registry document under the live plugin `.old` folder. - Preserves the installed/active status of the corrected `gpthemestudio` row during catalog sync instead of forcing managed rows back to disabled. - Keeps Theme Studio migration in the rolling catalog update path while avoiding duplicate disabled rows in MeshCentral's plugin list. ## 0.0.15 - MeshCentral-safe Theme Studio seed - Updated the built-in Theme Studio seed to use the MeshCentral-safe runtime short name `gpthemestudio`. - Preserved the public GracePress catalog slug `gracepress-theme-studio` while separating it from MeshCentral's admin-route identity. - Keeps the catalog-manager rolling update path as the migration mechanism for correcting installed MeshCentral plugin rows. - Migrates the legacy `gracepress-theme-studio` MeshCentral row forward to `gpthemestudio` instead of creating a duplicate row. ## 0.0.14 - Built-in MeshCentral plugin catalog seed - Added a deterministic built-in GracePress MeshCentral plugin catalog seed for `GracePress Theme Studio`. - Changed discovery to write disabled plugin rows through MeshCentral's database helper directly instead of the higher-level plugin wrapper. - Added explicit sync-stage logging so MeshCentral service logs show whether discovery starts, reads existing rows, inserts rows, or fails. - Kept the dynamic catalog URL in metadata for a later pass, but removed runtime catalog fetch as a dependency for exposing the first managed plugin. ## 0.0.13 - Constructor startup sync - Moved GracePress MeshCentral plugin discovery into the plugin constructor path because MeshCentral does not call `server_startup()` for already-installed plugins during ordinary service reload. - Kept the `server_startup()` hook for install/upgrade compatibility while also scheduling discovery shortly after plugin load. - Added an admin-panel fallback that starts discovery if the connector panel opens before the scheduled sync has run. ## 0.0.12 - Catalog plugin discovery - Added startup sync from the GracePress `mcplugins` catalog bucket into MeshCentral's plugin registry. - Missing GracePress MeshCentral plugins are now inserted as disabled/available rows, ready for MeshCentral's normal Install action. - Existing disabled rows are refreshed from their current `.mcplugin.json` config while active installed plugins are left alone. - Added backend panel sync status so catalog discovery can be inspected from the connector admin view. ## 0.0.11 - Facade confirmation update - Published a marker-only update to confirm the MeshCentral git facade shape after the successful `0.0.10` upgrade. - Preserved the MeshCentral-facing `downloadUrl` and `versionHistoryUrl` facade URLs in package config. - Updated the backend panel test marker to `0.0.11`. ## 0.0.10 - MeshCentral git facade test - Added a marker-only update that uses GracePress-generated MeshCentral git facade URLs. - Switched MeshCentral `downloadUrl` to the no-query `gracepress.download.php` package facade. - Switched MeshCentral `versionHistoryUrl` to `gracepress.tags.json`, shaped like a GitHub tags response with `name` and `url` fields. - Updated the backend panel test marker to `0.0.10`. ## 0.0.9 - Versioned download URL retest - Published a marker-only update that uses the versioned package URL as MeshCentral `downloadUrl`. - Avoided the cached `gracepress-latest.zip` alias and the nginx path-info download route while validating the built-in Upgrade action. - Updated the backend panel test marker to `0.0.9`. ## 0.0.8 - Upgrade flow retest - Published a small marker-only update for validating MeshCentral's built-in Upgrade action after the MySQL plugin registry repair. - Updated the backend panel test marker to `0.0.8` so a successful install can be confirmed from the MeshCentral plugin panel. ## 0.0.7 - Direct MeshCentral latest zip - Replaced the query-string latest-download endpoint with a stable `gracepress-latest.zip` file because MeshCentral's plugin downloader builds requests from `URL.pathname` and drops query strings. - Kept versioned GracePress release artifacts while adding a MeshCentral-safe latest zip alias for the built-in Upgrade action. - Updated package metadata so installed MeshCentral config rows keep using the stable latest zip URL after upgrade. ## 0.0.6 - Stable MeshCentral upgrade download - Added a GracePress `mcplugin-download` endpoint for MeshCentral's built-in Upgrade action. - Changed the MeshCentral-facing `downloadUrl` to a stable latest-download endpoint because MeshCentral upgrades from the installed DB row, not the freshly fetched latest config object. - Kept the GracePress manifest `download_url` versioned for catalog and rollback clarity. ## 0.0.5 - Upgrade detection test - Published a small catalog-only test update for MeshCentral's built-in Upgrade action. - Added a visible backend panel note so successful upgrade can be confirmed after MeshCentral installs the package. ## 0.0.4 - MeshCentral lifecycle alignment - Renamed the display/package name to GracePress Catalog Connector while preserving the stable `gracepress` slug and MeshCentral `shortName`. - Changed MeshCentral repository metadata to `git` so MeshCentral's built-in installer and upgrade action can download the GracePress-hosted zip. - Documented the active plugin identity rule: folder name, `shortName`, JS export, config row, and catalog slug must line up. - Prepared the live registry cleanup from duplicate `gracepress` rows into one active catalog-managed plugin. ## 0.0.3 - Catalog-managed backend panel - Moved the live GracePress MeshCentral dummy plugin into the GracePress workspace as an `mcplugin` package. - Added internal MeshCentral plugin header metadata for GracePress catalog builds. - Added backend admin panel catalog checks against the GracePress manifest endpoint. - Updated MeshCentral plugin config URLs to use the GracePress catalog-managed package, config, and changelog artifacts. ## 0.0.2 - Backend hello-world route - Replaced device-tab test behavior with a backend/admin plugin panel. - Kept MeshCentral plugin permissions unused while the current MeshCentral database adapter reports missing plugin-permission helpers.