plutonium 0.60.4 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.claude/skills/plutonium/SKILL.md +19 -1
- data/.claude/skills/plutonium-app/SKILL.md +41 -0
- data/.claude/skills/plutonium-auth/SKILL.md +40 -0
- data/.claude/skills/plutonium-behavior/SKILL.md +47 -1
- data/.claude/skills/plutonium-kanban/SKILL.md +313 -0
- data/.claude/skills/plutonium-resource/SKILL.md +40 -0
- data/.claude/skills/plutonium-tenancy/SKILL.md +43 -0
- data/.claude/skills/plutonium-testing/SKILL.md +38 -0
- data/.claude/skills/plutonium-ui/SKILL.md +51 -0
- data/.claude/skills/plutonium-wizard/SKILL.md +469 -0
- data/.cliff.toml +6 -0
- data/.yarnrc.yml +7 -0
- data/Appraisals +3 -0
- data/CHANGELOG.md +558 -439
- data/CLAUDE.md +15 -7
- data/app/assets/plutonium.css +1 -1
- data/app/assets/plutonium.js +895 -193
- data/app/assets/plutonium.js.map +4 -4
- data/app/assets/plutonium.min.js +53 -53
- data/app/assets/plutonium.min.js.map +4 -4
- data/app/views/layouts/basic.html.erb +7 -0
- data/app/views/plutonium/_flash_toasts.html.erb +2 -46
- data/app/views/plutonium/_toast.html.erb +52 -0
- data/app/views/resource/_resource_kanban.html.erb +1 -0
- data/db/migrate/wizard/20260615000001_create_plutonium_wizard_sessions.rb +57 -0
- data/docs/.vitepress/config.ts +24 -0
- data/docs/guides/index.md +2 -0
- data/docs/guides/kanban.md +447 -0
- data/docs/guides/wizards.md +447 -0
- data/docs/public/images/guides/kanban-after-move.png +0 -0
- data/docs/public/images/guides/kanban-board-light.png +0 -0
- data/docs/public/images/guides/kanban-board.png +0 -0
- data/docs/public/images/guides/kanban-show-centered-modal.png +0 -0
- data/docs/public/images/guides/kanban-wip-toast.png +0 -0
- data/docs/public/images/guides/wizards-chooser.png +0 -0
- data/docs/public/images/guides/wizards-completed.png +0 -0
- data/docs/public/images/guides/wizards-index-action.png +0 -0
- data/docs/public/images/guides/wizards-repeater.png +0 -0
- data/docs/public/images/guides/wizards-review.png +0 -0
- data/docs/public/images/guides/wizards-step.png +0 -0
- data/docs/reference/behavior/policies.md +1 -1
- data/docs/reference/index.md +14 -0
- data/docs/reference/kanban/authorization.md +62 -0
- data/docs/reference/kanban/dsl.md +293 -0
- data/docs/reference/kanban/index.md +40 -0
- data/docs/reference/kanban/positioning.md +162 -0
- data/docs/reference/resource/definition.md +16 -0
- data/docs/reference/ui/forms.md +36 -0
- data/docs/reference/ui/pages.md +2 -0
- data/docs/reference/wizard/anchoring-resume.md +194 -0
- data/docs/reference/wizard/dsl.md +332 -0
- data/docs/reference/wizard/index.md +33 -0
- data/docs/reference/wizard/one-time.md +129 -0
- data/docs/reference/wizard/registration-launch.md +177 -0
- data/docs/reference/wizard/storage-config.md +151 -0
- data/docs/superpowers/plans/2026-06-14-form-sectioning.md +2 -2
- data/docs/superpowers/plans/2026-06-15-wizard-dsl.md +1619 -0
- data/docs/superpowers/plans/2026-06-15-wizard-dsl.md.tasks.json +68 -0
- data/docs/superpowers/plans/2026-06-26-kanban-dsl.md +1128 -0
- data/docs/superpowers/plans/2026-06-26-kanban-dsl.md.tasks.json +24 -0
- data/docs/superpowers/specs/2026-06-15-wizard-dsl-design.md +836 -0
- data/docs/superpowers/specs/2026-06-15-wizard-dsl-examples.rb +245 -0
- data/docs/superpowers/specs/2026-06-17-wizard-relaunch-prompt-design.md +86 -0
- data/docs/superpowers/specs/2026-06-18-wizard-attachments-design.md +101 -0
- data/docs/superpowers/specs/2026-06-18-wizard-hosting-design.md +220 -0
- data/docs/superpowers/specs/2026-06-26-kanban-dsl-design.md +388 -0
- data/gemfiles/postgres.gemfile +8 -0
- data/gemfiles/postgres.gemfile.lock +321 -0
- data/gemfiles/rails_7.gemfile +1 -0
- data/gemfiles/rails_7.gemfile.lock +1 -1
- data/gemfiles/rails_8.0.gemfile +1 -0
- data/gemfiles/rails_8.0.gemfile.lock +1 -1
- data/gemfiles/rails_8.1.gemfile +1 -0
- data/gemfiles/rails_8.1.gemfile.lock +14 -1
- data/lib/generators/pu/invites/templates/packages/invites/app/controllers/invites/user_invitations_controller.rb.tt +6 -1
- data/lib/plutonium/action/base.rb +9 -0
- data/lib/plutonium/auth/rodauth.rb +1 -2
- data/lib/plutonium/configuration.rb +4 -0
- data/lib/plutonium/core/controller.rb +20 -1
- data/lib/plutonium/definition/base.rb +25 -0
- data/lib/plutonium/definition/form_layout.rb +54 -35
- data/lib/plutonium/definition/index_views.rb +54 -1
- data/lib/plutonium/definition/wizards.rb +209 -0
- data/lib/plutonium/invites/concerns/invite_token.rb +9 -0
- data/lib/plutonium/invites/concerns/invite_user.rb +9 -0
- data/lib/plutonium/invites/controller.rb +4 -1
- data/lib/plutonium/kanban/action.rb +7 -0
- data/lib/plutonium/kanban/board.rb +40 -0
- data/lib/plutonium/kanban/broadcaster.rb +54 -0
- data/lib/plutonium/kanban/column.rb +69 -0
- data/lib/plutonium/kanban/context.rb +15 -0
- data/lib/plutonium/kanban/dsl.rb +71 -0
- data/lib/plutonium/kanban/grouping.rb +51 -0
- data/lib/plutonium/kanban/positioning.rb +75 -0
- data/lib/plutonium/kanban.rb +11 -0
- data/lib/plutonium/migrations.rb +40 -0
- data/lib/plutonium/positioning.rb +146 -0
- data/lib/plutonium/railtie.rb +33 -0
- data/lib/plutonium/resource/controller.rb +2 -0
- data/lib/plutonium/resource/controllers/crud_actions.rb +1 -1
- data/lib/plutonium/resource/controllers/kanban_actions.rb +455 -0
- data/lib/plutonium/resource/controllers/wizard_actions.rb +165 -0
- data/lib/plutonium/resource/policy.rb +8 -0
- data/lib/plutonium/routing/mapper_extensions.rb +44 -0
- data/lib/plutonium/routing/wizard_registration.rb +289 -0
- data/lib/plutonium/ui/display/components/attachment.rb +2 -2
- data/lib/plutonium/ui/display/resource.rb +17 -12
- data/lib/plutonium/ui/form/base.rb +19 -5
- data/lib/plutonium/ui/form/components/password.rb +126 -0
- data/lib/plutonium/ui/form/components/uppy.rb +8 -5
- data/lib/plutonium/ui/form/options/inferred_types.rb +20 -0
- data/lib/plutonium/ui/form/resource.rb +1 -1
- data/lib/plutonium/ui/form/wizard.rb +63 -0
- data/lib/plutonium/ui/grid/card.rb +16 -5
- data/lib/plutonium/ui/kanban/card.rb +67 -0
- data/lib/plutonium/ui/kanban/color_dot.rb +36 -0
- data/lib/plutonium/ui/kanban/column.rb +324 -0
- data/lib/plutonium/ui/kanban/resource.rb +212 -0
- data/lib/plutonium/ui/layout/resource_layout.rb +7 -1
- data/lib/plutonium/ui/modal/base.rb +30 -3
- data/lib/plutonium/ui/modal/centered.rb +5 -2
- data/lib/plutonium/ui/page/index.rb +1 -0
- data/lib/plutonium/ui/page/show.rb +23 -0
- data/lib/plutonium/ui/page/wizard.rb +371 -0
- data/lib/plutonium/ui/page/wizard_chooser.rb +97 -0
- data/lib/plutonium/ui/page/wizard_completed.rb +86 -0
- data/lib/plutonium/ui/table/base.rb +1 -1
- data/lib/plutonium/ui/table/components/view_switcher.rb +2 -1
- data/lib/plutonium/ui/wizard/review.rb +196 -0
- data/lib/plutonium/ui/wizard/stepper.rb +122 -0
- data/lib/plutonium/ui/wizard/summary_display.rb +59 -0
- data/lib/plutonium/version.rb +1 -1
- data/lib/plutonium/wizard/attachment_data.rb +42 -0
- data/lib/plutonium/wizard/attachments.rb +226 -0
- data/lib/plutonium/wizard/base.rb +216 -0
- data/lib/plutonium/wizard/base_controller.rb +31 -0
- data/lib/plutonium/wizard/configuration.rb +42 -0
- data/lib/plutonium/wizard/controller.rb +162 -0
- data/lib/plutonium/wizard/data.rb +134 -0
- data/lib/plutonium/wizard/driving.rb +639 -0
- data/lib/plutonium/wizard/dsl.rb +336 -0
- data/lib/plutonium/wizard/errors.rb +27 -0
- data/lib/plutonium/wizard/field_capture.rb +157 -0
- data/lib/plutonium/wizard/field_importer.rb +208 -0
- data/lib/plutonium/wizard/gate.rb +171 -0
- data/lib/plutonium/wizard/instance_key.rb +97 -0
- data/lib/plutonium/wizard/lazy_persisted.rb +77 -0
- data/lib/plutonium/wizard/resume.rb +250 -0
- data/lib/plutonium/wizard/review_step.rb +48 -0
- data/lib/plutonium/wizard/route_resolution.rb +40 -0
- data/lib/plutonium/wizard/runner.rb +684 -0
- data/lib/plutonium/wizard/session.rb +53 -0
- data/lib/plutonium/wizard/state.rb +35 -0
- data/lib/plutonium/wizard/step.rb +61 -0
- data/lib/plutonium/wizard/step_adapter.rb +103 -0
- data/lib/plutonium/wizard/store/active_record.rb +174 -0
- data/lib/plutonium/wizard/store/base.rb +42 -0
- data/lib/plutonium/wizard/store/memory.rb +44 -0
- data/lib/plutonium/wizard/sweep_job.rb +76 -0
- data/lib/plutonium/wizard.rb +86 -0
- data/lib/plutonium.rb +5 -0
- data/lib/rodauth/features/case_insensitive_login.rb +1 -1
- data/lib/tasks/release.rake +144 -191
- data/package.json +3 -3
- data/src/css/components.css +132 -0
- data/src/js/controllers/attachment_input_controller.js +15 -1
- data/src/js/controllers/dirty_form_guard_controller.js +155 -27
- data/src/js/controllers/kanban_controller.js +330 -0
- data/src/js/controllers/password_sentinel_controller.js +39 -0
- data/src/js/controllers/register_controllers.js +6 -0
- data/src/js/controllers/remote_modal_controller.js +10 -0
- data/src/js/controllers/row_click_controller.js +14 -1
- data/src/js/controllers/wizard_controller.js +54 -0
- data/src/js/turbo/turbo_confirm.js +1 -1
- data/yarn.lock +272 -283
- metadata +101 -2
data/CHANGELOG.md
CHANGED
|
@@ -1,645 +1,726 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.61.0] - 2026-06-30
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- Animate the dialog scale pop via the `scale` property
|
|
10
|
+
- Normalize mixed-case logins to lowercase on input
|
|
11
|
+
- Normalize invite email to lowercase at the source
|
|
12
|
+
- Downcase login in signup handler's existing-account guard
|
|
13
|
+
- Rescue DeleteRestrictionError in CRUD destroy
|
|
14
|
+
- Keep modal dialogs transform-free so fixed overlays escape the panel
|
|
15
|
+
- Render the classic shell sidebar again
|
|
16
|
+
- Mount uppy Dashboard into the modal dialog so it renders above it
|
|
17
|
+
- Coerce ActiveStorage::Filename to String for HTML title attributes ([#66](https://github.com/radioactive-labs/plutonium-core/issues/66))
|
|
18
|
+
- Bump dompurify to 3.4.11 and esbuild to 0.28.1 to clear npm audit
|
|
19
|
+
- Clear npm Dependabot alerts (lodash 4.18.1 + dev-tree dedupe)
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
- Omit empty Details tab when no fields are permitted
|
|
24
|
+
- Mask password/secret fields so the stored value never reaches the DOM
|
|
25
|
+
- Plutonium::Wizard — declarative multi-step wizard subsystem ([#62](https://github.com/radioactive-labs/plutonium-core/issues/62))
|
|
26
|
+
- Kanban board DSL — first-class index view with drag-to-move ([#63](https://github.com/radioactive-labs/plutonium-core/issues/63))
|
|
27
|
+
|
|
28
|
+
### Miscellaneous Tasks
|
|
29
|
+
|
|
30
|
+
- Make releasing laptop-driven and race-free
|
|
31
|
+
- Review before commit — prepare stages, publish commits
|
|
32
|
+
|
|
33
|
+
### Refactoring
|
|
34
|
+
|
|
35
|
+
- Drop the current_<name> alias from the rodauth mixin
|
|
36
|
+
|
|
37
|
+
### Wizard
|
|
38
|
+
|
|
39
|
+
- Docs accuracy + completeness audit, plus a per-field Shrine uploader for attachments ([#64](https://github.com/radioactive-labs/plutonium-core/issues/64))
|
|
40
|
+
|
|
41
|
+
## [0.60.5] - 2026-06-30
|
|
42
|
+
|
|
43
|
+
### 🐛 Bug Fixes
|
|
44
|
+
|
|
45
|
+
- *(ui)* Coerce ActiveStorage::Filename to String for HTML title attributes
|
|
46
|
+
|
|
47
|
+
### ⚙️ Miscellaneous Tasks
|
|
48
|
+
|
|
49
|
+
- Update yarn.lock and .yarnrc.yml after yarn install
|
|
50
|
+
|
|
1
51
|
## [0.60.4] - 2026-06-15
|
|
2
52
|
|
|
3
|
-
###
|
|
53
|
+
### Features
|
|
54
|
+
|
|
55
|
+
- Drop the section divider rule, keep the accent bar
|
|
4
56
|
|
|
5
|
-
- *(layout)* Drop the section divider rule, keep the accent bar
|
|
6
57
|
## [0.60.3] - 2026-06-15
|
|
7
58
|
|
|
8
|
-
###
|
|
59
|
+
### Features
|
|
60
|
+
|
|
61
|
+
- Drop form_layout sections that resolve to zero fields
|
|
62
|
+
- Refine form_layout section header styling
|
|
9
63
|
|
|
10
|
-
|
|
11
|
-
- *(layout)* Refine form_layout section header styling
|
|
64
|
+
### Refactoring
|
|
12
65
|
|
|
13
|
-
|
|
66
|
+
- Move engine shell to Portal::Engine with live cascade
|
|
14
67
|
|
|
15
|
-
- *(layout)* Move engine shell to Portal::Engine with live cascade
|
|
16
68
|
## [0.60.2] - 2026-06-15
|
|
17
69
|
|
|
18
|
-
###
|
|
70
|
+
### Features
|
|
71
|
+
|
|
72
|
+
- Resolve shell across global, engine, and controller tiers
|
|
19
73
|
|
|
20
|
-
- *(layout)* Resolve shell across global, engine, and controller tiers
|
|
21
74
|
## [0.60.1] - 2026-06-15
|
|
22
75
|
|
|
23
|
-
###
|
|
76
|
+
### Bug Fixes
|
|
24
77
|
|
|
25
|
-
-
|
|
78
|
+
- Skip section fields not in the permitted set instead of raising
|
|
26
79
|
|
|
27
|
-
###
|
|
80
|
+
### Features
|
|
81
|
+
|
|
82
|
+
- First-class railless portal support
|
|
28
83
|
|
|
29
|
-
- *(forms)* Skip section fields not in the permitted set instead of raising
|
|
30
84
|
## [0.60.0] - 2026-06-14
|
|
31
85
|
|
|
32
|
-
###
|
|
86
|
+
### Features
|
|
87
|
+
|
|
88
|
+
- Add resend-invite action to rodauth admin
|
|
89
|
+
- Form sectioning DSL (form_layout / section / ungrouped) ([#61](https://github.com/radioactive-labs/plutonium-core/issues/61))
|
|
33
90
|
|
|
34
|
-
- *(generators)* Add resend-invite action to rodauth admin
|
|
35
|
-
- *(forms)* Form sectioning DSL (form_layout / section / ungrouped) (#61)
|
|
36
91
|
## [0.59.0] - 2026-06-13
|
|
37
92
|
|
|
38
|
-
###
|
|
93
|
+
### Bug Fixes
|
|
39
94
|
|
|
40
|
-
-
|
|
95
|
+
- Configure solid_errors reading connection and env lookup
|
|
96
|
+
- Resolve association filter class via resource_class reflection
|
|
41
97
|
|
|
42
|
-
###
|
|
98
|
+
### Features
|
|
99
|
+
|
|
100
|
+
- Add built-in policy-gated CSV export
|
|
43
101
|
|
|
44
|
-
- *(generators)* Configure solid_errors reading connection and env lookup
|
|
45
|
-
- *(query)* Resolve association filter class via resource_class reflection
|
|
46
102
|
## [0.58.1] - 2026-06-10
|
|
47
103
|
|
|
48
|
-
###
|
|
104
|
+
### Bug Fixes
|
|
105
|
+
|
|
106
|
+
- Prevent pu-rail-pinned persisting on non-rail pages
|
|
49
107
|
|
|
50
|
-
- *(ui/layout)* Prevent pu-rail-pinned persisting on non-rail pages
|
|
51
108
|
## [0.58.0] - 2026-06-10
|
|
52
109
|
|
|
53
|
-
###
|
|
110
|
+
### Bug Fixes
|
|
111
|
+
|
|
112
|
+
- Set url_options directly on ActionMailer::Base instead of config
|
|
113
|
+
- Short-circuit call with failure when validation fails
|
|
114
|
+
- Pre-populate extraction record so conditioned selects resolve correctly
|
|
115
|
+
- Use after_commit to avoid orphaned email jobs on rollback
|
|
54
116
|
|
|
55
|
-
- *(rodauth)* Set url_options directly on ActionMailer::Base instead of config
|
|
56
|
-
- *(interaction)* Short-circuit call with failure when validation fails
|
|
57
|
-
- *(form)* Pre-populate extraction record so conditioned selects resolve correctly
|
|
58
|
-
- *(invites)* Use after_commit to avoid orphaned email jobs on rollback
|
|
59
117
|
## [0.57.0] - 2026-06-09
|
|
60
118
|
|
|
61
|
-
###
|
|
119
|
+
### Bug Fixes
|
|
62
120
|
|
|
63
|
-
-
|
|
121
|
+
- Guard tailwind prerequisite and fix landing page command
|
|
122
|
+
- Guard against nil current_scoped_entity in remember_scoped_entity
|
|
123
|
+
- Use dynamic viewport height to prevent clipping on mobile
|
|
64
124
|
|
|
65
|
-
###
|
|
125
|
+
### Features
|
|
66
126
|
|
|
67
|
-
-
|
|
68
|
-
- *(entity_scoping)* Guard against nil current_scoped_entity in remember_scoped_entity
|
|
69
|
-
- *(ui/slideover)* Use dynamic viewport height to prevent clipping on mobile
|
|
127
|
+
- Add display-only condition: to scopes
|
|
70
128
|
|
|
71
|
-
###
|
|
129
|
+
### Miscellaneous Tasks
|
|
130
|
+
|
|
131
|
+
- Add skill sync to plutonium template and use conventional commits
|
|
72
132
|
|
|
73
|
-
- *(templates)* Add skill sync to plutonium template and use conventional commits
|
|
74
133
|
## [0.56.3] - 2026-06-07
|
|
75
134
|
|
|
76
|
-
###
|
|
135
|
+
### Bug Fixes
|
|
136
|
+
|
|
137
|
+
- Use dynamic viewport height so mobile rail toggle stays visible
|
|
138
|
+
- Link icon rail logo to home
|
|
139
|
+
- Default icon rail to pinned
|
|
140
|
+
- Let scopes bar scroll horizontally on small screens
|
|
77
141
|
|
|
78
|
-
- *(ui/sidebar)* Use dynamic viewport height so mobile rail toggle stays visible
|
|
79
|
-
- *(ui/sidebar)* Link icon rail logo to home
|
|
80
|
-
- *(ui/sidebar)* Default icon rail to pinned
|
|
81
|
-
- *(ui/table)* Let scopes bar scroll horizontally on small screens
|
|
82
142
|
## [0.56.2] - 2026-06-05
|
|
83
143
|
|
|
84
|
-
###
|
|
144
|
+
### Bug Fixes
|
|
145
|
+
|
|
146
|
+
- Run skills sync in unbundled env
|
|
147
|
+
- Prevent large page numbers from overflowing buttons
|
|
85
148
|
|
|
86
|
-
- *(generators/update)* Run skills sync in unbundled env
|
|
87
|
-
- *(ui/pagination)* Prevent large page numbers from overflowing buttons
|
|
88
149
|
## [0.56.1] - 2026-06-05
|
|
89
150
|
|
|
90
|
-
###
|
|
151
|
+
### Bug Fixes
|
|
91
152
|
|
|
92
|
-
-
|
|
153
|
+
- Version-adapt kitchen_sinks migration
|
|
93
154
|
|
|
94
|
-
###
|
|
155
|
+
### Documentation
|
|
95
156
|
|
|
96
|
-
-
|
|
157
|
+
- Recommend db:prepare, firm up README, document conditional actions
|
|
97
158
|
|
|
98
|
-
###
|
|
159
|
+
### Features
|
|
160
|
+
|
|
161
|
+
- Add display-only condition: to actions
|
|
99
162
|
|
|
100
|
-
- Recommend db:prepare, firm up README, document conditional actions
|
|
101
163
|
## [0.56.0] - 2026-06-05
|
|
102
164
|
|
|
103
|
-
###
|
|
165
|
+
### Bug Fixes
|
|
104
166
|
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
167
|
+
- Sync skills in a fresh process; pin post-install notice to 0.49.0
|
|
168
|
+
- Native multi-selects render at a usable height
|
|
169
|
+
- Dropdown menu teleports to <body> to escape overflow clipping
|
|
170
|
+
- Force :resources route_type for has_many nested routes
|
|
171
|
+
- Record-scoped commit URL for actions with record_action: false
|
|
172
|
+
- Serialize JSON values via as_json (ISO 8601 datetimes)
|
|
173
|
+
- Add reading role to Rails Pulse connects_to config
|
|
174
|
+
- Bind subject during interaction param extraction
|
|
175
|
+
- Dirty-form-guard tracks edits via first-interaction baseline
|
|
176
|
+
- Give the JSON form input dark-mode styling
|
|
110
177
|
|
|
111
|
-
###
|
|
178
|
+
### Features
|
|
112
179
|
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
- *(api)* Serialize JSON values via as_json (ISO 8601 datetimes)
|
|
119
|
-
- *(generators)* Add reading role to Rails Pulse connects_to config
|
|
120
|
-
- *(actions)* Bind subject during interaction param extraction
|
|
121
|
-
- *(ui)* Dirty-form-guard tracks edits via first-interaction baseline
|
|
122
|
-
- *(ui)* Give the JSON form input dark-mode styling
|
|
180
|
+
- Auto-rendered components for boolean, enum & money fields
|
|
181
|
+
- Add pu:lite:tune and pu:lite:maintenance for SQLite tuning + maintenance
|
|
182
|
+
- Sidebar menu items accept arbitrary link attributes
|
|
183
|
+
- Restore deleted nested rows + shared, polished removed bar
|
|
184
|
+
- Type-aware grid cards + overhaul KitchenSink dummy resource
|
|
123
185
|
|
|
124
|
-
###
|
|
186
|
+
### Miscellaneous Tasks
|
|
125
187
|
|
|
126
|
-
-
|
|
127
|
-
- *(dummy)* Add KitchenSink resource exercising every input/display type
|
|
188
|
+
- Sync appraisal gemfile.lock files to v0.55.0
|
|
128
189
|
|
|
129
|
-
###
|
|
190
|
+
### Testing
|
|
191
|
+
|
|
192
|
+
- Fix stale generator assertions and drop committed dummy schema
|
|
193
|
+
- Add KitchenSink resource exercising every input/display type
|
|
130
194
|
|
|
131
|
-
- Sync appraisal gemfile.lock files to v0.55.0
|
|
132
195
|
## [0.55.0] - 2026-06-03
|
|
133
196
|
|
|
134
|
-
###
|
|
197
|
+
### Bug Fixes
|
|
135
198
|
|
|
136
|
-
-
|
|
199
|
+
- Keep modal backdrop static to smooth dialog dismiss
|
|
137
200
|
|
|
138
|
-
###
|
|
201
|
+
### Features
|
|
139
202
|
|
|
140
|
-
-
|
|
203
|
+
- Structured_input — classless structured & repeater inputs (resources + interactions) ([#60](https://github.com/radioactive-labs/plutonium-core/issues/60))
|
|
141
204
|
|
|
142
|
-
###
|
|
205
|
+
### Testing
|
|
206
|
+
|
|
207
|
+
- Land authenticated users on the entity-scoped org portal
|
|
208
|
+
- Serve the Organization resource in the org portal
|
|
143
209
|
|
|
144
|
-
- *(dummy)* Land authenticated users on the entity-scoped org portal
|
|
145
|
-
- *(dummy)* Serve the Organization resource in the org portal
|
|
146
210
|
## [0.54.0] - 2026-06-01
|
|
147
211
|
|
|
148
|
-
###
|
|
212
|
+
### Bug Fixes
|
|
149
213
|
|
|
150
|
-
-
|
|
214
|
+
- Match Plutonium::Engine by name to survive dev reload
|
|
215
|
+
- Carry only an explicit return_to on resource forms
|
|
216
|
+
- Ignore bubbled file-input cancel in modal dialogs
|
|
217
|
+
- Cap icon-rail flyout to the viewport height
|
|
151
218
|
|
|
152
|
-
###
|
|
219
|
+
### Features
|
|
153
220
|
|
|
154
|
-
-
|
|
155
|
-
- *(ui)* Carry only an explicit return_to on resource forms
|
|
156
|
-
- *(ui)* Ignore bubbled file-input cancel in modal dialogs
|
|
157
|
-
- *(ui)* Cap icon-rail flyout to the viewport height
|
|
221
|
+
- Refine file-input height and required-marker theming
|
|
158
222
|
|
|
159
|
-
###
|
|
223
|
+
### Miscellaneous Tasks
|
|
160
224
|
|
|
161
|
-
-
|
|
225
|
+
- Rebuild bundled assets
|
|
162
226
|
|
|
163
|
-
###
|
|
227
|
+
### Refactoring
|
|
164
228
|
|
|
165
|
-
-
|
|
229
|
+
- Render flash via self-contained component classes
|
|
166
230
|
|
|
167
|
-
###
|
|
231
|
+
### Testing
|
|
232
|
+
|
|
233
|
+
- Characterize nested resource and interaction form rendering
|
|
168
234
|
|
|
169
|
-
- *(assets)* Rebuild bundled assets
|
|
170
235
|
## [0.53.1] - 2026-05-31
|
|
171
236
|
|
|
172
|
-
###
|
|
237
|
+
### Bug Fixes
|
|
238
|
+
|
|
239
|
+
- Tolerate non-Plutonium engines during route reload
|
|
173
240
|
|
|
174
|
-
- *(routing)* Tolerate non-Plutonium engines during route reload
|
|
175
241
|
## [0.53.0] - 2026-05-31
|
|
176
242
|
|
|
177
|
-
###
|
|
243
|
+
### Bug Fixes
|
|
178
244
|
|
|
179
|
-
-
|
|
245
|
+
- Correct broken cross-page anchors in guides
|
|
246
|
+
- Retract incorrect "never super" guidance in relation_scope
|
|
247
|
+
- Correct scoped-URL shape in multi-tenancy docs
|
|
248
|
+
- Match change_password_notify mailer template name
|
|
180
249
|
|
|
181
|
-
###
|
|
250
|
+
### Features
|
|
182
251
|
|
|
183
|
-
-
|
|
184
|
-
- *(docs)* Retract incorrect "never super" guidance in relation_scope
|
|
185
|
-
- *(docs)* Correct scoped-URL shape in multi-tenancy docs
|
|
186
|
-
- *(rodauth)* Match change_password_notify mailer template name
|
|
252
|
+
- Add Avatar component with Navii fallback ([#59](https://github.com/radioactive-labs/plutonium-core/issues/59))
|
|
187
253
|
|
|
188
|
-
###
|
|
254
|
+
### Refactoring
|
|
255
|
+
|
|
256
|
+
- Remove dead view helpers superseded by Phlex components
|
|
189
257
|
|
|
190
|
-
- *(helpers)* Remove dead view helpers superseded by Phlex components
|
|
191
258
|
## [0.52.0] - 2026-05-21
|
|
192
259
|
|
|
193
|
-
###
|
|
260
|
+
### Bug Fixes
|
|
194
261
|
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
-
|
|
262
|
+
- Use inclusion validation for required booleans
|
|
263
|
+
- Warn on failed yarn add instead of silently continuing
|
|
264
|
+
- Let StopWriting terminals scroll horizontally instead of overflowing the column
|
|
265
|
+
- Drop misleading 15-min claim — hero CTA → 'Tutorial', getting-started title → 'Learn Plutonium by building'
|
|
266
|
+
- Tutorial walkthrough + reference audit ([#57](https://github.com/radioactive-labs/plutonium-core/issues/57))
|
|
267
|
+
- Scope form ids per turbo frame to prevent stream-replace collisions
|
|
268
|
+
- Hide secure_association "+" inside secondary modal
|
|
269
|
+
- Dedupe pre_submit hidden field on repeat change events
|
|
270
|
+
- Form error alert margin + include model name in New/Edit page titles
|
|
204
271
|
|
|
205
|
-
###
|
|
272
|
+
### Miscellaneous Tasks
|
|
273
|
+
|
|
274
|
+
- Refresh rails-8.1 gemfile.lock for v0.51.0
|
|
206
275
|
|
|
207
|
-
- *(appraisal)* Refresh rails-8.1 gemfile.lock for v0.51.0
|
|
208
276
|
## [0.51.0] - 2026-05-14
|
|
209
277
|
|
|
210
|
-
###
|
|
278
|
+
### Bug Fixes
|
|
211
279
|
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
280
|
+
- Stabilize generator test suite against hangs
|
|
281
|
+
- Validate association SGIDs against full authz scope
|
|
282
|
+
- Keep yarn out of the parent TTY
|
|
215
283
|
|
|
216
|
-
###
|
|
284
|
+
### Documentation
|
|
217
285
|
|
|
218
|
-
-
|
|
219
|
-
- *(form)* Validate association SGIDs against full authz scope
|
|
220
|
-
- *(release)* Keep yarn out of the parent TTY
|
|
286
|
+
- Restructure into 7 functional areas + rewrite guides as task recipes
|
|
221
287
|
|
|
222
|
-
###
|
|
288
|
+
### Features
|
|
223
289
|
|
|
224
|
-
-
|
|
225
|
-
-
|
|
290
|
+
- Stack secondary modal for inline "+" on associations
|
|
291
|
+
- Json/jsonb input component with raw-value support
|
|
292
|
+
- Typeahead endpoint for resource form inputs and filters ([#55](https://github.com/radioactive-labs/plutonium-core/issues/55))
|
|
226
293
|
|
|
227
|
-
###
|
|
294
|
+
### Miscellaneous Tasks
|
|
228
295
|
|
|
229
|
-
-
|
|
296
|
+
- Bump frontend deps to clear Dependabot alerts
|
|
297
|
+
- Bump appraisal lockfiles to 0.50.0
|
|
298
|
+
- Drop dead pin_shell_to_classic hook
|
|
230
299
|
|
|
231
|
-
###
|
|
300
|
+
### Refactoring
|
|
301
|
+
|
|
302
|
+
- Rename views DSL to index_views
|
|
303
|
+
- Compact and merge 19 skills into 8
|
|
232
304
|
|
|
233
|
-
- Bump appraisal lockfiles to 0.50.0
|
|
234
|
-
- *(generators/update)* Drop dead pin_shell_to_classic hook
|
|
235
305
|
## [0.50.0] - 2026-05-11
|
|
236
306
|
|
|
237
|
-
###
|
|
307
|
+
### Bug Fixes
|
|
238
308
|
|
|
239
|
-
-
|
|
309
|
+
- Suppress label and chrome for hidden fields
|
|
310
|
+
- Inject recurring tasks under env blocks
|
|
240
311
|
|
|
241
|
-
###
|
|
312
|
+
### Features
|
|
313
|
+
|
|
314
|
+
- Style WebKit autofill on .pu-input variants
|
|
242
315
|
|
|
243
|
-
- *(ui/form)* Suppress label and chrome for hidden fields
|
|
244
|
-
- *(generators/rails_pulse)* Inject recurring tasks under env blocks
|
|
245
316
|
## [0.49.1] - 2026-05-06
|
|
246
317
|
|
|
247
|
-
###
|
|
318
|
+
### Bug Fixes
|
|
248
319
|
|
|
249
|
-
-
|
|
320
|
+
- Scope parent association only to matching relations
|
|
321
|
+
- Preserve sidebar scroll across Turbo navigations
|
|
322
|
+
- Add invite_entity_attribute hook for non-:entity invite models
|
|
323
|
+
- Restore default layout on direct loads
|
|
324
|
+
- Unblock acceptance + non-importmap apps
|
|
325
|
+
- Force text/html on failure response
|
|
326
|
+
- Position calendar correctly inside modal dialogs
|
|
250
327
|
|
|
251
|
-
###
|
|
328
|
+
### Features
|
|
329
|
+
|
|
330
|
+
- Support multiple invite models per app
|
|
252
331
|
|
|
253
|
-
- *(policy)* Scope parent association only to matching relations
|
|
254
|
-
- *(ui)* Preserve sidebar scroll across Turbo navigations
|
|
255
|
-
- *(invites)* Add invite_entity_attribute hook for non-:entity invite models
|
|
256
|
-
- *(interactive_actions)* Restore default layout on direct loads
|
|
257
|
-
- *(invites)* Unblock acceptance + non-importmap apps
|
|
258
|
-
- *(interactive_actions)* Force text/html on failure response
|
|
259
|
-
- *(flatpickr)* Position calendar correctly inside modal dialogs
|
|
260
332
|
## [0.49.0] - 2026-05-04
|
|
261
333
|
|
|
262
|
-
###
|
|
334
|
+
### Bug Fixes
|
|
263
335
|
|
|
264
|
-
-
|
|
265
|
-
-
|
|
266
|
-
-
|
|
267
|
-
- *(generators)* Flesh out rails_pulse initializer template
|
|
336
|
+
- Return clean 403 from non-HTML unauthorized handler
|
|
337
|
+
- Align pu:lite:rails_pulse with v0.3 schema flow
|
|
338
|
+
- Prefer main_app.root_path over login_redirect
|
|
268
339
|
|
|
269
|
-
###
|
|
340
|
+
### Features
|
|
270
341
|
|
|
271
|
-
-
|
|
272
|
-
-
|
|
273
|
-
-
|
|
342
|
+
- Add `pu:gem:actual_db_schema` and wire into app template
|
|
343
|
+
- Add auto mode to color mode selector
|
|
344
|
+
- Render color mode selector on rodauth layout
|
|
345
|
+
- Flesh out rails_pulse initializer template
|
|
274
346
|
|
|
275
|
-
###
|
|
347
|
+
### Miscellaneous Tasks
|
|
276
348
|
|
|
277
|
-
-
|
|
349
|
+
- Rename :client_max_limit to :max_limit
|
|
350
|
+
- Run appraisals
|
|
278
351
|
|
|
279
|
-
###
|
|
352
|
+
### Refactoring
|
|
353
|
+
|
|
354
|
+
- Rename entity scope prefix from `_scope` to `_scoped`
|
|
280
355
|
|
|
281
|
-
- *(pagy)* Rename :client_max_limit to :max_limit
|
|
282
|
-
- Run appraisals
|
|
283
356
|
## [0.48.0] - 2026-04-16
|
|
284
357
|
|
|
285
|
-
###
|
|
358
|
+
### Bug Fixes
|
|
286
359
|
|
|
287
|
-
-
|
|
360
|
+
- Respect `confirmation: false` on interactive actions
|
|
288
361
|
|
|
289
|
-
###
|
|
362
|
+
### Features
|
|
363
|
+
|
|
364
|
+
- Preserve scroll by emitting refresh when redirect target matches referer
|
|
290
365
|
|
|
291
|
-
|
|
366
|
+
### Testing
|
|
292
367
|
|
|
293
|
-
|
|
368
|
+
- Browser coverage for Turbo refresh + scroll preservation
|
|
294
369
|
|
|
295
|
-
- *(system)* Browser coverage for Turbo refresh + scroll preservation
|
|
296
370
|
## [0.47.0] - 2026-04-15
|
|
297
371
|
|
|
298
|
-
###
|
|
372
|
+
### Features
|
|
299
373
|
|
|
300
|
-
-
|
|
301
|
-
-
|
|
374
|
+
- Add `interaction:` kwarg to resource_url_for
|
|
375
|
+
- Add Plutonium::Testing module, generators, skill, docs, and migrate in-repo tests
|
|
302
376
|
|
|
303
|
-
###
|
|
377
|
+
### Miscellaneous Tasks
|
|
304
378
|
|
|
305
379
|
- Update yarn
|
|
380
|
+
|
|
306
381
|
## [0.46.0] - 2026-04-11
|
|
307
382
|
|
|
308
|
-
###
|
|
383
|
+
### Bug Fixes
|
|
309
384
|
|
|
310
|
-
-
|
|
311
|
-
-
|
|
312
|
-
-
|
|
385
|
+
- Resolve scoped entity class lazily to survive autoreload
|
|
386
|
+
- Render page title in layout, drop per-view h1s
|
|
387
|
+
- Use derived user association in current_membership
|
|
388
|
+
- Redirect to login after verification email sent
|
|
313
389
|
|
|
314
|
-
###
|
|
390
|
+
### Documentation
|
|
315
391
|
|
|
316
|
-
-
|
|
317
|
-
-
|
|
318
|
-
-
|
|
319
|
-
- *(generators/rodauth)* Redirect to login after verification email sent
|
|
392
|
+
- Clarify generator gotchas for installation, rodauth, and unattended runs
|
|
393
|
+
- Comprehensive Plutonium skills overhaul
|
|
394
|
+
- Document nested_attributes gotchas in policy and definition
|
|
320
395
|
|
|
321
|
-
###
|
|
396
|
+
### Features
|
|
322
397
|
|
|
323
|
-
-
|
|
398
|
+
- Default profile model to {UserModel}Profile
|
|
399
|
+
- Sync skills during pu:core:update if plutonium skill is installed
|
|
400
|
+
- Disable Active Storage railtie and include ActiveShrine::Model
|
|
324
401
|
|
|
325
|
-
###
|
|
402
|
+
### Miscellaneous Tasks
|
|
326
403
|
|
|
327
|
-
-
|
|
328
|
-
- *(skills)* Comprehensive Plutonium skills overhaul
|
|
329
|
-
- *(skills)* Document nested_attributes gotchas in policy and definition
|
|
404
|
+
- Update test lockfiles
|
|
330
405
|
|
|
331
|
-
###
|
|
406
|
+
### Refactoring
|
|
407
|
+
|
|
408
|
+
- Add inject_into_concerns_controller to merge included blocks
|
|
332
409
|
|
|
333
|
-
- Update test lockfiles
|
|
334
410
|
## [0.45.3] - 2026-04-07
|
|
335
411
|
|
|
336
|
-
###
|
|
412
|
+
### Bug Fixes
|
|
413
|
+
|
|
414
|
+
- Use Pagy::OPTIONS instead of frozen DEFAULT
|
|
337
415
|
|
|
338
|
-
- *(pagy)* Use Pagy::OPTIONS instead of frozen DEFAULT
|
|
339
416
|
## [0.45.2] - 2026-04-07
|
|
340
417
|
|
|
341
|
-
###
|
|
418
|
+
### Bug Fixes
|
|
419
|
+
|
|
420
|
+
- Honor limit param by setting client_max_limit
|
|
342
421
|
|
|
343
|
-
- *(pagy)* Honor limit param by setting client_max_limit
|
|
344
422
|
## [0.45.1] - 2026-04-02
|
|
345
423
|
|
|
346
|
-
###
|
|
424
|
+
### Bug Fixes
|
|
425
|
+
|
|
426
|
+
- Use named route helpers for top-level resource URLs
|
|
347
427
|
|
|
348
|
-
- *(routing)* Use named route helpers for top-level resource URLs
|
|
349
428
|
## [0.45.0] - 2026-04-01
|
|
350
429
|
|
|
351
|
-
###
|
|
430
|
+
### Bug Fixes
|
|
352
431
|
|
|
353
|
-
-
|
|
354
|
-
-
|
|
432
|
+
- Suffix scoped_entity_param_key to prevent route param collision
|
|
433
|
+
- Add view path and fix nested form in invitation template
|
|
355
434
|
|
|
356
|
-
###
|
|
435
|
+
### Features
|
|
357
436
|
|
|
358
|
-
-
|
|
359
|
-
-
|
|
437
|
+
- Add entity link to portal resource header
|
|
438
|
+
- Add --pu-text-danger CSS token
|
|
360
439
|
|
|
361
|
-
###
|
|
440
|
+
### Refactoring
|
|
441
|
+
|
|
442
|
+
- Consolidate skills and improve discoverability
|
|
362
443
|
|
|
363
|
-
- *(skills)* Consolidate skills and improve discoverability
|
|
364
444
|
## [0.44.1] - 2026-03-30
|
|
365
445
|
|
|
366
|
-
###
|
|
446
|
+
### Bug Fixes
|
|
447
|
+
|
|
448
|
+
- Register rescue responses before action_dispatch.configure
|
|
449
|
+
- Pass association SGIDs in create params to match form submission
|
|
450
|
+
|
|
451
|
+
### Miscellaneous Tasks
|
|
367
452
|
|
|
368
|
-
-
|
|
369
|
-
- *(test)* Pass association SGIDs in create params to match form submission
|
|
453
|
+
- Bump phlexi-form to >= 0.14.2
|
|
370
454
|
|
|
371
|
-
###
|
|
455
|
+
### Refactoring
|
|
456
|
+
|
|
457
|
+
- Use upstream @raw_choices from phlexi-form 0.14.2
|
|
372
458
|
|
|
373
|
-
- *(form)* Use upstream @raw_choices from phlexi-form 0.14.2
|
|
374
459
|
## [0.44.0] - 2026-03-30
|
|
375
460
|
|
|
376
|
-
###
|
|
461
|
+
### Bug Fixes
|
|
377
462
|
|
|
378
|
-
-
|
|
379
|
-
- *(generators)* Add pu:saas:welcome generator for post-login onboarding
|
|
380
|
-
- *(generators)* Extend pu:saas:setup with portal, welcome, invites, and profile
|
|
463
|
+
- Lazy-load sequel to avoid requiring it when Rodauth is unused
|
|
381
464
|
|
|
382
|
-
###
|
|
465
|
+
### Features
|
|
383
466
|
|
|
384
|
-
-
|
|
467
|
+
- Support singular parent resources and entity scoping in nested URL generation
|
|
468
|
+
- Add pu:saas:welcome generator for post-login onboarding
|
|
469
|
+
- Extend pu:saas:setup with portal, welcome, invites, and profile
|
|
385
470
|
|
|
386
|
-
###
|
|
471
|
+
### Refactoring
|
|
387
472
|
|
|
388
473
|
- Upgrade pagy from v9 to v43
|
|
389
|
-
-
|
|
390
|
-
-
|
|
391
|
-
-
|
|
392
|
-
-
|
|
393
|
-
## [0.43.2] - 2026-03-13
|
|
394
|
-
|
|
395
|
-
### 🐛 Bug Fixes
|
|
474
|
+
- Improve SaaS generators and shared concerns
|
|
475
|
+
- Improve welcome flow, idempotent routes, and skip action
|
|
476
|
+
- Add non-interactive prompt, improve build tooling and association resolver
|
|
477
|
+
- Restructure dummy app with catalog, multi-portal architecture
|
|
396
478
|
|
|
397
|
-
|
|
479
|
+
## [0.43.2] - 2026-03-13
|
|
398
480
|
|
|
399
|
-
###
|
|
481
|
+
### Bug Fixes
|
|
400
482
|
|
|
401
|
-
-
|
|
402
|
-
- *(invites)* Use Rodauth module include and remove dead code
|
|
483
|
+
- Use enum name for status and correct interaction base class
|
|
403
484
|
|
|
404
|
-
###
|
|
485
|
+
### Miscellaneous Tasks
|
|
405
486
|
|
|
406
|
-
-
|
|
487
|
+
- Fix generator assertions and remove dead code
|
|
407
488
|
- Remove trailing blank line in model_generator_base
|
|
408
489
|
- Update Ruby to 3.4 and refresh dependencies
|
|
409
|
-
## [0.43.1] - 2026-03-09
|
|
410
490
|
|
|
411
|
-
###
|
|
491
|
+
### Refactoring
|
|
412
492
|
|
|
413
|
-
-
|
|
414
|
-
-
|
|
415
|
-
## [0.43.0] - 2026-03-05
|
|
493
|
+
- Extract current_policy_context to base authorizable
|
|
494
|
+
- Use Rodauth module include and remove dead code
|
|
416
495
|
|
|
417
|
-
|
|
496
|
+
## [0.43.1] - 2026-03-09
|
|
418
497
|
|
|
419
|
-
|
|
420
|
-
- *(forms)* Make submit_and_continue button configurable
|
|
421
|
-
- *(generators)* Add package destination and namespace handling to invites
|
|
422
|
-
- *(controller)* Auto-detect entity association by class
|
|
423
|
-
- *(generators)* Add profile generators for user settings pages
|
|
424
|
-
- *(auth)* Add profile_url helper method to rodauth module
|
|
498
|
+
### Bug Fixes
|
|
425
499
|
|
|
426
|
-
|
|
500
|
+
- Fix scope comparison and clean up scopes bar component
|
|
501
|
+
- Auto-run npm login instead of aborting on missing auth
|
|
427
502
|
|
|
428
|
-
|
|
429
|
-
- *(routing)* Handle singular resources and entity scoping correctly
|
|
430
|
-
- *(generators)* Improve robustness and package support
|
|
431
|
-
- *(resource)* Handle class reloading in associated_with scope
|
|
432
|
-
- *(ui)* Show profile link in user menu only when profile_url defined
|
|
433
|
-
- *(generators)* Fix invites templates and null attribute handling
|
|
503
|
+
## [0.43.0] - 2026-03-05
|
|
434
504
|
|
|
435
|
-
###
|
|
505
|
+
### Bug Fixes
|
|
436
506
|
|
|
437
|
-
-
|
|
507
|
+
- Support custom primary keys and optional timestamps
|
|
508
|
+
- Handle singular resources and entity scoping correctly
|
|
509
|
+
- Improve robustness and package support
|
|
510
|
+
- Handle class reloading in associated_with scope
|
|
511
|
+
- Show profile link in user menu only when profile_url defined
|
|
512
|
+
- Fix invites templates and null attribute handling
|
|
438
513
|
|
|
439
|
-
###
|
|
514
|
+
### Documentation
|
|
440
515
|
|
|
441
516
|
- Add profile guide and update skill documentation
|
|
442
517
|
|
|
443
|
-
###
|
|
518
|
+
### Features
|
|
444
519
|
|
|
445
|
-
- Add
|
|
446
|
-
-
|
|
520
|
+
- Add TypeSpec API specification generator
|
|
521
|
+
- Make submit_and_continue button configurable
|
|
522
|
+
- Add package destination and namespace handling to invites
|
|
523
|
+
- Auto-detect entity association by class
|
|
524
|
+
- Add profile generators for user settings pages
|
|
525
|
+
- Add profile_url helper method to rodauth module
|
|
447
526
|
|
|
448
|
-
###
|
|
527
|
+
### Miscellaneous Tasks
|
|
449
528
|
|
|
450
529
|
- Add profile_url stub to controller template and test fixtures
|
|
451
|
-
## [0.42.0] - 2026-02-14
|
|
452
530
|
|
|
453
|
-
###
|
|
531
|
+
### Refactoring
|
|
454
532
|
|
|
455
|
-
-
|
|
456
|
-
- *(interaction)* Add turbo stream support to render response
|
|
457
|
-
- *(interaction)* Add scoping concern for entity/parent access
|
|
458
|
-
- *(generators)* Enhance rodauth generators
|
|
459
|
-
- *(generators)* Add API client generator for SaaS apps
|
|
533
|
+
- Extract breadcrumb rendering methods and add tests
|
|
460
534
|
|
|
461
|
-
###
|
|
535
|
+
### Testing
|
|
536
|
+
|
|
537
|
+
- Add OrgPortal fixture for entity scoping tests
|
|
538
|
+
- Add tests for routing, authorization, and display helpers
|
|
462
539
|
|
|
463
|
-
|
|
540
|
+
## [0.42.0] - 2026-02-14
|
|
464
541
|
|
|
465
|
-
###
|
|
542
|
+
### Documentation
|
|
466
543
|
|
|
467
544
|
- Update generator documentation and improve saas generators
|
|
468
545
|
|
|
469
|
-
###
|
|
546
|
+
### Features
|
|
470
547
|
|
|
471
|
-
- Add
|
|
548
|
+
- Add clipboard controller and fix modal scroll lock
|
|
549
|
+
- Add turbo stream support to render response
|
|
550
|
+
- Add scoping concern for entity/parent access
|
|
551
|
+
- Enhance rodauth generators
|
|
552
|
+
- Add API client generator for SaaS apps
|
|
472
553
|
|
|
473
|
-
###
|
|
554
|
+
### Miscellaneous Tasks
|
|
474
555
|
|
|
475
556
|
- Update gemfile locks
|
|
557
|
+
|
|
558
|
+
### Refactoring
|
|
559
|
+
|
|
560
|
+
- Consolidate generator test cleanup with git restore
|
|
561
|
+
|
|
562
|
+
### Testing
|
|
563
|
+
|
|
564
|
+
- Add unit tests for api client and response concerns
|
|
565
|
+
|
|
476
566
|
## [0.41.1] - 2026-02-09
|
|
477
567
|
|
|
478
|
-
###
|
|
568
|
+
### Features
|
|
569
|
+
|
|
570
|
+
- Support JSON default values for jsonb fields
|
|
479
571
|
|
|
480
|
-
- *(generators)* Support JSON default values for jsonb fields
|
|
481
572
|
## [0.41.0] - 2026-02-09
|
|
482
573
|
|
|
483
|
-
###
|
|
574
|
+
### Bug Fixes
|
|
484
575
|
|
|
485
|
-
-
|
|
486
|
-
-
|
|
487
|
-
-
|
|
576
|
+
- Fix has_many association injection pattern
|
|
577
|
+
- Add missing scripts to package.json in assets generator
|
|
578
|
+
- Remove primary account support for rodauth
|
|
579
|
+
- Use top-level Gem::Version to avoid namespace collision
|
|
580
|
+
- Check resource registration before generating association add URL
|
|
488
581
|
|
|
489
|
-
###
|
|
582
|
+
### Documentation
|
|
583
|
+
|
|
584
|
+
- Add class_name option and associations section to generator docs
|
|
490
585
|
|
|
491
|
-
|
|
492
|
-
- *(generators)* Add missing scripts to package.json in assets generator
|
|
493
|
-
- *(generators)* Remove primary account support for rodauth
|
|
494
|
-
- *(generators)* Use top-level Gem::Version to avoid namespace collision
|
|
495
|
-
- *(ui)* Check resource registration before generating association add URL
|
|
586
|
+
### Features
|
|
496
587
|
|
|
497
|
-
|
|
588
|
+
- Add default value support and improve SQLite compatibility
|
|
589
|
+
- Add class_name option for belongs_to fields
|
|
590
|
+
- Add --policy and --definition flags to conn generator
|
|
498
591
|
|
|
499
|
-
|
|
592
|
+
### Testing
|
|
500
593
|
|
|
501
|
-
|
|
594
|
+
- Add tests for named rodauth account configuration
|
|
595
|
+
- Move type alias tests to core and test actual migrations
|
|
502
596
|
|
|
503
|
-
- *(generators)* Add tests for named rodauth account configuration
|
|
504
|
-
- *(sqlite)* Move type alias tests to core and test actual migrations
|
|
505
597
|
## [0.40.0] - 2026-02-04
|
|
506
598
|
|
|
507
|
-
###
|
|
599
|
+
### Bug Fixes
|
|
508
600
|
|
|
509
|
-
-
|
|
510
|
-
-
|
|
511
|
-
-
|
|
512
|
-
-
|
|
513
|
-
-
|
|
514
|
-
-
|
|
515
|
-
-
|
|
601
|
+
- Scope load_memory to account-specific paths
|
|
602
|
+
- Resolve Thor invoke caching in entity generator
|
|
603
|
+
- Use dynamic migration versioning for Rails compatibility
|
|
604
|
+
- Wrap SQLite alias in defined? check for compatibility
|
|
605
|
+
- Add variants to product policy permitted attributes
|
|
606
|
+
- Improve has_one url assertion in resource_url_for test
|
|
607
|
+
- Normalize CamelCase package names and validate resource records
|
|
608
|
+
- Dedupe namespace and read model attrs with --no-model
|
|
609
|
+
- Use local gem path when LOCAL=1
|
|
610
|
+
- Guard against envs gems during template execution
|
|
611
|
+
- Run db:prepare after config in lite generators
|
|
612
|
+
- Restore ResourceController to portal generator
|
|
516
613
|
|
|
517
|
-
###
|
|
614
|
+
### Documentation
|
|
615
|
+
|
|
616
|
+
- Add invites skill and update rodauth skill
|
|
617
|
+
- Add user invites guide
|
|
518
618
|
|
|
519
|
-
|
|
520
|
-
- *(generators)* Resolve Thor invoke caching in entity generator
|
|
521
|
-
- *(test)* Use dynamic migration versioning for Rails compatibility
|
|
522
|
-
- *(config)* Wrap SQLite alias in defined? check for compatibility
|
|
523
|
-
- *(test)* Add variants to product policy permitted attributes
|
|
524
|
-
- *(test)* Improve has_one url assertion in resource_url_for test
|
|
525
|
-
- *(generators)* Normalize CamelCase package names and validate resource records
|
|
526
|
-
- *(generators)* Dedupe namespace and read model attrs with --no-model
|
|
527
|
-
- *(templates)* Use local gem path when LOCAL=1
|
|
528
|
-
- *(generators)* Guard against envs gems during template execution
|
|
529
|
-
- *(generators)* Run db:prepare after config in lite generators
|
|
530
|
-
- *(generators)* Restore ResourceController to portal generator
|
|
619
|
+
### Features
|
|
531
620
|
|
|
532
|
-
|
|
621
|
+
- Add user invitation system for multi-tenant apps
|
|
622
|
+
- Add roles and extra_attributes options to rodauth generators
|
|
623
|
+
- Add --scope flag to portal generator for entity scoping
|
|
624
|
+
- Add --singular flag to pu:res:conn for singular resources
|
|
625
|
+
- Add pu:lite namespace for SQLite-based services
|
|
626
|
+
- Add pu:saas namespace for multi-tenant SaaS setup
|
|
627
|
+
- Add default_scope method for setting default query scope
|
|
533
628
|
|
|
534
|
-
|
|
629
|
+
### Miscellaneous Tasks
|
|
535
630
|
|
|
536
|
-
|
|
631
|
+
- Update gemfile locks
|
|
632
|
+
- Remove old assets
|
|
537
633
|
|
|
538
|
-
|
|
539
|
-
- *(guides)* Add user invites guide
|
|
634
|
+
### Refactoring
|
|
540
635
|
|
|
541
|
-
|
|
636
|
+
- Comment out default policy methods
|
|
542
637
|
|
|
543
|
-
|
|
638
|
+
### Testing
|
|
544
639
|
|
|
545
|
-
|
|
640
|
+
- Add tests for rodauth and invites generators
|
|
546
641
|
|
|
547
|
-
- Remove old assets
|
|
548
642
|
## [0.39.2] - 2026-01-27
|
|
549
643
|
|
|
550
|
-
###
|
|
644
|
+
### Bug Fixes
|
|
551
645
|
|
|
552
646
|
- Handle create and update nested routes
|
|
553
|
-
## [0.39.1] - 2026-01-26
|
|
554
647
|
|
|
555
|
-
|
|
648
|
+
## [0.39.1] - 2026-01-26
|
|
556
649
|
|
|
557
|
-
|
|
558
|
-
## [0.39.0] - 2026-01-26
|
|
650
|
+
### Bug Fixes
|
|
559
651
|
|
|
560
|
-
|
|
652
|
+
- Include ImageTag helper for AssetsHelper compatibility
|
|
561
653
|
|
|
562
|
-
|
|
563
|
-
- *(interactive_actions)* Add non-HTML response handlers for successful actions
|
|
564
|
-
- *(routing)* Add has_one nested resource support
|
|
565
|
-
- *(routing)* [**breaking**] Refactor nested resource URL generation with named route helpers
|
|
566
|
-
- *(policy)* Add default_relation_scope method with verification
|
|
567
|
-
- *(nested)* Use association names for nested resource titles and breadcrumbs
|
|
654
|
+
## [0.39.0] - 2026-01-26
|
|
568
655
|
|
|
569
|
-
###
|
|
656
|
+
### Bug Fixes
|
|
570
657
|
|
|
571
658
|
- Remove duplicate kv store controller and move improvements into original
|
|
572
|
-
-
|
|
573
|
-
-
|
|
574
|
-
-
|
|
575
|
-
-
|
|
576
|
-
-
|
|
577
|
-
-
|
|
578
|
-
-
|
|
579
|
-
-
|
|
580
|
-
-
|
|
581
|
-
-
|
|
582
|
-
|
|
583
|
-
###
|
|
584
|
-
|
|
585
|
-
-
|
|
659
|
+
- Improve association filter class resolution
|
|
660
|
+
- Improve dropdown positioning with viewport boundary
|
|
661
|
+
- Dynamically detect database adapter for Rodauth ([#51](https://github.com/radioactive-labs/plutonium-core/issues/51))
|
|
662
|
+
- Use correct action attributes for form re-rendering on errors
|
|
663
|
+
- Distinguish empty vs not-submitted key-value store fields
|
|
664
|
+
- Use existing record context for form param extraction
|
|
665
|
+
- Prevent UrlGenerationError when extracting params for nested resource update
|
|
666
|
+
- Correct URL generation for interactive actions on nested resources
|
|
667
|
+
- Replace deprecated phlex-rails `helpers` method with `view_context`
|
|
668
|
+
- Add named routes for commit actions and document route naming requirement
|
|
669
|
+
|
|
670
|
+
### Documentation
|
|
671
|
+
|
|
672
|
+
- Document formatter option for columns and displays
|
|
586
673
|
- Cleanup review definition
|
|
587
674
|
- Add troubleshooting guide for inflection issue
|
|
588
675
|
- Update nested resource routes to use nested_ prefix
|
|
589
676
|
|
|
590
|
-
###
|
|
677
|
+
### Features
|
|
591
678
|
|
|
592
|
-
-
|
|
679
|
+
- Handle ActionPolicy::Unauthorized for non-HTML formats
|
|
680
|
+
- Add non-HTML response handlers for successful actions
|
|
681
|
+
- Add has_one nested resource support
|
|
682
|
+
- [**breaking**] Refactor nested resource URL generation with named route helpers
|
|
683
|
+
- Add default_relation_scope method with verification
|
|
684
|
+
- Use association names for nested resource titles and breadcrumbs
|
|
593
685
|
|
|
594
|
-
###
|
|
686
|
+
### Miscellaneous Tasks
|
|
595
687
|
|
|
596
688
|
- Use chokidar to fix dev build cyclic dependency issues
|
|
597
689
|
- Warn when running tests without Appraisal
|
|
598
690
|
- Switch to yarn
|
|
599
691
|
- Update og image
|
|
692
|
+
|
|
693
|
+
### Testing
|
|
694
|
+
|
|
695
|
+
- Refactor tests to use real module implementations instead of mocks
|
|
696
|
+
|
|
600
697
|
## [0.37.0] - 2026-01-21
|
|
601
698
|
|
|
602
|
-
###
|
|
699
|
+
### Features
|
|
603
700
|
|
|
604
|
-
-
|
|
701
|
+
- Add textarea auto-grow functionality
|
|
605
702
|
|
|
606
|
-
###
|
|
703
|
+
### Refactoring
|
|
607
704
|
|
|
608
|
-
-
|
|
609
|
-
## [0.36.0] - 2026-01-21
|
|
705
|
+
- Migrate slim-select styles to design tokens
|
|
610
706
|
|
|
611
|
-
|
|
707
|
+
## [0.36.0] - 2026-01-21
|
|
612
708
|
|
|
613
|
-
|
|
614
|
-
## [0.35.0] - 2026-01-20
|
|
709
|
+
### Features
|
|
615
710
|
|
|
616
|
-
|
|
711
|
+
- Add pu:core:update to sync gem and npm versions
|
|
617
712
|
|
|
618
|
-
|
|
619
|
-
- Implement bulk actions for resource tables
|
|
620
|
-
- Modernize UI with design token system and component classes
|
|
621
|
-
- Add actions dropdown for secondary and danger actions
|
|
622
|
-
- Add form input type aliases for explicit field type declarations
|
|
623
|
-
- Add built-in filter types with dropdown filter panel UI
|
|
624
|
-
- *(display)* Add boolean and color components with type aliases
|
|
625
|
-
- *(filters)* Add clear all button with filter-panel controller
|
|
713
|
+
## [0.35.0] - 2026-01-20
|
|
626
714
|
|
|
627
|
-
###
|
|
715
|
+
### Bug Fixes
|
|
628
716
|
|
|
629
717
|
- Use turbo stream redirect action instead of HTTP 302 for form submissions
|
|
630
718
|
- Exclude turbo_stream format from URL preservation
|
|
631
719
|
- Improve table container scroll and telephone input padding
|
|
632
720
|
- Pass unwrapped record into custom column blocks
|
|
633
|
-
-
|
|
634
|
-
|
|
635
|
-
### 🚜 Refactor
|
|
636
|
-
|
|
637
|
-
- Remove ResourceController from portal generator
|
|
638
|
-
- Rename skills with plutonium- prefix to avoid conflicts
|
|
639
|
-
- Simplify dashboard templates with design system classes
|
|
640
|
-
- *(ui)* Update auth pages with new design tokens
|
|
721
|
+
- Prevent h2 text cutoff in VitePress docs
|
|
641
722
|
|
|
642
|
-
###
|
|
723
|
+
### Documentation
|
|
643
724
|
|
|
644
725
|
- Improve interaction docs
|
|
645
726
|
- Overhaul README, CONTRIBUTING, and add CLAUDE.md for development
|
|
@@ -657,156 +738,194 @@
|
|
|
657
738
|
- Document authorization methods
|
|
658
739
|
- Add skills for themeing specifically
|
|
659
740
|
|
|
660
|
-
###
|
|
741
|
+
### Features
|
|
742
|
+
|
|
743
|
+
- Add demo_features package and demo_portal for testing
|
|
744
|
+
- Implement bulk actions for resource tables
|
|
745
|
+
- Modernize UI with design token system and component classes
|
|
746
|
+
- Add actions dropdown for secondary and danger actions
|
|
747
|
+
- Add form input type aliases for explicit field type declarations
|
|
748
|
+
- Add built-in filter types with dropdown filter panel UI
|
|
749
|
+
- Add boolean and color components with type aliases
|
|
750
|
+
- Add clear all button with filter-panel controller
|
|
751
|
+
|
|
752
|
+
### Miscellaneous Tasks
|
|
661
753
|
|
|
662
754
|
- Optimize og graph title and images
|
|
663
755
|
- Realign marketing material
|
|
664
756
|
- Add seeds for demo models and fix foreign keys
|
|
665
757
|
- Standardrb
|
|
666
|
-
## [0.34.1] - 2026-01-18
|
|
667
758
|
|
|
668
|
-
###
|
|
759
|
+
### Refactoring
|
|
669
760
|
|
|
670
|
-
-
|
|
671
|
-
-
|
|
672
|
-
|
|
761
|
+
- Remove ResourceController from portal generator
|
|
762
|
+
- Rename skills with plutonium- prefix to avoid conflicts
|
|
763
|
+
- Simplify dashboard templates with design system classes
|
|
764
|
+
- Update auth pages with new design tokens
|
|
673
765
|
|
|
674
|
-
|
|
766
|
+
## [0.34.1] - 2026-01-18
|
|
675
767
|
|
|
676
|
-
|
|
677
|
-
- *(generators)* Add pu:skills:sync to install Claude Code skills
|
|
678
|
-
- *(query)* Execute adhoc blocks in controller context
|
|
679
|
-
- *(railtie)* Map ActionPolicy::Unauthorized to 403 Forbidden
|
|
680
|
-
- *(query)* Add default scope support for resource queries
|
|
768
|
+
### Bug Fixes
|
|
681
769
|
|
|
682
|
-
|
|
770
|
+
- Check npm auth early in release workflow
|
|
771
|
+
- Correct generator flags to use --dest instead of --portal/--package
|
|
772
|
+
|
|
773
|
+
## [0.34.0] - 2026-01-18
|
|
683
774
|
|
|
684
|
-
|
|
685
|
-
- *(generators)* Support nullable syntax with type options
|
|
686
|
-
- *(generators)* Prevent overwriting existing url_options configuration
|
|
687
|
-
- *(generators)* Normalize reference names before comparing namespaces
|
|
688
|
-
- *(package)* Include engine migrations in programmatic migration paths
|
|
689
|
-
- *(release)* Handle missing version tag in next_version task
|
|
775
|
+
### Bug Fixes
|
|
690
776
|
|
|
691
|
-
|
|
777
|
+
- Handle turbo_stream format in CRUD and interactive actions
|
|
778
|
+
- Support nullable syntax with type options
|
|
779
|
+
- Prevent overwriting existing url_options configuration
|
|
780
|
+
- Normalize reference names before comparing namespaces
|
|
781
|
+
- Include engine migrations in programmatic migration paths
|
|
782
|
+
- Handle missing version tag in next_version task
|
|
783
|
+
|
|
784
|
+
### Documentation
|
|
692
785
|
|
|
693
786
|
- Add Claude Code skills and improve generator documentation
|
|
694
787
|
- Add definition skills and update module documentation
|
|
695
788
|
- Add comprehensive Claude Code skills for resources
|
|
696
789
|
- Add package and portal skills
|
|
697
790
|
- Add interaction skill for business logic actions
|
|
698
|
-
-
|
|
791
|
+
- Add new Claude Code skills and enhance existing ones
|
|
699
792
|
|
|
700
|
-
###
|
|
793
|
+
### Features
|
|
701
794
|
|
|
702
|
-
-
|
|
795
|
+
- Configure default_url_options via RAILS_DEFAULT_URL env var
|
|
796
|
+
- Add pu:skills:sync to install Claude Code skills
|
|
797
|
+
- Execute adhoc blocks in controller context
|
|
798
|
+
- Map ActionPolicy::Unauthorized to 403 Forbidden
|
|
799
|
+
- Add default scope support for resource queries
|
|
703
800
|
|
|
704
|
-
###
|
|
801
|
+
### Miscellaneous Tasks
|
|
705
802
|
|
|
706
803
|
- Overhaul documentation structure and test infrastructure
|
|
707
804
|
- Move brakeman config to config/ and update ignore list
|
|
805
|
+
|
|
806
|
+
### Styling
|
|
807
|
+
|
|
808
|
+
- Standardrb linting
|
|
809
|
+
|
|
708
810
|
## [0.33.0] - 2026-01-12
|
|
709
811
|
|
|
710
|
-
###
|
|
812
|
+
### Revert
|
|
813
|
+
|
|
814
|
+
- Remove semantic design token system
|
|
711
815
|
|
|
712
|
-
- *(ui)* Remove semantic design token system
|
|
713
816
|
## [0.32.0] - 2026-01-12
|
|
714
817
|
|
|
715
|
-
###
|
|
818
|
+
### Bug Fixes
|
|
819
|
+
|
|
820
|
+
- Move fontFamily to theme root level
|
|
716
821
|
|
|
717
|
-
- *(ui)* Move fontFamily to theme root level
|
|
718
822
|
## [0.31.0] - 2026-01-12
|
|
719
823
|
|
|
720
|
-
###
|
|
824
|
+
### Bug Fixes
|
|
721
825
|
|
|
722
|
-
-
|
|
723
|
-
-
|
|
724
|
-
- *(ui)* Add semantic design token system for theming
|
|
826
|
+
- Preserve request format in redirects
|
|
827
|
+
- Reset policy cache before rendering create response for api calls
|
|
725
828
|
|
|
726
|
-
###
|
|
829
|
+
### Features
|
|
727
830
|
|
|
728
|
-
-
|
|
729
|
-
-
|
|
831
|
+
- Add cross-tab color mode synchronization
|
|
832
|
+
- Add npm package publishing support
|
|
833
|
+
- Add semantic design token system for theming
|
|
730
834
|
|
|
731
|
-
###
|
|
732
|
-
|
|
733
|
-
- *(release)* Build assets during prepare phase
|
|
734
|
-
## [0.28.0] - 2025-11-12
|
|
835
|
+
### Miscellaneous Tasks
|
|
735
836
|
|
|
736
|
-
|
|
837
|
+
- Build assets during prepare phase
|
|
737
838
|
|
|
738
|
-
|
|
839
|
+
## [0.28.0] - 2025-11-12
|
|
739
840
|
|
|
740
|
-
###
|
|
841
|
+
### Bug Fixes
|
|
741
842
|
|
|
742
843
|
- Make controller_for inheritable and respect custom inflections
|
|
743
|
-
## [0.27.0] - 2025-11-05
|
|
744
844
|
|
|
745
|
-
###
|
|
845
|
+
### Features
|
|
746
846
|
|
|
747
|
-
- Add
|
|
847
|
+
- Add sgid support and improve association serialization in API
|
|
748
848
|
|
|
749
|
-
|
|
849
|
+
## [0.27.0] - 2025-11-05
|
|
850
|
+
|
|
851
|
+
### Bug Fixes
|
|
750
852
|
|
|
751
853
|
- Reload version constant in release:publish task
|
|
752
854
|
|
|
753
|
-
###
|
|
855
|
+
### Documentation
|
|
754
856
|
|
|
755
857
|
- Setup contribution guidelines using Conventional Commits
|
|
858
|
+
|
|
859
|
+
### Features
|
|
860
|
+
|
|
861
|
+
- Add field-level options support for input/display/column definitions
|
|
862
|
+
|
|
756
863
|
## [0.26.9] - 2025-09-25
|
|
757
864
|
|
|
758
|
-
###
|
|
865
|
+
### Features
|
|
759
866
|
|
|
760
867
|
- Disable csrf protection if authorization header is set
|
|
868
|
+
|
|
761
869
|
## [0.26.8] - 2025-08-11
|
|
762
870
|
|
|
763
|
-
###
|
|
871
|
+
### Bug Fixes
|
|
872
|
+
|
|
873
|
+
- Prevent SQLite adapter error when using non-SQLite databases ([#42](https://github.com/radioactive-labs/plutonium-core/issues/42))
|
|
874
|
+
- Fix STI model routing logic in controller ([#43](https://github.com/radioactive-labs/plutonium-core/issues/43))
|
|
764
875
|
|
|
765
|
-
- Prevent SQLite adapter error when using non-SQLite databases (#42)
|
|
766
|
-
- Fix STI model routing logic in controller (#43)
|
|
767
876
|
## [0.26.6] - 2025-08-03
|
|
768
877
|
|
|
769
|
-
###
|
|
878
|
+
### Refactoring
|
|
879
|
+
|
|
880
|
+
- Enhance color mode selector and integrate into header layout ([#41](https://github.com/radioactive-labs/plutonium-core/issues/41))
|
|
770
881
|
|
|
771
|
-
- Enhance color mode selector and integrate into header layout (#41)
|
|
772
882
|
## [0.26.2] - 2025-07-22
|
|
773
883
|
|
|
774
|
-
###
|
|
884
|
+
### Bug Fixes
|
|
885
|
+
|
|
886
|
+
- Handle redirect after interaction submission ([#37](https://github.com/radioactive-labs/plutonium-core/issues/37))
|
|
887
|
+
- Enhance flatpickr to attach to modals correctly ([#35](https://github.com/radioactive-labs/plutonium-core/issues/35))
|
|
775
888
|
|
|
776
|
-
- Handle redirect after interaction submission (#37)
|
|
777
|
-
- Enhance flatpickr to attach to modals correctly (#35)
|
|
778
889
|
## [0.23.2] - 2025-05-27
|
|
779
890
|
|
|
780
|
-
###
|
|
891
|
+
### Refactoring
|
|
892
|
+
|
|
893
|
+
- Update EasyMDE styles ([#33](https://github.com/radioactive-labs/plutonium-core/issues/33))
|
|
781
894
|
|
|
782
|
-
- Update EasyMDE styles (#33)
|
|
783
895
|
## [0.23.1] - 2025-05-27
|
|
784
896
|
|
|
785
|
-
###
|
|
897
|
+
### Bug Fixes
|
|
898
|
+
|
|
899
|
+
- Hide password visibility checkbox when not needed ([#32](https://github.com/radioactive-labs/plutonium-core/issues/32))
|
|
786
900
|
|
|
787
|
-
- Hide password visibility checkbox when not needed (#32)
|
|
788
901
|
## [0.21.1] - 2025-04-27
|
|
789
902
|
|
|
790
|
-
###
|
|
903
|
+
### Features
|
|
904
|
+
|
|
905
|
+
- Preserve whitespace in hints to allow some formatting ([#25](https://github.com/radioactive-labs/plutonium-core/issues/25))
|
|
791
906
|
|
|
792
|
-
|
|
907
|
+
### Refactoring
|
|
793
908
|
|
|
794
|
-
|
|
909
|
+
- Fix join condition for `has_one` and `has_many` associations ([#23](https://github.com/radioactive-labs/plutonium-core/issues/23))
|
|
795
910
|
|
|
796
|
-
- Fix join condition for `has_one` and `has_many` associations (#23)
|
|
797
911
|
## [0.21.0] - 2025-04-01
|
|
798
912
|
|
|
799
|
-
###
|
|
913
|
+
### Features
|
|
914
|
+
|
|
915
|
+
- Add cleaner cards for resources on the dashboard index page ([#22](https://github.com/radioactive-labs/plutonium-core/issues/22))
|
|
800
916
|
|
|
801
|
-
- Add cleaner cards for resources on the dashboard index page (#22)
|
|
802
917
|
## [0.20.4] - 2025-03-15
|
|
803
918
|
|
|
804
|
-
###
|
|
919
|
+
### Bug Fixes
|
|
920
|
+
|
|
921
|
+
- Fix Tailwind CSS v4 upgrade issue for existing projects ([#18](https://github.com/radioactive-labs/plutonium-core/issues/18))
|
|
805
922
|
|
|
806
|
-
- Fix Tailwind CSS v4 upgrade issue for existing projects (#18)
|
|
807
923
|
## [0.19.13] - 2025-03-02
|
|
808
924
|
|
|
809
|
-
###
|
|
925
|
+
### Features
|
|
926
|
+
|
|
927
|
+
- Add password visibility toggle to sign up and login forms ([#17](https://github.com/radioactive-labs/plutonium-core/issues/17))
|
|
810
928
|
|
|
811
|
-
- Add password visibility toggle to sign up and login forms (#17)
|
|
812
929
|
## [0.6.2] - 2024-02-21
|
|
930
|
+
|
|
931
|
+
<!-- generated by git-cliff -->
|