Forge Statistics Counter - Changelog

2.3.9
- Declared compatibility through WordPress 7.1.
- Declared the dynamic block iframe-compatible with Block API version 3 on WordPress 6.3 and newer.
- Retained Block API version 2 on WordPress 5.6 through 6.2 so the existing minimum-version support is not reduced.
- Preserved database records, instance IDs, shortcodes, the block namespace, public hooks, rendered markup, API settings, credentials, imports, exports, and uninstall behavior.

2.3.8
- Restored unchanged front-end icon markup while retaining final validation for filter-modified HTML.
- Sanitized the block wrapper without reprocessing the shortcode icon subtree.
- Retained the WordPress.org text-domain correction.

2.3.7
- Applied final allowlisted KSES escaping to shortcode, item-filter, and dynamic-block return values.
- Preserved responsive CSS custom properties, data attributes, ARIA markup, links, icon classes, and post-safe filtered HTML across supported WordPress versions.
- Aligned every PHP and JavaScript gettext domain, script-translation registration, plugin header, and translation template with the assigned forge-stat-counter WordPress.org slug.
- Preserved database records, option names, IDs, shortcode names, block namespace, public hooks, admin page slugs, asset handles, APIs, credentials, imports, exports, and uninstall behavior.

2.3.6
- Moved submitted root settings and counter items into the nonce-verified save handler before passing them to the settings builder.
- Resolved the remaining WordPress.Security.NonceVerification.Missing Plugin Check warning reported for the settings-array access.
- Preserved all records, IDs, shortcodes, API modes, encrypted credentials, icons, focused preview behavior, animations, styling controls, blocks, imports, exports, and uninstall preferences.

2.3.5
- Validated and unslashed the administrator request method before routing actions.
- Allowlisted and field-sanitized submitted instance settings and counter items without applying destructive blanket text sanitization to URLs or credentials.
- Added translator comments for pluralized copy, delete, and import notices.
- Hardened list-table SQL construction while retaining WordPress 5.6 compatibility and documenting safe internal identifiers.
- Hardened uninstall SQL identifiers, added narrowly scoped query exceptions, and prefixed uninstall-scope variables.
- Removed the redundant production-root MANUAL.md file; the complete onboard manual remains built into Forge Counters > Manual.
- Preserved all database records, instance IDs, shortcodes, API modes, encrypted credentials, icons, focused preview behavior, animations, responsive/design controls, block rendering, imports, exports, and uninstall preferences.

2.3.4
- Changed the administrator live preview to render only the counter item currently selected or being edited.
- Added a visible selected-item state and preserved the preview target through keyboard focus, pointer selection, editing, reordering, duplication, and deletion.
- Removed decorative red and orange API error/stale dots from public counter cards while retaining the internal diagnostic classes and nonvisual data state.
- Corrected API status cleanup so a later successful response removes a previous error state and an error removes an obsolete stale state.
- Preserved counter records, IDs, shortcodes, APIs, credentials, icons, animations, design controls, blocks, imports, exports, and existing rendering settings.

2.3.3
- Restored actual Font Awesome Free 6.7.2 glyph rendering for existing saved class values, including fa-solid fa-hand-holding-dollar.
- Added locally bundled, plugin-scoped solid, regular, and brands font files so Forge icons do not depend on Elementor or the active theme.
- Preserved Font Awesome classes in public output, administrator summaries, the icon picker, and the live preview instead of replacing them with Dashicons.
- Added compatibility repair for cached 2.3.0-2.3.2 icon markup while leaving Dashicons and external Pro/kit/custom libraries untouched.
- Preserved all counter records, IDs, shortcodes, API behavior, security improvements, imports, exports, animations, and design settings.

2.3.2
- Added a client-side repair for known Font Awesome 5/6 icon classes in stale or cached counter markup.
- Enforced Dashicons font inheritance and sizing for reliable front-end glyph rendering.
- Added a non-sensitive data-plugin-version marker to each rendered counter grid for deployment checks.
- Preserved saved records, IDs, shortcode behavior, APIs, animation settings, imports/exports, and unknown external icon classes.

2.3.1
- Fixed native Dashicons rendering for production records using Font Awesome 6 person-chalkboard, address-card, and hand-holding-dollar classes.
- Added compatible aliases for the related Font Awesome 5 names chalkboard-teacher, hand-holding-usd, id-card, vcard, and donate.
- Preserved saved icon strings and the custom external icon compatibility path; no database migration is required.

2.3.0
- Rebuilt the administration as a scoped, responsive counter-management workspace.
- Added an onboard manual, dynamic block, list search/pagination, bulk operations, Save as copy, and item-level duplication/reordering.
- Added safe-by-default version 3 JSON exports, optional sensitive migration exports, import validation, and legacy-format import compatibility.
- Added modern design presets, granular container/card/icon settings, item links, item overrides, compact/locale number formats, and effective animation treatments.
- Replaced the bundled icon font with WordPress Dashicons while resolving historical Font Awesome classes.
- Removed private API settings from public HTML and moved all secret-dependent operations server-side.
- Added authenticated encryption with legacy credential decryption compatibility.
- Added safe remote URL validation, persistent transients, stale fallback, request locks, bounded responses, and safer public errors.
- Added versioned database upgrades, conditional assets, a no-jQuery front-end runtime, multisite activation handling, and configurable uninstall cleanup.
- Preserved existing table data, IDs, shortcode, settings, APIs, animation controls, token renewal, import formats, historical CSS variables, the forge_counter_ajax object, administrator markup aliases, and the original icon extension filter.

2.2.0
- Previous public version supplied for this upgrade.
