2596 Commits
Author SHA1 Message Date
Brooke Kuhlmann 98d4f1e6ce Updated device delete actions to use deleter
Ensures all actions use the new deleter for consistent behavior.

Milestone: minor
0.68.0
2026-08-05 15:10:08 -06:00
Brooke Kuhlmann 3fa381519d Added device deleter
Necessary to handle the deleting of a device and associated screens.

Milestone: minor
2026-08-05 14:43:51 -06:00
Brooke Kuhlmann bb3e479e39 Added screen repository interrupts constant
Necessary to define -- via a single constant and object -- the kinds of screens that are interrupts.

Milestone: minor
2026-08-05 14:43:51 -06:00
Brooke Kuhlmann ee16d82bd5 Added screen migration set device ID to null when device is deleted
Relaxes deleting of the screen when the associated device is deleted. Instead we set the `device_id` foreign key to `null` like we do for the `template_id` foreign key. This allows a screen to remain in case you want to repurpose it for another device.

Milestone: patch
2026-08-05 14:43:03 -06:00
Brooke Kuhlmann c273ec2112 Fixed firmware and screen attachments
This reverts commit 5e9ab0cf02 (Removed screen and firmware struct attachment replace behavior, 2026-08-03) because you can't reliably have link:https://shrinerb.com[Shrine] upload a replacable image. We still need to have distinct methods for `#replace` and `#upload`.

This also prevents duplicate images being created.

Milestone: patch
2026-08-05 13:29:07 -06:00
Brooke Kuhlmann 482cf004fb Updated Code Mirror dependencies
General project maintenance by picking up latest patches.

Milestone: patch
2026-08-05 13:29:06 -06:00
Brooke Kuhlmann 5387577f75 Updated to Node 26.7.0
link:https://nodejs.org/en/blog/release/v26.7.0[Details].

Milestone: minor
2026-08-05 13:27:03 -06:00
Brooke Kuhlmann 8163b13e9e Removed device firmware automatic update from defaults
Necessary to prevent automatic bricking of devices due to unreliable firmware updates. I have a couple issues, via the Core and Firmware projects, to address this but the root cause stems from unreliable and inconsistent firmware version releases.

Milestone: minor
2026-08-05 09:54:20 -06:00
Brooke Kuhlmann a8d1638b34 Removed survey links from dashboard
These can now be found via the project documentation instead.

Milestone: minor
2026-08-05 09:54:19 -06:00
Brooke Kuhlmann acc3645917 Updated documentation survey links
Allows these links to be accessible via documentation instead of using the dashboard for this.

Milestone: minor
2026-08-05 09:53:30 -06:00
Brooke Kuhlmann 67b6ae2e9c Updated to Bundler 4.0.18
link:https://blog.rubygems.org/2026/08/05/4.0.18-released.html[Details].

Milestone: patch
2026-08-05 07:58:32 -06:00
Brooke Kuhlmann 05f85c4093 Refactored fetchers namespace as fetcher (singular)
Clarifies this namespace is for a single entity (and associated objects).

Milestone: patch
2026-08-04 16:05:18 -06:00
Brooke Kuhlmann 24d8672f41 Fixed screen partial dimension defaults
Prevents screen from popping out of the container when the associated image is missing.

Milestone: patch
2026-08-04 15:25:07 -06:00
Brooke Kuhlmann df2c842eb5 Fixed universal logger to merge block content with payload
Solves situations where keys can be missing for both the Rack and SQL formats. This also simplifies the patch by mimicking the original implementation by merging the block content into the payload.

The SQL check for block content being a hash is no longer required either.

Issue: 348
Milestone: patch
2026-08-04 15:24:44 -06:00
Brooke Kuhlmann db790c68ea Removed unnecessary Dry Core requirements
Safe to remove since they are not being used.

Milestone: patch
2026-08-04 11:58:57 -06:00
Brooke Kuhlmann 57f1baaa84 Fixed screen repository upsert with image to use original find
This reverts commit f33e112d33 (Fixed screen repository to use atomic upsert, 2026-08-03) because when an extension was built for multiple screens with different models, only one of the screens would be built. The problem is with using PostgreSQL on conflict resolution and updating of image information.

This also removes the Dry RB requirements since they are not being used.

Issue: 359
Milestone: patch
2026-08-04 11:55:30 -06:00
Brooke Kuhlmann b974c1a558 Updated device shared fields to provide selections for model and command
Allows you to quickly create a device with safe defaults instead of being forced to pick each time.

Milestone: minor
2026-08-04 10:31:22 -06:00
Brooke Kuhlmann 6faa401305 Added default option helper
Provides a quick way to obtain the default option out of a list of records. This is a companion to the `.select_options_for` method which shares similar behavior and is why the `DEFAULT_OPTION` is introduced to reduce duplication.

The spec descriptions were updated to correctly represent class methods. Reek was also updated to ignore the duplicate call since Reek it too sensitive to two messages to the same object.

Milestone: minor
2026-08-04 10:16:37 -06:00
Brooke Kuhlmann 3699b17d7e Updated select options helper to allow default customization
Allows the default selection (and prompt) to remain "Select..." but can be customized with a different option if desired.

Milestone: minor
2026-08-04 09:37:45 -06:00
Brooke Kuhlmann acac9f08c3 Fixed extension exchanges edit feature spec to test without JavaScript
Allows this to be tested without JavaScript loaded in order to prevent CodeMirror interfering with the text areas.

Milestone: patch
2026-08-04 08:00:01 -06:00
Brooke Kuhlmann 0ec544af70 Updated to Caliber 0.95.0
link:https://alchemists.io/projects/caliber/versions/0.95.0/[Details].

Milestone: minor
2026-08-04 07:13:14 -06:00
Brooke Kuhlmann f33e112d33 Fixed screen repository to use atomic upsert
Ensures the upsert happens only if there isn't a conflict. This also prevents unique constraint issues with duplicate key value. This, unfortunately, introduces code that is a bit more complex and isn't ideal. Leaving these comments in for now in order to address in the future because I think this can be extracted further.

Issue: 339
Milestone: patch
2026-08-03 17:04:41 -06:00
Brooke Kuhlmann 5e9ab0cf02 Removed screen and firmware struct attachment replace behavior
We can safely remove the `#remove` method in favor of using `#upload` for everything now that we conditionally destroy the record only if found and the `*_data` key exists. This also updates firmware attachment behavior to mimic screen attachment behavior in order to improve consistency.

Milestone: minor
2026-08-03 16:47:46 -06:00
Brooke Kuhlmann 3c7238325f Updated to Node 26.6.0
link:https://nodejs.org/en/blog/release/v26.6.0[Details].

Milestone: minor
2026-08-03 10:44:51 -06:00
Brooke Kuhlmann f1eeba5077 Updated to Sequel 5.107.0
link:https://sequel.jeremyevans.net/rdoc/files/doc/release_notes/5_107_0_txt.html[Details]. This picks up a couple patches as well.

Milestone: minor
2026-08-03 10:39:02 -06:00