2026-10
v8.2.3 (2026-10-14)โ
Catalyst v8.2.3 โ Date not provided
๐ WARNING: Migration Required โ Saved page views replace
CmIndexPreference; the generated migration createsct_page_viewsand dropscm_index_preferences. Update customfilter_withscopes to accept the additionalconditionargument. Run:bin/rails generate cm_admin:ct_page_view
bin/rails db:migrate
๐ Featuresโ
- ๐ Advanced filters and saved page views: Added nested filter groups with per-field operators and AND/OR conditions, plus per-user views that save filters, sorting, columns, page size, and view type. Filter parameters are compressed in URLs, with backward-compatible plain-JSON decoding. This replaces
CmIndexPreference; customfilter_withscopes must accept an additionalconditionargument. #1637 - ๐ Improved OTP entry: Replaced the single OTP field with six digit boxes, including paste and SMS autofill support, keyboard navigation, and a resend countdown. Updated sign-in and reset-password screens. #1656
๐ Bug Fixesโ
- ๐ Pie chart labels: Enabled labels by default and added a formatter showing the name, value, and percentage. #1655
- ๐งฐ Select filters: Respect
allow_empty_option: falseand show the option label in chips when a single choice is available. #1650 - ๐งญ Custom actions: Make button and link actions navigate outside Turbo Frames so they load the full page. #1654
- ๐ Show-page card layout: Prevent long unbreakable content and embedded images from overflowing card-info grids across browsers. #1657
โจ Improvementsโ
- ๐ฌ Hatchbox deployment notifications: Restored a compact Slack layout with a status title, one-line message, and action buttons. Added fallback notification text for mobile previews; failure notifications retain their visual emphasis. #1658
โ ๏ธ Breaking Changesโ
- ๐ Page-view preferences and custom filter scopes:
CtPageViewreplacesCmIndexPreference, and the migration drops the old preference table. Update customfilter_withscopes for the newconditionargument before deploying. Generate and run the migration using the commands in the warning above. #1637
๐ Documentationโ
- ๐ Updated the HatchboxScripts guide to describe the compact Slack notification format and renamed โView on Hatchboxโ button. #1658
- ๐งญ Expanded the v8.2.0 upgrade guide with guidance for sidebar
query:entries that pass filters, including how to use filter defaults or the current user's defaultCtPageView. #1637
v8.2.2 (2026-10-13)โ
Catalyst v8.2.2
Date: Not specified
๐ WARNING: Migration Required โ Saved page views replace
CmIndexPreferenceand add thect_page_viewstable; the generated migration also dropscm_index_preferences. Customfilter_withscopes must also be updated to accept the additionalconditionargument.bin/rails generate cm_admin:ct_page_view
bin/rails db:migrate
๐ Featuresโ
- ๐ Added advanced filters with nested condition groups, field-specific operators, and AND/OR logic. #1637
- ๐พ Added per-user saved page views for filters, sorting, columns, page size, and view type, with CRUD, duplication, defaults, and automatic saving. #1637
- ๐ Redesigned OTP verification with six individual digit boxes, paste and autofill support, keyboard navigation, and a resend countdown for sign-in and password-reset flows. #1656
๐ Bug Fixesโ
-
๐ Added visible pie-chart labels with a formatter that displays the name, value, and percentage. #1655
-
๐งญ Fixed custom button and link actions so navigation exits Turbo Frames and loads the full page. #1654
-
๐ท๏ธ Fixed single-select filter chips to show the option label for one-option collections, and made
allow_empty_option: falsesuppress the โ(Empty)โ choice. #1650 -
๐งฑ Fixed show-page
card-infogrids overflowing when descriptions contain long unbreakable content. Descriptions now wrap, and embedded images scale to fit their container. #1657
โจ Improvementsโ
- ๐ Advanced-filter parameters are compressed in URLs, with backward-compatible decoding of plain JSON parameters. #1637
- โจ๏ธ OTP entry supports SMS one-time-code autofill, paste across digit boxes, and keyboard navigation. #1656
โ ๏ธ Breaking Changesโ
- โ ๏ธ Custom
filter_withscopes must accept an additionalconditionargument for advanced filtering. The saved page views migration replacesCmIndexPreferenceand drops thecm_index_preferencestable; review any data in that table before migrating. #1637
๐ Documentationโ
- ๐ Updated the changelog with the v8.2.1 release notes. f33ebeb82
v8.2.1 (2026-10-13)โ
Catalyst v8.2.1
Date: Not specified
๐ Featuresโ
No feature changes in this release.
๐ Bug Fixesโ
- ๐งฑ Fixed show-page
card-infogrids overflowing when descriptions contain long, unbreakable content such as URLs or long IDs. Descriptions now wrap, and embedded images scale to fit their container. #1657
โจ Improvementsโ
No other improvements in this release.
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Updated the changelog with the v8.2.0 release notes. 98c9c7937
v8.2.0 (2026-10-13)โ
Catalyst v8.2.0
Date: Not specified
โ ๏ธ WARNING: Breaking Changes โ filter_with scopes for :single_select, :multi_select, :date, and :range filters now receive (value, condition). Update these scopes to accept the new arguments; date and range scopes now receive the raw value string instead of separate from and to values. Upgrade guide
๐ WARNING: Migration Required โ Saved Views replace Index Preferences. Generate and run the migration to create ct_page_views; it drops cm_index_preferences without migrating its data. Back up that table first if you need to retain its data.
rails generate cm_admin:ct_page_view
rails db:migrate
๐ Featuresโ
- ๐ Advanced Filters: Build nested condition groups using AND/OR logic and field-specific operators such as
is_not,greater_than, andis_empty. Advanced conditions work with supported select, date, and range filters. #1637 - ๐พ Saved Views: Save and reuse per-user index configurations, including filters, sort order, visible columns, page size, and view type. Views can be duplicated, set as defaults, and shared through links. This replaces Index Preferences. #1637
๐ Bug Fixesโ
-
๐ฅง Pie charts now show labels by default, with each label displaying the slice name, value, and percentage. #1655
-
๐งญ Custom button and link actions in dropdowns and popups now navigate outside Turbo Frames and load the destination as a full page. #1654
-
๐ Select filters now honor
allow_empty_option: false; single-option filter chips also show the option label instead of its raw value. #1650
โจ Improvementsโ
- ๐ Filter parameters are now compressed in URLs using zlib and base64url-encoded JSON. Existing nested filter hashes and plain JSON remain supported; use
CmAdmin::Utils.decode_filter_paramswhen reading filter parameters in application code. #1637 - ๐๏ธ Advanced filters support serialized and restorable filter state, dynamic operator options, and preservation of URL parameters when saved views are applied or cleared. #1637
โ ๏ธ Breaking Changesโ
- ๐ ๏ธ
filter_withscope signatures changed: Select, date, and range filter scopes now receive(value, condition = nil). Date and range scopes receive the raw value string (for example,"18 to 30") instead of separatefromandtoarguments. Update lambda scopes to accept the new signature; strict-arity lambdas can raiseArgumentErrorotherwise. Search scopes are unchanged. #1637 - ๐๏ธ Index Preferences were removed:
CmIndexPreferenceandcm_index_preferencesare replaced by Saved Views andCtPageView. The generated migration drops the old table, and its data is not migrated. #1637
๐ Documentationโ
- ๐ Added guides for Advanced Filters and Saved Views, expanded custom filter scope documentation, documented the
ct_page_viewgenerator, and added a v8.2.0 upgrade guide covering breaking changes, migration steps, and filter URL handling. c58bc0fcd
v8.1.15 (2026-10-13)โ
Catalyst v8.1.15
Date: Not specified
๐ Featuresโ
๐ Bug Fixesโ
-
๐ฅง Pie charts now show labels by default, with a formatter displaying each sliceโs name, value, and percentage. #1655
-
๐งญ Custom button and link actions in dropdown and popup options now navigate outside Turbo Frames, loading their destinations as full pages. #1654
-
๐ Single- and multi-select filters now respect
allow_empty_option: false. Single-option filters also display the selected optionโs label in the chip instead of its raw value. #1650
โจ Improvementsโ
โ ๏ธ Breaking Changesโ
๐ Documentationโ
- ๐ Updated the monthly changelog and release metadata with the v8.1.14 release notes. e301a8196
v8.1.14 (2026-10-13)โ
Catalyst v8.1.14
Date: Not specified
๐ Featuresโ
๐ Bug Fixesโ
-
๐ฅง Pie charts now show labels by default, with a formatter displaying each sliceโs name, value, and percentage. #1655
-
๐งญ Custom button and link actions in dropdown and popup options now navigate outside Turbo Frames, so destinations load as full pages. #1654
โจ Improvementsโ
โ ๏ธ Breaking Changesโ
๐ Documentationโ
- ๐ Updated the monthly changelog and release metadata with v8.1.13 release notes.
9929c567a
v8.1.13 (2026-10-13)โ
Catalyst v8.1.13
Date: Not specified
๐ Featuresโ
-
๐ Global search now includes configured sidebar links, including nested links, and uses sidebar labels and icons when presenting matching destinations. Duplicate URLs are removed, and the empty state appears only when there are no record or navigation matches. #1643
๐ Bug Fixesโ
- ๐งญ Custom button and link actions in dropdown and popup options now navigate outside Turbo Frames, ensuring navigation loads the full page. #1654
โจ Improvementsโ
-
๐ Dashboard table descriptions now wrap below the title across the available width, while sort and export buttons stay aligned on the heading row. #1647
-
๐ฆ Consolidated dependency updates across the gem, feature app, root npm workspace, and docs site. Updates include Devise 5.0.4, Lexxy-related dependencies, and multiple Ruby and npm packages. #1651
-
โ๏ธ Updated the Lexxy rich text editor dependency to stable version 1.0.0. #1649
-
๐จ Updated the navigation icons for the Role and CronJob models. #1645
โ ๏ธ Breaking Changesโ
๐ Documentationโ
v8.1.12 (2026-10-09)โ
Catalyst v8.1.12 โ Date not provided
๐ Featuresโ
-
๐ Global search now includes configured sidebar links, including nested links. Sidebar labels and model names remain searchable, and matching suggestions use configured labels and icons without duplicate URLs. #1643
๐ Bug Fixesโ
No bug fixes in this release.
โจ Improvementsโ
- ๐ฆ Consolidated 16 dependency updates across the gem, feature app, docs site, and root npm workspace. This includes Devise 4.9.4 โ 5.0.4, a major-version upgrade, along with Ruby and JavaScript dependency updates. #1651
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Clarified when
@policy_modelis reset during sidebar link search. Commit49cb47bb6 - ๐ Updated the docs-site changelog for v8.1.11. Commit
a19d122ba
v8.1.11 (2026-10-09)โ
Catalyst v8.1.11 โ Date not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
-
๐ Updated the dashboard table widget layout so descriptions wrap beneath the heading at full width, while the sort and export buttons remain aligned beside the title. This prevents long descriptions from being clipped or crowding the action buttons. #1647
Before
After
โจ Improvementsโ
- โจ Updated the Lexxy rich text editor dependency to stable version 1.0.0, moving Catalyst from the 0.x beta series. Existing Action Text integration remains compatible. #1649
- โจ Updated the sidebar icons for the
CmRoleandCmCronJobmodels to standardize navigation across Catalyst applications. #1645
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
No documentation changes in this release.
v8.1.10 (2026-10-09)โ
Catalyst v8.1.10
Date: Not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
No user-facing bug fixes in this release.
โจ Improvementsโ
- ๐จ Navigation icons โ Updated the
CmRoleandCmCronJobicons so they are defined consistently in the modelsโ admin configuration. #1645 - ๐ข MCP decimal serialization โ Normalize
BigDecimalvalues to floats for JSON compatibility, including values returned through theserializable_hashfallback; improve decimal handling during serialization. #1641 #1642 - ๐งพ MCP field schemas and values โ Improve enum schema handling, include
nilfor nullable enum values, and add explicit string casting and type conversion for field values. #1640 #1644 - ๐ซ Support-ticket validation and migration templates โ Scope
platform_ticket_iduniqueness validation to the Catalyst installation and generate foreign-key columns asbigint. The template change affects newly generated migrations; no database migration is required for existing installations. #1639 - โ๏ธ Release tooling โ Prevent SIGPIPE failures during release context collection and let the notes generator process larger inputs and outputs. #1638
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Changelog โ Updated the documentation changelog with the v8.1.9 release notes, covering that releaseโs improvements and documentation updates. 05f3e912b
v8.1.9 (2026-10-08)โ
Catalyst v8.1.9
Date: Not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
No user-facing bug fixes in this release.
โจ Improvementsโ
- ๐งฎ MCP decimal serialization โ Normalize
BigDecimalfield values to floats for JSON compatibility, including values returned through theserializable_hashfallback. #1641 #1642 - ๐งพ MCP field schemas and serialization โ Improve enum handling, include
nilfor nullable enum values, and add explicit string casting and type conversion for field values. #1640 #1644 - ๐ซ Support-ticket validation and migration templates โ Scope
platform_ticket_iduniqueness validation to the Catalyst installation and generate foreign-key columns asbigint. The template change applies to newly generated migrations; no database migration is required for existing installations. #1639 - โ๏ธ Release tooling โ Prevent SIGPIPE failures when collecting release context and allow the notes generator to process larger inputs and outputs. #1638
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Changelog โ Added the v8.1.8 release notes to the documentation changelog, summarizing that releaseโs features, fixes, improvements, and documentation updates. af79b70ee
v8.1.8 (2026-10-08)โ
Catalyst v8.1.8
Date: Not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
No user-facing bug fixes in this release.
โจ Improvementsโ
- ๐งฎ MCP decimal serialization โ Normalize
BigDecimalfield values to floats for JSON compatibility, including values returned through theserializable_hashfallback. #1642 #1641 - ๐งพ MCP field schemas โ Improve enum handling and provide consistent nullable type information across field schemas. #1640
- ๐ซ Support-ticket validation and migration templates โ Scope
platform_ticket_iduniqueness validation to the Catalyst installation and generate foreign-key columns asbigint. This affects newly generated migrations; no database migration is required for existing installations. #1639 - โ๏ธ Release tooling โ Make release-context collection more robust and allow the notes generator to process larger inputs and outputs. #1638
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Changelog โ Added the v8.1.7 release notes to the documentation changelog, summarizing that releaseโs features, fixes, improvements, and documentation updates. 1317b17d3
v8.1.7 (2026-10-08)โ
Catalyst v8.1.7
Date: Not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
- ๐ ๏ธ Release workflow context collection โ Prevented SIGPIPE failures during release-context collection and avoided command-line size limits by passing context files as paths. #1638
โจ Improvementsโ
- ๐งฉ MCP field serialization โ Normalized
BigDecimalfield values to floats for JSON compatibility, including values returned through theserializable_hashfallback. #1641 - ๐งพ MCP field schemas โ Improved enum handling and made nullable type information consistent across field schemas. #1640
- ๐ซ Support-ticket validation and migration templates โ Scoped
platform_ticket_iduniqueness validation to the Catalyst installation and changed generated foreign-key columns fromintegertobigint. This template change affects newly generated migrations; no database migration is required for existing installations. #1639 - โ๏ธ Release-notes tooling โ Increased the input and output budgets and updated context handling so the generator can process larger release inputs. #1638
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Changelog โ Added the v8.1.6 release notes to the documentation changelog, including summaries of that releaseโs features, fixes, improvements, and documentation updates. 1317b17d3
v8.1.6 (2026-10-08)โ
Catalyst v8.1.6
Date: Not provided
๐ Featuresโ
No new features in this release.
๐ Bug Fixesโ
- ๐ ๏ธ Release workflow context collection โ Fixed SIGPIPE failures when collecting release context and avoided command-line size limits by passing context files as paths. #1638
โจ Improvementsโ
- ๐งฉ MCP field schemas โ Improved enum handling by mapping explicit enum fields to strings and using enum values in the schema. Field schemas now consistently support nullable types. #1640
- ๐ซ Support-ticket validation and migration templates โ Scoped
platform_ticket_iduniqueness validation to the Catalyst installation, refined type checking and code consistency, and changed generated foreign key columns fromintegertobigint. The template change applies to newly generated migrations; no database migration is required for this release. #1639 - โ๏ธ Release-notes generation โ Increased the generatorโs input and output budgets and updated how release context is passed, allowing it to handle larger release inputs. #1638
โ ๏ธ Breaking Changesโ
No breaking changes in this release.
๐ Documentationโ
- ๐ Changelog โ Added v8.1.5 release notes to the documentation changelog, covering its features, bug fixes, improvements, and webhook setup details. be3427d6d
v8.1.5 (2026-10-08)โ
Catalyst v8.1.5
Date: Not provided
๐ Bug Fixesโ
- ๐ ๏ธ Release workflow context collection โ Fixed SIGPIPE failures during release context collection and avoided command-line size limits by passing context files as paths. The workflow can now handle larger documentation diffs. #1638
โจ Improvementsโ
- ๐ซ Support-ticket validation and migration templates โ Scoped
platform_ticket_iduniqueness validation to the Catalyst installation, improved type checking and code consistency, and changed foreign key columns in the migration template from integer to bigint. The template change applies to migrations generated in the future; no database migration is required for this release. #1639 - โ๏ธ Release-notes generation โ Increased the release-notes input and output budgets and updated how release context is passed to the generator, allowing it to process larger release inputs. #1638
๐ Documentationโ
- ๐ Changelog โ Added the v8.1.4 release notes to the documentation changelog, including feature, bug-fix, improvement, and webhook setup details. baad7e483
โ ๏ธ Breaking Changesโ
- โ No breaking changes are noted for this release.
v8.1.4 (2026-10-08)โ
Catalyst v8.1.4
Released: October 17, 2026
๐ Featuresโ
-
๐ช Webhook event logging and Postmark delivery tracking โ Added a webhook logging system with asynchronous processing, an admin UI for inspecting events, and Postmark delivery tracking with recipient-level statuses. Webhook payloads are stored through ActiveStorage, and events can be associated with records for debugging and auditing. #1507
-
๐ Page descriptions in the index navbar โ Index pages can now display a page description in the top navbar, with styling for secondary text and links. #1632
๐ Bug Fixesโ
- ๐ ๏ธ Release workflow SIGPIPE failures โ Fixed release context collection failing when
git logoutput was piped throughhead. The workflow now passes context using file paths, avoiding command-line size limits and allowing larger docs diffs. #1638
โจ Improvementsโ
- ๐ OTP generation and verification โ Consolidated OTP creation and verification into
OtpRequest.generate!andOtpRequest.verify?, centralized the expiry duration, and removed the requirement to pass a user object through email delivery. #1626 - โ๏ธ Devise OTP initialization โ Register Devise modules through
config.to_prepare, add an autoload forCmAdminAuthenticatable, and avoid OTP checks when a custom authentication method is configured. #1633 - โ๏ธ Email log display titles โ Email log pages now use a display title in the
[id] subjectformat. #1630 - ๐ช Webhook processing and event records โ Webhook handling now uses a generic router and service-based processing, with payload attachments, UUIDs, and event associations. #1507
๐ Documentationโ
- ๐ Webhook setup and generator guides โ Added a webhook logging guide covering configuration, controller overrides, routing, processing, and the admin UI. Updated the generator reference with
cm_admin:add_webhook_events, its migration details, and the ActiveStorage setup requirement. #1636 - ๐งพ Release documentation โ Updated the release changelog documentation with the current default notes-generation model. #1638
โ ๏ธ Breaking Changesโ
- โ No breaking changes are noted for this release.
Optional webhook setup: To enable webhook event logging, generate the table and run the migration. Webhook payload storage also requires ActiveStorage to be installed and configured.
rails generate cm_admin:add_webhook_events
rails db:migrate
rails active_storage:install
v8.0.16 (2026-10-05)โ
v8.0.16
Released: October 17, 2026
โจ Improvementsโ
-
โป๏ธ OTP generation and verification logic consolidated โ The OTP flow has been refactored into a single, self-contained path on
OtpRequest, removing the previous dependency on auserobject. This makes OTP handling easier to reason about and reuse across email- and non-email-based delivery. โ #1626- ๐งฎ New
OTP_EXPIRY_IN_MINUTESconstant โ Extracted the expiry window into a single constant, now used by both thetimed_outandactivescopes so expiry logic can't drift between them. - ๐๏ธ New
OtpRequest.generate!class method โ Handles OTP creation end-to-end, including automatic cleanup of expired and active requests before generating a new one. - โ
New
OtpRequest.verify?class method โ Validates a submitted OTP and updates the relevant statuses in one call. - ๐จ
deliver_otpsimplified โ Now always callssend_otpinstead of branching on whether a user or a raw email was supplied. - โ๏ธ
deliver_via_emailsignature updated โ Accepts the email address directly as a parameter rather than resolving it from a user.
โน๏ธ These are internal API changes. If your application overrides or calls
deliver_otp/deliver_via_emaildirectly, update the call sites to pass the email explicitly. - ๐งฎ New
๐ Documentationโ
- ๐ Changelog updated for v8.0.15 โ Added the
v8.0.15entry todocs-site/docs/Changelog/2026-10.md, covering the lazy-loaded dashboard widgets, the nested-forms view-toggle fix, and the env-driven Hatchbox deploy scripts (including thedeployment_alertsbreaking change and thedeploy_config:syncmigration steps). โ dc6bad29f - ๐๏ธ Release metadata refreshed โ
docs-site/static/releases.jsonupdated so the new changelog entry is picked up by the docs site. โ dc6bad29f
v8.0.15 (2026-10-01)โ
v8.0.15
Released: October 16, 2026
โ ๏ธ WARNING: Breaking Changes
The
deployment_alertscm-admin config accessor has been removed. Hatchbox deployment notifications are now controlled by theDEPLOYMENT_ALERTSenvironment variable. Any initializer that setsconfig.deployment_alertswill raiseNoMethodErrorand must be updated.
๐ WARNING: Migration Required
The
.hatchboxdeploy scripts are now fully environment-driven, so thedeploy-config/directory checksum has changed. Sync the updated config and set the new environment variables before your next deploy.bash bundle update cm-admin rake cm_admin:deploy_config:sync
Then commit the updated
deploy-config/folder before deploying โ Hatchbox picks it up from git, not from a boot-time copy. Also setAPP_NAMEandAPP_URL(and optionallyDEPLOYMENT_ALERTS=false) in your Hatchbox environment variables.
๐ Featuresโ
-
โก Lazy-loaded dashboard widgets via Turbo Frames โ Dashboard pages now render instantly with skeleton placeholders, and each widget (chart, metric card, table) fetches its content asynchronously from a dedicated endpoint (
GET /:dashboard_name/widget/:widget_index). Adds acm_dashboard_widgetcontroller action,collect_dashboard_widgets/collect_section_widgets/widget_nameview helpers, a new_dashboard_widgetpartial, and a.cm-dashboard-skeletonpulse animation. Section widgets on show pages remain backward compatible. โ #1579
๐ Bug Fixesโ
- ๐ฉน Nested forms now initialize and toggle the configured view correctly โ The active state is kept in sync between the nested table and grid view controls, and nested forms initialize in grid mode when
default_view_typeis configured as:grid. Previously the selected grid icon did not match the rendered table layout, and switching views left the previous control active. Fixed by adding the selector attribute expected by the Stimulus view-toggle handler to both controls and applying thegrid-tableclass during server-side rendering when grid is the configured default. โ #1623 - ๐ฉน Misconfigured environments no longer send broken deploy notifications โ Previously a missing app name or URL produced a Slack notification with a blank app name and broken buttons. The scripts now detect blank required values (
APP_NAME,APP_URL,SLACK_WEBHOOK_URL) as soon as the config loads and post a single, explicit "config not available" notice naming the Hatchbox app, environment, and server, then exit cleanly. โ #1608
โจ Improvementsโ
- ๐ง Hatchbox deploy scripts are now fully env-driven โ
app_name,app_url,env_name,slack_webhook,deployment_alerts?, and the newserver_nameare read from environment variables instead ofCmAdmin.config,Rails.env, or app credentials. This decouples the copied.hatchboxscripts from gem internals and removes their dependency on values like thebe_urlcredential andproject_name. โ #1608 - ๐ Deploy hooks run under plain
rubyโ Hook scripts no longer boot Rails, and they source~/.asdf-varswhen present soHATCHBOX_SERVER_NAME/HATCHBOX_SERVER_IDare available per Hatchbox docs. โ #1608 - โฑ๏ธ HTTP timeouts on the Slack POST โ Open/read timeouts were added so a hung webhook can no longer stall a deploy step. โ #1608
- ๐ฌ Clearer config-unavailable notification โ The notice now includes environment and server lines plus an Environment Variables button that deep-links to the app's Hatchbox env-vars page (
https://hatchbox.io/apps/<APP_ID>/env_vars). โ #1608 - ๐ชต Simplified notification script error handling and logging โ Reduced branching and clearer log output in
hatchbox_notification.rb. โ #1608 - ๐งน Removed duplicate deployment config directory โ Cleaned up a redundant
deploy-config/copy in the gem source. โ #1608 - ๐ Project workflow rules and lockfile platform entries synced โ Refreshed the project's AI workflow rules and
yarn.lockplatform-specific optional package entries. โ #1623
โ ๏ธ Breaking Changesโ
-
๐ฅ
CmAdmin.config.deployment_alertsremoved โ The toggle is now theDEPLOYMENT_ALERTSenvironment variable. Remove the accessor from your initializer:ruby
config/initializers/cm_admin.rb โ DELETE THIS
CmAdmin.configure do |config| config.deployment_alerts = false end
and instead set it in your Hatchbox environment variables:
DEPLOYMENT_ALERTS=false
โ #1608
๐ Documentationโ
- ๐
4. Deployment/HatchboxScripts.mdrewritten โ Documents the new environment-variable table (APP_NAME,APP_URL,SLACK_WEBHOOK_URL,HATCHBOX_APP_ID+LOG_ID,HATCHBOX_SERVER_NAME,RAILS_ENV,DEPLOYMENT_ALERTS), the env-drivenlib/config.rb, the Config Not Available flow, the updatedruby-based file layout, and how to skip notifications viaDEPLOYMENT_ALERTS=false. โ #1608 - ๐
3. Features/CmAdminConfiguration.mdupdated โ Removed thedeployment_alertsconfig row and its section, replacing it with a pointer to theDEPLOYMENT_ALERTSenvironment variable. โ #1608 - ๐ Changelog and release metadata โ Added the
2026-10changelog entry, updated the changelog index, and refreshedstatic/releases.json. โ fad7db117
v8.0.14 (2026-10-01)โ
v8.0.14
Released: October 9, 2026
โ ๏ธ WARNING: Breaking Changes
The
deployment_alertscm-admin config accessor has been removed. Hatchbox deployment notifications are now controlled by theDEPLOYMENT_ALERTSenvironment variable. Any initializer that setsconfig.deployment_alertswill raiseNoMethodErrorand must be updated.
๐ WARNING: Migration Required
The
.hatchboxdeploy scripts are now fully environment-driven, so thedeploy-config/directory checksum has changed. Sync the updated config and set the new environment variables before your next deploy.bash bundle update cm-admin rake cm_admin:deploy_config:sync
Then commit the updated
deploy-config/folder before deploying โ Hatchbox picks it up from git, not from a boot-time copy. Also setAPP_NAMEandAPP_URL(and optionallyDEPLOYMENT_ALERTS=false) in your Hatchbox environment variables.
๐ Featuresโ
-
โก Lazy-loaded dashboard widgets via Turbo Frames โ Dashboard pages now render instantly with skeleton placeholders, and each widget (chart, metric card, table) fetches its content asynchronously from a dedicated endpoint (
GET /:dashboard_name/widget/:widget_index). Adds acm_dashboard_widgetcontroller action,collect_dashboard_widgets/collect_section_widgets/widget_nameview helpers, a new_dashboard_widgetpartial, and a.cm-dashboard-skeletonpulse animation. Section widgets on show pages remain backward compatible. โ #1579
๐ Bug Fixesโ
- ๐ฉน Misconfigured environments no longer send broken deploy notifications โ Previously a missing app name or URL produced a Slack notification with a blank app name and broken buttons. The scripts now detect blank required values (
APP_NAME,APP_URL,SLACK_WEBHOOK_URL) as soon as the config loads and post a single, explicit "config not available" notice naming the Hatchbox app, environment, and server, then exit cleanly. โ #1608
โจ Improvementsโ
- ๐ง Hatchbox deploy scripts are now fully env-driven โ
app_name,app_url,env_name,slack_webhook,deployment_alerts?, and the newserver_nameare read from environment variables instead ofCmAdmin.config,Rails.env, or app credentials. This decouples the copied.hatchboxscripts from gem internals and removes their dependency on values like thebe_urlcredential andproject_name. โ #1608 - ๐ Deploy hooks run under plain
rubyโ Hook scripts no longer boot Rails, and they source~/.asdf-varswhen present soHATCHBOX_SERVER_NAME/HATCHBOX_SERVER_IDare available per Hatchbox docs. โ #1608 - โฑ๏ธ HTTP timeouts on the Slack POST โ Open/read timeouts were added so a hung webhook can no longer stall a deploy step. โ #1608
- ๐ฌ Clearer config-unavailable notification โ The notice now includes environment and server lines plus an Environment Variables button that deep-links to the app's Hatchbox env-vars page (
https://hatchbox.io/apps/<APP_ID>/env_vars). โ #1608 - ๐ชต Simplified notification script error handling and logging โ Reduced branching and clearer log output in
hatchbox_notification.rb. โ #1608 - ๐งน Removed duplicate deployment config directory โ Cleaned up a redundant
deploy-config/copy in the gem source. โ #1608
โ ๏ธ Breaking Changesโ
-
๐ฅ
CmAdmin.config.deployment_alertsremoved โ The toggle is now theDEPLOYMENT_ALERTSenvironment variable. Remove the accessor from your initializer:ruby
config/initializers/cm_admin.rb โ DELETE THIS
CmAdmin.configure do |config| config.deployment_alerts = false end
and instead set it in your Hatchbox environment variables:
DEPLOYMENT_ALERTS=false
โ #1608
๐ Documentationโ
- ๐
4. Deployment/HatchboxScripts.mdrewritten โ Documents the new environment-variable table (APP_NAME,APP_URL,SLACK_WEBHOOK_URL,HATCHBOX_APP_ID+LOG_ID,HATCHBOX_SERVER_NAME,RAILS_ENV,DEPLOYMENT_ALERTS), the env-drivenlib/config.rb, the Config Not Available flow, the updatedruby-based file layout, and how to skip notifications viaDEPLOYMENT_ALERTS=false. โ #1608 - ๐
3. Features/CmAdminConfiguration.mdupdated โ Removed thedeployment_alertsconfig row and its section, replacing it with a pointer to theDEPLOYMENT_ALERTSenvironment variable. โ #1608 - ๐ Changelog and release metadata โ Added the
2026-10changelog entry, updated the changelog index, and refreshedstatic/releases.json. โ d5b1f948d
sidebar_position: 202610โ
Release Notes โ October 2026
v8.0.13 (2026-10-01)โ
-
Merge pull request #1579 from commutatus/CT-318 (defb59ec5)
-
Merge pull request #1622 from commutatus/fix/new-slack-changelog-structure (b257557c3)
-
feat(changelog): restructure Slack release notification format (cec992ffb)
-
Merge pull request #1620 from commutatus/fix/changelog-token-limit (8a21b3ff7)
-
docs: update changelog for v8.0.12 (02a809040)
-
fix(changelog): raise release notes output budget and bound prompt input (e8c479314)
-
refactor(dashboard): identify lazy widgets by generated id (97b8a53c1)
-
Merge branch 'main' of github.com:commutatus/cm-admin into CT-318 (5d3c0595b)
-
refactor(dashboard): address PR #1579 review feedback (18964c6f5)
-
feat(dashboard): add lazy loading for dashboard widgets via Turbo Frames (0afc287a0)