The letter A styled as Alchemists logo. lchemists

Terminus 0.79.0

Keyboard Shortcuts

  • v: View versions.
  • TAB: Move to next commit.
  • โ‡ง + TAB: Move to previous commit.
  • ENTER: Open or close a commit.
  • โ†: View previous version.
  • โ†’: View next version.

Version 0.79.0

SHA

5cb2eab966dd401325382bab5b4ec3e1f6b75b5f

Signature

-----BEGIN PGP SIGNATURE-----

iQJPBAABCAA5FiEE0UiFiNLe33PmLweh8rxJvE/7mkgFAmriVNYbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMCwzAAoJEPK8SbxP+5pIteAP/0WwGmw55LtxUto6A+VD
8yfvx3ylGeyoiv9lhPAbX5hv/O2lkWZEsxIyLiBiZRIMMO1VnN3ur3f9ZqLmLqAD
gn8d/8kVXMTQDJrghlR2LYer5OfD7ZKWI5UERGesHnkFcTyGJR/F7WiMorJckVDo
5sHelLwPA4pS2CC2YQLqG1In0fZsSPk4sTrvCWV5f8rnf5mj0p5IdlURa4k3nqv4
ragIh9Pae2P1RgcMsB68hR5JdcsbLkSOTM3anrm4ar5pukyHnDRr7wDStDzdst35
xbntHCsKpFu1K8a5KUuOGQFCUTXjJ/GqeCljAKkyBdGuCeWsw20yKKds+U+pm4ZM
kzcb2LggUvw85Qxy/+R5G6ywX07Gh7gLJ3T1n/4IkxAC152UV3OVK+JMhlnMchsM
2lo4budIq0GrlWw/thRTwQtlBW+/XueP+iiKoaSqnNp3R/u/t3a6lazfoiWpHpkO
LsWATlqilxu4C96pifv4V/c3ir/vSZjzYczjLsTeNbJnfPnv1TS0bF75jSlaMpXt
Dv+/2SezcTIU+JrQQE4k0SfaM6ySyi0NFtziiIgVd0j2gwU8G7/7GBD4QfQ/dr5+
KkIKiD+0+IB36PZsm6WfUQZBY6MBY2mxJeUo51rdIctVodZpSjQRxpTu76xxN86f
Y0ozI84sFNeDAB8y+FIajeK1
=ojYp
-----END PGP SIGNATURE-----
Commit Author Files Lines Issue Review
normal Added CSP appender Brooke Kuhlmann 3 -1 / +99 383 All
minor

Message

Provides a simple CSP appender where URIs are appended to allowed keys. At the moment, this is most useful for allowing custom URIs.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

9a66a922f40fad9c9916700cb8eb50d245ef61bf

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added Ferrum browser encapsulation Brooke Kuhlmann 4 -1 / +268 All All
minor

Message

Necessary to encapsulate a single browser instance which can remain in memory without creating a new instance per screenshot. This will reduce the number of instances created. Hereโ€™s what was observed on macOS prior to this change:

  • Google Chrome: ~128MB per instance.

  • Google Chrome Helper: ~26MB per instance (with ~three per Google Chrome instance).

After this change youโ€™d get an instance which hovers around ~100MB with supporting helpers that would consume the same amount of memory but clear up after rendering process completed.

This also introduces a few new features:

  • When calling, a block must be used which automatically closes the page when finished.

  • The instance will be restarted after a maximum number of renders.

  • An empty success is returned only when no failures are encountered.

Will soon be used by Screens::Shoter to render screenshots.

Reek was updated to ignore the multiple statements in the #call method since itโ€™s worthwhile to keep the success and failure logic in a single method.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

8814ec18add7fbb192548dcb29bbad56008f1ecd

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added URIs type Brooke Kuhlmann 3 0 / +31 383 All
minor

Message

Necessary to validate a list of URIs which must all be of https scheme. This will soon be used for building a list of allowed domains for Content Security Policy purposes.

Reek was updated to ignore the multiple constants for types as we want to keep all of these within the same module.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

c18db0d0e7b205b80e714fdc2c24eecd8980d7f7

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added allowed URIs setting Brooke Kuhlmann 1 -1 / +5 383 All
minor

Message

Necessary for folks to supply custom URIs (domains) which will be appended to the application Content Security Policy.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

0c1010f0788f3a140979e028974aab225b27f0f1

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added bulk devices import create action Brooke Kuhlmann 6 -2 / +209 All All
minor

Message

Necessary to provide UI support for bulk importing of devices from a CSV file. This includes new translations, route, action, templates, and linking via the bulk upload SVG icon at the top of the devices index template.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

6c5796292b71966c9965eb886cca0063b56c7acd

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added bulk upload icon Brooke Kuhlmann 1 0 / +21 All All
minor

Message

Necessary to provide a distinct icon for bulk imports.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

2189b65cb77d82752656c12d9c7f1a5c5f14a93f

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added configuration documentation for allowed URIs Brooke Kuhlmann 1 0 / +2 383 All
minor

Message

Necessary to explain what this is and why itโ€™s important.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

3f16104c0bc16ef6eca7bc99f31dd66626671691

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added device part translation for unknown wake reason Brooke Kuhlmann 3 -2 / +9 All All
patch

Message

None.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

640e16d9bcf5bdb9d1820ed75e44aa139b61f012

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added devices CSV template asset Brooke Kuhlmann 1 0 / +2 All All
minor

Message

Necessary to provide a template folks can download for local use and customization. This shows how to import a Demo device for the TRMNL OG (2-bit) model.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

264bc22e50ce28e480e6344da5d7495c7f73bd4d

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added devices bulk import contract Brooke Kuhlmann 1 0 / +14 All All
minor

Message

Ensures data being imported for device provisioning is valid.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

7e9a4340cadf825499f9971ffa8121111e60cf70

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added devices import contract Brooke Kuhlmann 2 0 / +85 All All
minor

Message

Provides single device validation.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

f618a12eb8fab05f5ccd17ca66f6e752221be8b5

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added devices importer Brooke Kuhlmann 3 0 / +145 All All
minor

Message

Necessary for bulk import of multiple devices at once by using a CSV of multiples devices as the source. See [Ruby CSV Parsing](https://alchemists.io/articles/ruby_csv_parsing) for futher details.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

e40449cb6b707972a7e86e2cdee7a5f134c1dde9

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added devices source import contract Brooke Kuhlmann 2 0 / +90 All All
minor

Message

Necessary to validate allowing content to be imported from multiple sources:

  • Attachment: Allows import via a CSV file attachment.

  • URI: Allows import via a remote URI.

Only one or the other is allowed, not both at the same time.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

bead9c7b2f8c41af18b87b379a98b0904e2dd275

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added flush script Brooke Kuhlmann 1 0 / +10 All All
minor

Message

A quality of life improvement by making it quick to flush the keystore database, especially for development purposes.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

9c4dd3f17aa9b52a8fd87928b3d22e85ee90be33

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added playlist repository find or create Brooke Kuhlmann 2 0 / +19 All All
minor

Message

Provides convenience for finding an existing record by name or creating a new record if not existing.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

c9e77f9a5cf12087d4ebf0844e87991913c683fc

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Added the Concurrent gem Brooke Kuhlmann 2 0 / +2 390 All
minor

Message

Will be used to resolve concurrent read/write locks, especially with the Ferrum Browser.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

0d0338a7759ae6705e48bcaae97185cf063bade2

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated application configuration to use CSP appender Brooke Kuhlmann 1 -3 / +9 383 All
minor

Message

Provides dynamic configuration of the Content Security Policy based on allowed URI settings as computed by the CSP Appender. Unfortunately, Hanami does not provide direct access to the policy for updating so Iโ€™m reaching into the private policy instance variable to manipulate directly. Definitely not ideal but keeps the code tight.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

228852c3c95aeffaf990578295ad0c6990552a49

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated browser to reduce object inspection verbosity Brooke Kuhlmann 2 0 / +12 All All
minor

Message

Both i18n and client objects are extremely verbose when inspecting objects so this cleans that up so the console is easier to read.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

684ac568383e20049483c4dc1a985aeb5f3e25a6

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated downloader to allow all domains when empty Brooke Kuhlmann 3 0 / +7 All All
minor

Message

Allows domains to be ignored, when empty, for situations where you might want to allow any URI.

Reek was updated to ignore the multiple statements for the check because itโ€™s important to keep all checks together.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

448c63eebc8954ab21ea88bcac83a568188f422c

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated htmx extensions Brooke Kuhlmann 1 -6 / +6 All All
minor

Message

Details can be found here:

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

99f3e71754e8970fac93a1c4447dc5adce437189

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated package dependencies Brooke Kuhlmann 1 -7 / +7 All All
patch

Message

Weekly maintenance and care.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

82237d28aebf1acc607ad2666c619d4a3e18576f

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated screens import script to scripts folder Brooke Kuhlmann 2 -2 / +2 All All
minor

Message

Minor clarification to indicate this script is for production while bin is for development.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

417c97787c43bbc11dc7c29497f91377b6997744

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated screens shoter to inject browser dependency Brooke Kuhlmann 4 -228 / +15 All All
minor

Message

Reduces duplication by delegating to the new browser object. This also cleans up RuboCop and Reek accordingly.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

3a9480d7703dcd400528da509ca805851e38ac07

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to CSV 3.3.7 Brooke Kuhlmann 1 -4 / +4 All All
patch

Message

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

a2fb0443b9ed7ef090ca31ae17742ee93c3e53d9

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Code Mirror and Alpine dependencies Brooke Kuhlmann 1 -12 / +12 All All
patch

Message

None.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

561eb00d72e5f0a83ef929875f57fab5c1fe938f

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Cuprite 0.19.0 Brooke Kuhlmann 1 -7 / +7 All All
minor

Message

Details. This also picks up a patch to Down.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

8f2a38689638fa8e00ea0cf5d41b03c0670b3be4

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Ferrum 0.19.2 Brooke Kuhlmann 1 -4 / +4 All All
patch

Message

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

6b13d9e15b0c4827f13ddac44d662783c2d3ef6e

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to JSON 3.1.0 Brooke Kuhlmann 3 -6 / +10 All All
minor

Message

Details. This introduces a breaking change because the error messages now have the wrong encoding. To account for this the effected specs were updated accordingly because my String refinement only alters the first character whereas String#capitalize doesnโ€™t. Again, I this is a bug with the JSON gem.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

3fda5a2fc25c17cee6638dea7d3fc11a222ed239

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Node 26.12.1 Brooke Kuhlmann 1 -1 / +1 All All
patch

Message

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

a130106cf3a262fb01112a103614243d3a707236

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Ruby 4.0.8 Brooke Kuhlmann 3 -12 / +12 All All
patch

Message

Details. This also picks up a few gem patches (along with a minor update to Rack Test).

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

668c1a894d5fc527a844dd176c45af6ebd0f277e

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Ruby 4.0.9 Brooke Kuhlmann 3 -5 / +5 All All
minor

Message

Details. This also picks up Rodauth 2.49.0.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

4ebedba7fc1beabf865909b9383e283fd0b273bc

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Updated to Superfluid 0.2.1 Brooke Kuhlmann 1 -2 / +2 All All
patch

Message

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

0885cfdb57a5232ac3c81cd97b24763a1b5befcb

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed API model and playlist delete actions to answer not found details Brooke Kuhlmann 4 -15 / +24 All All
patch

Message

Necessary to match what is documented.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

2b98a2f28252e0bd68c9e1f80e1563052074b6ea

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed Display API key documentation typo Brooke Kuhlmann 1 -1 / +1 All All
patch

Message

Necessary to clarify you need your API Key when authenticating.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

4b7fbde7b21eeed4c17ba4b4185608b0d2b54e86

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed Reek to disable unused parameters Brooke Kuhlmann 1 0 / +3 All All
patch

Message

Necessary to speed up conflict resolution because UnusedParameters tends to duplicate what is reported by RuboCop so you get hit with the same issues by both linters when only having RuboCop is enough for reporting and resolution purposes.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

00c1e34f13ac5fb6fd16205c8f0b71a5271da95b

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed ambiguous extension card action selectors Brooke Kuhlmann 1 -2 / +6 All All
patch

Message

Ensures clone and download links are scoped to their corresponding extension cards so multiple actions avoid click ambiguity. This was originally reported by Simon Fricker.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

ce5f1a3e8927c7eeed9df43b6beeac80684f9d1d

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed browser to reset renders after maxmimum reached Brooke Kuhlmann 2 -16 / +26 386 All
patch

Message

Accidentally forgot, and noticed after looking at the previous nightโ€™s logs, that the renders count wasnโ€™t being reset back to zero. This accounts for that.

This also increases the maximum to 500 to give the browser a bit more time (although what the "best" limit is yet to be determined).

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

16094ea5929581ffc3fe13f8b0e2a4bfbefdab9b

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed browser to use concurrent read/write lock Brooke Kuhlmann 4 -63 / +103 390 All
patch

Message

This introduces a read/write lock to allow multiple concurrent readers but only one concurrent writer in order to ensure we can safely restart the browser once maximum renders or recoveries are reached. This forces the multiple readers to wait until the write lock is released.

Related to the above, this also applies the following changes:

  • Adds a small maximum recovery limit for when a dead browser is detected so we can recover by restarting the browser.

  • Ensure we not only log a fatal message with a ProcessTimeoutError but re-raise the error in order for the server to be restarted since we canโ€™t do anything with a client that is nil.

  • Updated the dead browser log to show a warning so you are alerted that recovery took place but you might also want to keep tabs on further issues.

  • Updated all debug messages as error messages so when these errors occur they are more apparent and to help indicate more action might be required.

RuboCop was updated to ignore method length for #call since thereโ€™s not an elegant way to break up the rescue blocks further.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

9d01fd1b3a002fcadf3a0ee3f870c5a9e445f982

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed dashboard feature spec to ignore exact counts Brooke Kuhlmann 1 -7 / +7 All All
patch

Message

Switched to using a regular expression because, sometimes, the users count can toggle between zero and oneโ€ฆโ€‹but we only care that the link exists with a number and a URI which this now expresses.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

51bfff5e06347768bbc9fc4d0f26c3c3761a0121

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed design and device forms to use consistent label placement Brooke Kuhlmann 3 -20 / +20 All All
patch

Message

Improves consistency since these were the only outcasts that didnโ€™t list these form fields at the top like all other resources in the system.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

b5b8def2aa5209725699e815eefb0d3560027e1d

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed device and firmware request specs to use problem details equality Brooke Kuhlmann 2 -8 / +8 All All
patch

Message

Leans on object equality since we are using whole value objects. This allows us to use exact matches instead of fuzzy matches.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

b669a0d292f0ce1ece7fe4a57931d760bc80adf8

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed device provisioner to find or create playlist Brooke Kuhlmann 2 -11 / +22 All All
patch

Message

Ensures, when playlist ID is present, the given playlist is used instead of creating a new one.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

06c4df71fadfee27619e1d81e00a9264393e402d

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed logging of messages without blocks Brooke Kuhlmann 2 -5 / +22 380 All
patch

Message

Ensures block contentโ€‰โ€”โ€‰when block is missingโ€‰โ€”โ€‰doesnโ€™t override the message with nil content by allowing block_content to fallback to the message when a block isnโ€™t given. This also removes the combined local variable since we can splat all attributes at once instead of creating an intermediate local variable first while reducing object allocation further.

A feature spec was added to account for this which, indirectly, tests the logger patch.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

67bbbe37234cab4db2df89909af035771d18e5a3

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Fixed screen shoter to not write content to disk Brooke Kuhlmann 2 -19 / +14 381 All
patch

Message

We already have the page content in memory, so we can skip writing to a temporary file, entirely, by passing the content straight to the browser directly. This also ensures multiple temporary directories arenโ€™t left around which avoids further cleanup and management by this object.

Added the hash refinement so you can create an instance from the console to avoid getting an error that the refinement couldnโ€™t be found.

Reek was updated since the data clump issue is fixed but added an excluding for duplicate call to instance#quit since Reek doesnโ€™t distinguish the importance of the ensure block.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

3db06d848f167e0dbbee561384af4434e72bdd80

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed Hash refinement from extension remote template transformer Brooke Kuhlmann 1 -7 / +4 All All
patch

Message

Necessary to resolve deprecation warnings since use of the Hash#use refinement will be removed in the next version.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

9b2964eaaed0fa50ba513941fd5f92fad5627282

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed RuboCop issues configuration Brooke Kuhlmann 2 -14 / +11 All All
patch

Message

This is small enough to fold into the main configuration now that most internationalization issues have been addressed.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

0d4d7d0f3425293c0d9f99a9885635cb0e08f123

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed TRMNL logo from screen popovers Brooke Kuhlmann 4 -28 / +4 All All
minor

Message

This was taking up unnecessary screen real-estate so have removed in favor of having more focus on the image being presented. Plus this reduces another asset from being loaded since the SVG isnโ€™t used elsewhere.

Due to the above change, this also adds, a subtle, dark grey border to the image which provides a nice visual aid for images that are smaller (i.e. wide screen) to show the space they donโ€™t occupy.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

88760945fb57e58a2918d60bf34c74adde4a60e5

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed device width and height Brooke Kuhlmann 14 -52 / +88 All All
minor

Message

Due to a device always being associated with a model, there is no reason to store separate width and height attributes since they can be derived from the model. The following changes make this possible:

  • The schemas were updated to ignore width and height attributes.

  • The device part was updated to delegate to the associated model for dimensions.

  • The device serializer was updated to ensure model dimensions are included.

  • All Devices API actions (and the provisioner) were updated to ensure a model is associated with a device.

  • The Devices API delete action now answers a not found problem detail when a device canโ€™t be found since the serializer always needs a device associated with a model.

  • The database migration removes the width and height columns from the device table.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

7f55983878523de6ae7bf4c09e538e09519b1c69

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed explicit MIME type from HTML style tags Brooke Kuhlmann 4 -5 / +5 All All
patch

Message

Safe to remove since this is implicit behavior and being explicit adds no value.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

db898af67a71a4309de657aa2637d7ee755288a9

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed monad requirements from import actions Brooke Kuhlmann 2 -4 / 0 All All
patch

Message

Safe to remove since the superclass provides this.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

5067457e242bd8709f308cdfca4d487d8102f6e8

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Removed version from firmware show template Brooke Kuhlmann 1 -7 / 0 All All
patch

Message

Redundant and safe to remove since the version is displayed at the top.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

5f8365a208656b5815c50dca3ea42d3b4bbb04cc

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Refactored browser restart and recover returns Brooke Kuhlmann 1 -2 / +3 All All
patch

Message

We only need to return in both of these cases.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

a41a7106819e269fcd8fe0bbd0f792a4d5282841

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Refactored contract rules to use dynamic key root Brooke Kuhlmann 4 -4 / +14 All All
patch

Message

Allows these rules to be more dynamicโ€‰โ€”โ€‰and reusableโ€‰โ€”โ€‰within different structures where the root key might differ. This still assumes the rule is one level deep, though.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

e7c2bd6653d073f581d4ca1963479763f72ac532

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Refactored i18n translation for browser restart Brooke Kuhlmann 2 -2 / +2 All All
patch

Message

Clarifies this translation is for browser restarts. Fixed the keys so they are alphabetically sorted for quick lookup.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

0a4c3511ed11e33c2a064c04bc0818a5b7d92d8e

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated

normal Refactored screen importer to use playlist repository find or create Brooke Kuhlmann 1 -8 / +4 All All
patch

Message

Reduces duplication since we can delegate to the repository for finding or creating records.

Notes

None.

Info

Author

Brooke Kuhlmann Brooke Kuhlmann

Collaborators

None.

Signers

None.

Signature

SHA

2c3f42c35d2dfdcce96966f27b230d1d0ffdf6d4

Fingerprint

F2BC49BC4FFB9A48

Fingerprint Primary Key

D1488588D2DEDF73E62F07A1F2BC49BC4FFB9A48

Created

Updated