Fix changelog page crash when GitHub release notes are unavailable #2314

Merged
Shpigford merged 4 commits from fix/changelog-nil-release-notes-error into main 2025-05-27 08:53:25 +08:00
Shpigford commented 2025-05-27 08:14:03 +08:00 (Migrated from github.com)
No description provided.
cursor[bot] (Migrated from github.com) reviewed 2025-05-27 08:16:40 +08:00
cursor[bot] (Migrated from github.com) left a comment

Bug: Avatar Missing Causes Layout Glitch

On the changelog page, the avatar image is not rendered when @release_notes[:avatar] is nil or empty due to the conditional. This leaves an empty div with fixed dimensions (w-9 h-9), creating a visually broken empty box in the layout.

app/views/pages/changelog.html.erb#L7-L8

803d22a2f6/app/views/pages/changelog.html.erb (L7-L8)

Fix in Cursor


Was this report helpful? Give feedback by reacting with 👍 or 👎

<details open> <summary><h3>Bug: Avatar Missing Causes Layout Glitch</h3></summary> On the changelog page, the avatar image is not rendered when `@release_notes[:avatar]` is nil or empty due to the conditional. This leaves an empty `div` with fixed dimensions (`w-9 h-9`), creating a visually broken empty box in the layout. <p></p> <details> <summary><code>app/views/pages/changelog.html.erb#L7-L8</code></summary> https://github.com/maybe-finance/maybe/blob/803d22a2f6b0f77716b8e5eddc39615dbe90bcdc/app/views/pages/changelog.html.erb#L7-L8 </details> <a href="https://cursor.com/open?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7ImJ1ZyI6ImV5SnNiMk5oZEdsdmJuTWlPbHQ3SW1acGJHVWlPaUpoY0hBdmRtbGxkM012Y0dGblpYTXZZMmhoYm1kbGJHOW5MbWgwYld3dVpYSmlJaXdpYzNSaGNuUk1hVzVsSWpvM0xDSmxibVJNYVc1bElqbzRMQ0pqYjJSbFRHbHVaWE1pT2x0ZGZWMHNJbWxrSWpvaU16SmhOVFJtWlRVdE9URTFPUzAwWldGbExUbG1aREF0TlRZMk5EaGxOR1k0WW1SaUlpd2laR1Z6WTNKcGNIUnBiMjRpT2lKUGJpQjBhR1VnWTJoaGJtZGxiRzluSUhCaFoyVXNJSFJvWlNCaGRtRjBZWElnYVcxaFoyVWdhWE1nYm05MElISmxibVJsY21Wa0lIZG9aVzRnWUVCeVpXeGxZWE5sWDI1dmRHVnpXenBoZG1GMFlYSmRZQ0JwY3lCdWFXd2diM0lnWlcxd2RIa2daSFZsSUhSdklIUm9aU0JqYjI1a2FYUnBiMjVoYkM0Z1ZHaHBjeUJzWldGMlpYTWdZVzRnWlcxd2RIa2dZR1JwZG1BZ2QybDBhQ0JtYVhobFpDQmthVzFsYm5OcGIyNXpJQ2hnZHkwNUlHZ3RPV0FwTENCamNtVmhkR2x1WnlCaElIWnBjM1ZoYkd4NUlHSnliMnRsYmlCbGJYQjBlU0JpYjNnZ2FXNGdkR2hsSUd4aGVXOTFkQzRpTENKamIyNW1hV1JsYm1ObElqb3dMakkwTnpReU1EWXlPVEUwT1RNeU16VTJMQ0pqWVhSbFoyOXllU0k2SWxCUFZFVk9WRWxCVEY5RlJFZEZYME5CVTBVaWZRIiwiYnJhbmNoIjoiZml4L2NoYW5nZWxvZy1uaWwtcmVsZWFzZS1ub3Rlcy1lcnJvciJ9LCJpYXQiOjE3NDgzMDUwMDAsImV4cCI6MTc0ODkwOTgwMH0.d0spSfydblKhIDOSrCoacPqSDrRqh3XLTjjpR8xmLcu4mARIkE3LgkXd2wCH3Hivatz2KBn8yYRnDGcXkDAkLubRHXFXjrehsc7J2Vepjvwqg5WhfQaxrfonxNMb-Bb-qsDaer9e7-e3kDUq-xrws8AtuWnyjRlU7FVAnfmMXtaoZcJMPFUgLh-AY1CkrwZTsy_MvELOYa6G8Hst7ps6dBYvYkEsFevm7GE4xpS-BjXjAAKFilR3JspXwtvPs35y3Z7hp-a9Fw_7SMRbah8uWCCdP65isvpXEEalsfDiz27HqHNlIxXE7eoZRrSXks2Tlro5zqSGna-5GCZdVlgIuA">Fix in Cursor</a> </details> --- _Was this report helpful? Give feedback by reacting with 👍 or 👎_
cursor[bot] (Migrated from github.com) reviewed 2025-05-27 08:29:34 +08:00
cursor[bot] (Migrated from github.com) left a comment

Bug: Changelog View Fails on Incomplete Release Notes

The changelog view crashes when @release_notes contains nil values for published_at or body (due to calling strftime or html_safe on nil). The controller's fallback only handles @release_notes being entirely nil, not a hash with nil fields, which contradicts the test expecting incomplete data to render successfully.

app/controllers/pages_controller.rb#L31-L41

6bf6adc9fd/app/controllers/pages_controller.rb (L31-L41)

test/controllers/pages_controller_test.rb#L31-L49

6bf6adc9fd/test/controllers/pages_controller_test.rb (L31-L49)

app/views/pages/changelog.html.erb#L17-L18

6bf6adc9fd/app/views/pages/changelog.html.erb (L17-L18)

Fix in Cursor


Bug: String Method Error in Changelog View

Calling .first on a String object raises a NoMethodError. This occurs when attempting to get the first character of @release_notes[:username] in the changelog view when the avatar is missing.

app/views/pages/changelog.html.erb#L12-L13

6bf6adc9fd/app/views/pages/changelog.html.erb (L12-L13)

Fix in Cursor


Was this report helpful? Give feedback by reacting with 👍 or 👎

<details open> <summary><h3>Bug: Changelog View Fails on Incomplete Release Notes</h3></summary> The changelog view crashes when `@release_notes` contains nil values for `published_at` or `body` (due to calling `strftime` or `html_safe` on nil). The controller's fallback only handles `@release_notes` being entirely nil, not a hash with nil fields, which contradicts the test expecting incomplete data to render successfully. <p></p> <details> <summary><code>app/controllers/pages_controller.rb#L31-L41</code></summary> https://github.com/maybe-finance/maybe/blob/6bf6adc9fdc1d4a8cc4848fcc860958e4487ba28/app/controllers/pages_controller.rb#L31-L41 </details> <details> <summary><code>test/controllers/pages_controller_test.rb#L31-L49</code></summary> https://github.com/maybe-finance/maybe/blob/6bf6adc9fdc1d4a8cc4848fcc860958e4487ba28/test/controllers/pages_controller_test.rb#L31-L49 </details> <details> <summary><code>app/views/pages/changelog.html.erb#L17-L18</code></summary> https://github.com/maybe-finance/maybe/blob/6bf6adc9fdc1d4a8cc4848fcc860958e4487ba28/app/views/pages/changelog.html.erb#L17-L18 </details> <a href="https://cursor.com/open?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7ImJ1ZyI6ImV5SnNiMk5oZEdsdmJuTWlPbHQ3SW1acGJHVWlPaUpoY0hBdlkyOXVkSEp2Ykd4bGNuTXZjR0ZuWlhOZlkyOXVkSEp2Ykd4bGNpNXlZaUlzSW5OMFlYSjBUR2x1WlNJNk16RXNJbVZ1WkV4cGJtVWlPalF4TENKamIyUmxUR2x1WlhNaU9sdGRmU3g3SW1acGJHVWlPaUowWlhOMEwyTnZiblJ5YjJ4c1pYSnpMM0JoWjJWelgyTnZiblJ5YjJ4c1pYSmZkR1Z6ZEM1eVlpSXNJbk4wWVhKMFRHbHVaU0k2TXpFc0ltVnVaRXhwYm1VaU9qUTVMQ0pqYjJSbFRHbHVaWE1pT2x0ZGZTeDdJbVpwYkdVaU9pSmhjSEF2ZG1sbGQzTXZjR0ZuWlhNdlkyaGhibWRsYkc5bkxtaDBiV3d1WlhKaUlpd2ljM1JoY25STWFXNWxJam94Tnl3aVpXNWtUR2x1WlNJNk1UZ3NJbU52WkdWTWFXNWxjeUk2VzExOVhTd2lhV1FpT2lJME9XSXlZemN5TkMwME9HTmtMVFE0WmpNdFlqRTVOeTFsWmpWbE9HUmlZelE0WWpVaUxDSmtaWE5qY21sd2RHbHZiaUk2SWxSb1pTQmphR0Z1WjJWc2IyY2dkbWxsZHlCamNtRnphR1Z6SUhkb1pXNGdZRUJ5Wld4bFlYTmxYMjV2ZEdWellDQmpiMjUwWVdsdWN5QnVhV3dnZG1Gc2RXVnpJR1p2Y2lCZ2NIVmliR2x6YUdWa1gyRjBZQ0J2Y2lCZ1ltOWtlV0FnS0dSMVpTQjBieUJqWVd4c2FXNW5JR0J6ZEhKbWRHbHRaV0FnYjNJZ1lHaDBiV3hmYzJGbVpXQWdiMjRnYm1sc0tTNGdWR2hsSUdOdmJuUnliMnhzWlhJbmN5Qm1ZV3hzWW1GamF5QnZibXg1SUdoaGJtUnNaWE1nWUVCeVpXeGxZWE5sWDI1dmRHVnpZQ0JpWldsdVp5QmxiblJwY21Wc2VTQnVhV3dzSUc1dmRDQmhJR2hoYzJnZ2QybDBhQ0J1YVd3Z1ptbGxiR1J6TENCM2FHbGphQ0JqYjI1MGNtRmthV04wY3lCMGFHVWdkR1Z6ZENCbGVIQmxZM1JwYm1jZ2FXNWpiMjF3YkdWMFpTQmtZWFJoSUhSdklISmxibVJsY2lCemRXTmpaWE56Wm5Wc2JIa3VJaXdpWTI5dVptbGtaVzVqWlNJNk1Td2lZMkYwWldkdmNua2lPaUpNVDBkSlExOUNWVWNpZlEiLCJicmFuY2giOiJmaXgvY2hhbmdlbG9nLW5pbC1yZWxlYXNlLW5vdGVzLWVycm9yIn0sImlhdCI6MTc0ODMwNTc3NCwiZXhwIjoxNzQ4OTEwNTc0fQ.OBpK-v_AtWa82Td4xuack8K6hX-3dtdTF4pKGkQkAPkmCEBsnMItwHNGbLBIw-QDdcLuyvrT-OPVZ68VuCqFZNXlnPyjjMRi7EgEGVvC8UwhndkfXb1f-Nb4o57YZBJdM4sUIBqma1qDCZTGQS3Q1LlxUSFG05g5skAxEtROwjTw-Wb8EN-RvdLaPywwXLEBiWbInY_zu3cFuPkWAu3ckoenG-DFaX8H-kgHFlRm1rnh6QLfdIquMv72OVSgF9UcrzYS8q8-Vfs8PX1L_ZfqQ_vJN8Ej7fQl5mSbc7Y2XooN5uVC_9hBNTy13VdlZWda3JUDjoRdMd7xSJ8FfACFYg">Fix in Cursor</a> </details> --- <details open> <summary><h3>Bug: String Method Error in Changelog View</h3></summary> Calling `.first` on a String object raises a `NoMethodError`. This occurs when attempting to get the first character of `@release_notes[:username]` in the changelog view when the avatar is missing. <p></p> <details> <summary><code>app/views/pages/changelog.html.erb#L12-L13</code></summary> https://github.com/maybe-finance/maybe/blob/6bf6adc9fdc1d4a8cc4848fcc860958e4487ba28/app/views/pages/changelog.html.erb#L12-L13 </details> <a href="https://cursor.com/open?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7ImJ1ZyI6ImV5SnNiMk5oZEdsdmJuTWlPbHQ3SW1acGJHVWlPaUpoY0hBdmRtbGxkM012Y0dGblpYTXZZMmhoYm1kbGJHOW5MbWgwYld3dVpYSmlJaXdpYzNSaGNuUk1hVzVsSWpveE1pd2laVzVrVEdsdVpTSTZNVE1zSW1OdlpHVk1hVzVsY3lJNlcxMTlYU3dpYVdRaU9pSmtZbVk1T1RkbU15MDVObUZsTFRRNU9EWXRZbVUwWlMwMVlXTmhOek00TkRObE5EY2lMQ0prWlhOamNtbHdkR2x2YmlJNklrTmhiR3hwYm1jZ1lDNW1hWEp6ZEdBZ2IyNGdZU0JUZEhKcGJtY2diMkpxWldOMElISmhhWE5sY3lCaElHQk9iMDFsZEdodlpFVnljbTl5WUM0Z1ZHaHBjeUJ2WTJOMWNuTWdkMmhsYmlCaGRIUmxiWEIwYVc1bklIUnZJR2RsZENCMGFHVWdabWx5YzNRZ1kyaGhjbUZqZEdWeUlHOW1JR0JBY21Wc1pXRnpaVjl1YjNSbGMxczZkWE5sY201aGJXVmRZQ0JwYmlCMGFHVWdZMmhoYm1kbGJHOW5JSFpwWlhjZ2QyaGxiaUIwYUdVZ1lYWmhkR0Z5SUdseklHMXBjM05wYm1jdUlpd2lZMjl1Wm1sa1pXNWpaU0k2TUM0eU5qSTJNamM1TVRVME9URTRNemt5TENKallYUmxaMjl5ZVNJNklreFBSMGxEWDBKVlJ5SjkiLCJicmFuY2giOiJmaXgvY2hhbmdlbG9nLW5pbC1yZWxlYXNlLW5vdGVzLWVycm9yIn0sImlhdCI6MTc0ODMwNTc3NCwiZXhwIjoxNzQ4OTEwNTc0fQ.T2R0w4JpAbFMrNSrrVKpDpftzXzj4StU96zzjf8-2StCPRtaIjqDc2iLv5P6PK7j-zP5zv63pqMfSctiztlfRPRbHz8vABQK8HG1FDcHnWi4qNFJlr7G9dfWbtr4TEumtyi7kCl7WIDtGyg7asvlzo4n31EVxq1l-auFOGxeVVAFyCcqfipEcHb1BX3PUaoueAq3WMCXiWu0NivsNFM6Wxo_tu5DwEwwC1jGWvWMRKENMefPja0A2W8aNSw99uoPsbz8LEnBN4fOZun_o54WzNT4UbJU159QK8BeQmkO4RAFhBSUmKpS2GJi9kd0tLv3S6A0Bevy3s_drpOBz0wW8g">Fix in Cursor</a> </details> --- _Was this report helpful? Give feedback by reacting with 👍 or 👎_
cursor[bot] (Migrated from github.com) reviewed 2025-05-27 08:33:55 +08:00
cursor[bot] (Migrated from github.com) left a comment

BugBot reviewed your changes and found no bugs!


Was this report helpful? Give feedback by reacting with 👍 or 👎

### ✅ BugBot reviewed your changes and found no bugs! --- _Was this report helpful? Give feedback by reacting with 👍 or 👎_
cursor[bot] (Migrated from github.com) reviewed 2025-05-27 08:52:04 +08:00
cursor[bot] (Migrated from github.com) left a comment

Bug: Date Format Conversion Error

The onboarding preferences test selects "DD/MM/YYYY" for the date format but asserts the saved value is "%d/%m/%Y". This indicates the application is expected to convert the human-readable format selected in the form to a strftime pattern before saving, but the test failure suggests this conversion may not be happening correctly.

test/system/onboardings_test.rb#L128-L129

5ab9c4a725/test/system/onboardings_test.rb (L128-L129)

Fix in Cursor


Was this report helpful? Give feedback by reacting with 👍 or 👎

<details open> <summary><h3>Bug: Date Format Conversion Error</h3></summary> The onboarding preferences test selects "DD/MM/YYYY" for the date format but asserts the saved value is "%d/%m/%Y". This indicates the application is expected to convert the human-readable format selected in the form to a strftime pattern before saving, but the test failure suggests this conversion may not be happening correctly. <p></p> <details> <summary><code>test/system/onboardings_test.rb#L128-L129</code></summary> https://github.com/maybe-finance/maybe/blob/5ab9c4a725b5e37f425189661419ccef8069a361/test/system/onboardings_test.rb#L128-L129 </details> <a href="https://cursor.com/open?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7ImJ1ZyI6ImV5SnNiMk5oZEdsdmJuTWlPbHQ3SW1acGJHVWlPaUowWlhOMEwzTjVjM1JsYlM5dmJtSnZZWEprYVc1bmMxOTBaWE4wTG5KaUlpd2ljM1JoY25STWFXNWxJam94TWpnc0ltVnVaRXhwYm1VaU9qRXlPU3dpWTI5a1pVeHBibVZ6SWpwYlhYMWRMQ0pwWkNJNklqazVaakV6TjJZeUxUZGlOakF0TkRJeVl5MWhaVEV6TFRVeFpEUmtZVE13WkRGaU1TSXNJbVJsYzJOeWFYQjBhVzl1SWpvaVZHaGxJRzl1WW05aGNtUnBibWNnY0hKbFptVnlaVzVqWlhNZ2RHVnpkQ0J6Wld4bFkzUnpJRndpUkVRdlRVMHZXVmxaV1Z3aUlHWnZjaUIwYUdVZ1pHRjBaU0JtYjNKdFlYUWdZblYwSUdGemMyVnlkSE1nZEdobElITmhkbVZrSUhaaGJIVmxJR2x6SUZ3aUpXUXZKVzB2SlZsY0lpNGdWR2hwY3lCcGJtUnBZMkYwWlhNZ2RHaGxJR0Z3Y0d4cFkyRjBhVzl1SUdseklHVjRjR1ZqZEdWa0lIUnZJR052Ym5abGNuUWdkR2hsSUdoMWJXRnVMWEpsWVdSaFlteGxJR1p2Y20xaGRDQnpaV3hsWTNSbFpDQnBiaUIwYUdVZ1ptOXliU0IwYnlCaElITjBjbVowYVcxbElIQmhkSFJsY200Z1ltVm1iM0psSUhOaGRtbHVaeXdnWW5WMElIUm9aU0IwWlhOMElHWmhhV3gxY21VZ2MzVm5aMlZ6ZEhNZ2RHaHBjeUJqYjI1MlpYSnphVzl1SUcxaGVTQnViM1FnWW1VZ2FHRndjR1Z1YVc1bklHTnZjbkpsWTNSc2VTNGlMQ0pqYjI1bWFXUmxibU5sSWpvd0xqSXpOVEV5T1RBeU56UXhOalk1T0RZc0ltTmhkR1ZuYjNKNUlqb2lURTlIU1VOZlFsVkhJbjAiLCJicmFuY2giOiJmaXgvY2hhbmdlbG9nLW5pbC1yZWxlYXNlLW5vdGVzLWVycm9yIn0sImlhdCI6MTc0ODMwNzEyNCwiZXhwIjoxNzQ4OTExOTI0fQ.fsJf4YASP0x_tMshZnVkvAAn6wGY--dzzGdSPGAdYuC9k4oKDOXc5IKUh4kGIuYtCMGf0lXHD_Brc_K9eYRzlAGvSrbdKapkk4AAQl_6PkF_2IrYU_DpXmrFA8Vj2RaYbwUu0CYW3PpmKEVKrTpJaqDVVxD6JArNg4_ePxca1lrReZ10qJNVxtl6gfqGDbuyFPS30Y7TIUPQTElrAYuEF7yBUAKivnNMZyNp544DBuS8y8qV78CYUGG20uRQIP_o7-0-FAYCDnQXUwlZTNG9EY5POK8UihvYPhZCasurf3Ws2RY222hBiNrqhxLaV6ue0UUAiaNTJVoWMpfc41wJgw">Fix in Cursor</a> </details> --- _Was this report helpful? Give feedback by reacting with 👍 or 👎_
Sign in to join this conversation.