Commit Graph

9209 Commits

Author SHA1 Message Date
Adrien Maston 45f65bd1c3 Merge pull request #2466 from basecamp/mobile/hide-sections-from-apps
Mobile / Hide sections from apps
2026-02-03 11:29:08 +01:00
Adrien Maston 2ab9dd8a30 Remove no-longer wanted margin
... after getting the newer stuff from main
2026-02-03 11:25:35 +01:00
Adrien Maston a6a20fa56e Merge branch 'main' into mobile/hide-sections-from-apps
* main: (65 commits)
  Fix crash due to missing ActiveStorage URL options
  Capture backtrace of nested errors
  Remove debug code
  Add more debug info
  Pass all service options
  Prevent duplicate files in user data export
  Write in binmode
  Replace custom IO object with a transport manager IO
  Explain imports & exports
  Add missing method to IO object
  Rename jobs
  Finishing touches
  Delete accounts for failed imports
  Check that associations don't exist
  Bust the cache after import
  Explicitly use the default storage service
  Fix ActiveStorage writing to disk
  Fix crash on successful import email
  Fix orphaned attachments when deleting the whole account
  Add size to remote io
  ...
2026-02-03 10:49:16 +01:00
Stanko Krtalić 0f1850c674 Merge pull request #2474 from basecamp/fix-crash-during-export
Fix crash due to missing ActiveStorage URL options
2026-02-02 21:51:49 +01:00
Stanko K.R. b497aa07e9 Fix crash due to missing ActiveStorage URL options 2026-02-02 21:49:06 +01:00
Stanko Krtalić 571af6be5a Merge pull request #2473 from basecamp/fix-crash-during-export
Capture backtrace of nested errors
2026-02-02 21:38:58 +01:00
Stanko K.R. e587cb6a2b Capture backtrace of nested errors 2026-02-02 21:37:37 +01:00
Stanko K.R. 5eb15ebf4d Remove debug code 2026-02-02 21:33:48 +01:00
Stanko Krtalić 30b2c7f27a Merge pull request #2472 from basecamp/fix-crash-during-export
Add more debug info
2026-02-02 21:26:29 +01:00
Stanko K.R. e0c3e09aa9 Add more debug info 2026-02-02 21:17:43 +01:00
Stanko Krtalić b94ba00ed3 Merge pull request #2471 from basecamp/fix-crash-during-export
Fix crash during export
2026-02-02 20:12:51 +01:00
Stanko K.R. d0c6253716 Pass all service options 2026-02-02 20:06:45 +01:00
Stanko K.R. 88d84b3eaa Prevent duplicate files in user data export 2026-02-02 19:58:57 +01:00
Stanko Krtalić fbffc84fcc Merge pull request #2470 from basecamp/fix-crash-during-export
Write in binmode
2026-02-02 19:50:01 +01:00
Stanko K.R. 4b7bbda222 Write in binmode 2026-02-02 19:46:20 +01:00
Stanko Krtalić adb8bdf59d Merge pull request #2469 from basecamp/fix-crash-during-export
Fix crash during export
2026-02-02 19:35:59 +01:00
Stanko K.R. 4b70c1cc3b Replace custom IO object with a transport manager IO 2026-02-02 19:31:18 +01:00
Stanko K.R. f70560f810 Explain imports & exports 2026-02-02 19:31:12 +01:00
Stanko Krtalić efcd2552f2 Merge pull request #2468 from basecamp/fix-crash-during-export
Add missing method to IO object
2026-02-02 19:09:27 +01:00
Stanko K.R. 77d9331d90 Add missing method to IO object 2026-02-02 19:06:37 +01:00
Stanko Krtalić 10e23c8768 Merge pull request #2356 from basecamp/import-export
Account import & export
2026-02-02 18:28:40 +01:00
Stanko K.R. 5c929238b7 Rename jobs 2026-02-02 18:22:07 +01:00
Stanko K.R. 5dac2fa678 Finishing touches 2026-02-02 18:06:19 +01:00
Adrien Maston 270eacf43a Hide push notifications settings 2026-02-02 17:37:47 +01:00
Adrien Maston 88d99e58bc Hide appearance/devices/developer panel on profile page 2026-02-02 17:30:12 +01:00
Stanko K.R. b06d95a20d Delete accounts for failed imports 2026-02-02 16:24:10 +01:00
Stanko K.R. 539cd638e2 Check that associations don't exist
Without this you can change a belongs to to some other account's record and get access to it
2026-02-02 16:03:50 +01:00
Stanko K.R. dca67c59ca Bust the cache after import
Without this exporting, deleting and then re-imporing an account would reuse the old cache entries since the IDs are the same, but those cache entries will likely have the old account ID and would break
2026-02-02 15:48:49 +01:00
Stanko K.R. 1bc1b68ddf Explicitly use the default storage service 2026-02-02 15:22:16 +01:00
Stanko K.R. 60c63271b9 Fix ActiveStorage writing to disk 2026-02-02 15:16:37 +01:00
Stanko K.R. 96a1d7d2d3 Fix crash on successful import email 2026-02-02 14:47:58 +01:00
Stanko K.R. 6e6e4e9b5a Fix orphaned attachments when deleting the whole account 2026-02-02 14:35:01 +01:00
Stanko K.R. ac7d0308ac Add size to remote io 2026-02-02 14:09:04 +01:00
Stanko K.R. a70bbf472b Fix crash on account destruction 2026-02-02 14:08:52 +01:00
Stanko K.R. edb676cd2c Make remote IOs rewindable
This is required for active storage to work
2026-02-02 13:52:14 +01:00
Stanko K.R. 8be26a283e Tell brakeman that everything is OK 2026-02-02 13:39:54 +01:00
Stanko K.R. d7dcf64310 Remove model validation 2026-02-02 13:38:34 +01:00
Stanko K.R. 54a7ecea98 Fail the import if the check fails 2026-02-02 13:33:06 +01:00
Stanko K.R. 2dbbeffdcf Fix SSL issues when reading remote ZIP files
This is caused by our self-signed PureStorage certs. Once that's taken care of this commit can be reverted.
2026-02-02 13:16:59 +01:00
Stanko K.R. a6609e1bbc Add test got the import job 2026-02-02 13:03:26 +01:00
Stanko K.R. ccbf571be4 Fix crash on commentable check 2026-02-02 12:51:46 +01:00
Stanko K.R. 58a14fb1f5 Fix load error 2026-02-02 12:49:39 +01:00
Stanko K.R. de69d2e6fe Add import cleanup 2026-02-02 12:36:48 +01:00
Stanko K.R. 5bbd7f633d Process everything in chunks
The old implementation loaded files into memory to provide an IO interface. This has the obvious downside of loading any file included in the import, e.g. a 10GB video file, into memory. ZipKit has no native IO object for reading but it provides all the necessary methods to implement one.
2026-02-02 12:36:48 +01:00
Stanko K.R. dd13a3b87c Style 2026-02-02 12:36:48 +01:00
Stanko K.R. 774a44f800 Tweak email copy 2026-02-02 12:36:48 +01:00
Stanko K.R. a791fe1919 Hide importing accounts 2026-02-02 12:36:48 +01:00
Stanko K.R. 27c73ff42b Rename validate to check
Validate is an ActiveModel method, overriding it could have unintended side-effects so I opted to rename it
2026-02-02 12:36:48 +01:00
Stanko K.R. 0240ffca34 Fix import validation failure
During import, card return nil since it doesn't exist yet
2026-02-02 12:36:48 +01:00
Stanko K.R. b659e326e1 Name the export ZIPs differently 2026-02-02 12:36:48 +01:00