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