* Improve shortcuts
* WIP
* View Mode menu
* Styling updates
* split activeControls
* Reusable Menu component
* Menu updates
* Sun menu updates
* Tidyups
* CommonAlert
* Updates
* WIP change to currentViewMode
* Serialization
* defineModel
* Tidy up emits
* Remove v-model
* Force close other panels
* Remove transition
* More robust isTypingComment
* activeControl > activePanel
* View menu shortcuts
* Explode menu definemodel
* Small changes from Benjamin
* Add colors view mode
* Fix server problem in data.ts
* Fix build
* feat(multi-region): metrics for knex for all regional databases
* improve typing in knex monitoring
* error logging around migrations
* await async calls for db connections
- add 'region' label
* add missing 'await' statements
* more missing 'await'
* guard against re-adding listeners
* It was possible for update to be called before initialize
- this change collapses both into initialize, and adds checks to ensure initialization is done before being updated for new regions
* separate back into non-exported const and rename
* align with main
* Amend order at which metrics is enabled
* feat(gatekeeper): show subscription seats
* Enabled summary on billing page
* Made interval dynamic
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* chore(healthchecks): refactor out of modules
* feat(server): multi-region aware liveness and readiness checks
* Add tests for redis & postgres healthchecks
* do not close Redis client after checking it is healthy, we now use a shared client
* Fixed the issue where TAS only shapecasts were not running properly on all batch objects, missing some of them. Some small updates to BoxSelection
* Improved shapecast travesal time 4X. Only passing batch objects only once to intersectTASRange and also added the builtin CONTAINED acceleration to bounds testing.
* Some critical typescript errors
* Added missing types from export
* fix(automate): redirect to workspace after auth if possible
* fix(automate): include session in github auth flow
* chore(automate): update props after merge
* fix(automate): pick => fragment
* fix(automate): use fragments correctly