Releases: nasa/openmct
v4.0.0
What's Changed
Caution
Breaking Changes
- The
Overlay
API has been updated. The optiondismissable
has been renamed todismissible
. If you are using thedismissable
option in your code, you will need to update it todismissible
to avoid errors.
💥 Notable Changes
openmct-e2e
subpackage
The Open MCT e2e testing framework has been separated into a standalone package, openmct-e2e
, in
preparation for distribution as a dependency for consumers of Open MCT.
Importing Open MCT
module
, main
, import
and require
fields have been added to the package.json
so that the
openmct
main bundle can be imported using either CommonJS or ESModule syntax.
Note
Open MCT is published in a UMD module format. Although this allows for flexibility in consumption,
the framework is still intended to be used within a browser environment where the window
global
is available. See the openmct-hello
repository for an
example of using or extending the Open MCT framework.
Accessibility
- The default theme "Espresso" is now WCAG 2.0 AA and Section 508 compliant. This is automatically enforced through our visual accessibility testing suite, which runs on every commit.
API
TelemetryAPI
- [EXPERIMENTAL] Add support for telemetry batching when using WebSockets
Misc
index.html
is no longer published as part of the distribution.- The Timelist object no longer automatically scrolls to the current event.
- Tab Displays no longer eager-load by default (tabs are now lazy-loaded by default).
Commits
- refactor: migrate to ESM by @LeoDog896 in #7331
- Table performance paging by @jvigliotta in #7399
- Make Tabs eager loading configurable but default to false by @davetsay in #7199
- Support telemetry batching and move WebSocket handling to worker by @akhenry in #7391
- Remove all logic around auto centering and scrolling the timelist by @shefalijoshi in #7474
- chore: remove
type: module
, createopenmct-e2e
subpackage by @ozyx in #7590 - chore: remove all usage of deprecated Time API methods by @ozyx in #7688
- fix(publishing): no index.html on npm pack by @evenstensberg in #7699
- test(e2e): Major refactor and stabilization of e2e tests by @unlikelyzero in #7581
🏕 Features
Actions
Reload
A new action "Reload" has been added to the context menus for all components that provide a view. Triggering this action will reload the view and all of its children. This is useful for reloading an individual view without needing to refresh the entire page.
JSON Import / Export
- JSON import and export feature now shows a progress bar when using external persistence storage
Plan
- Swimlanes can now be ordered based on the Plan JSON
- Activities within a plan may now have their "state" set in the inspector view.
- Plan activities must contain a unique
id
property in order to enable this feature.
- Plan activities must contain a unique
Timelist
- Activities may now be filtered by any of their metadata values.
CouchDB Plugin
- Support for using multiple CouchDB databases at once
- Support for read-only database configurations
- See the CouchDB plugin documentation for more details
Themes
- Add "Darkmatter" theme
openmct.install(openmct.plugins.DarkmatterTheme());
Commits
- feat(#7367): ProgressBar for
ExportAsJSONAction
by @ozyx in #7374 - feat(#7394): Incorporate Status Indicators into the main Vue app by @ozyx in #7395
- Allow specification of swimlanes via configuration by @shefalijoshi in #7200
- New action to reload an individual view and all of its children by @scottbell in #7362
- Add filtering by metadata by @shefalijoshi in #7388
- Activity state display for plans in Gantt and Time list views by @shefalijoshi in #7370
- Add support for multiple CouchDB databases, multiple namespaces, and
readOnly
configurations by @scottbell in #7413 - Add Expanded view for Time List by @shefalijoshi in #7378
- feat: Mission Status for Situational Awareness by @ozyx in #7418
- [Mobile] Add Global Search to Mobile by @rukmini-bose in #7477
- d3 implementation of progress pie chart by @shefalijoshi in #7485
- [Darkmatter] Create new darkmatter theme by @rukmini-bose in #7682
🎉 Enhancements
- Flexible and Stacked Plot layouts styling behavior is now consistent
- JSON import performance has been significantly improved
- Recent objects panel is now collapsible
Commits
- [Flexible Layouts] Flexible Layout styling fixes by @khalidadil in #7319
- Timelist centering algorithm change and duration formatting change by @shefalijoshi in #7194
- Change Imagery positional freshness label from 'POS' to 'ROV' by @charlesh88 in #7409
- Table CPU Performance Improvements by @jvigliotta in #7392
- Fix constrast for accessibility by @charlesh88 in #7315
- Add Collapse to Recent Objects by @rukmini-bose in #7502
- Improve performance of JSON import and add progress bar by @scottbell in #7654
🔧 Maintenance
Commits
- chore(deps-dev): bump eslint from 8.53.0 to 8.54.0 by @dependabot in #7250
- [Build] Update to Node 20 and remove 16 (EOL) by @unlikelyzero in #7260
- chore(package.json): fix warning during npm publish by @ozyx in #7253
- [CLA Received] wrote an e2e test for can create a notebook object by @saram7619 in #7236
- chore: bump version to
3.3.0-next
by @ozyx in #7273 - chore(deps-dev): bump @vue/compiler-sfc from 3.3.8 to 3.3.10 by @dependabot in #7270
- fix: define main entry point in
package.json
by @ozyx in #7298 - chore(deps): bump github/codeql-action from 2 to 3 by @dependabot in #7296
- chore(deps-dev): bump marked from 9.1.5 to 11.1.0 by @dependabot in #7299
- Add CodeQL badge to readme by @akhenry in #6803
- PR Cop 2.0 by @unlikelyzero in #5815
- Automatically check additional views for memory leaks on navigation by @scottbell in #7300
- [CI] Remove unneeded parameterization and increase parallelism by @unlikelyzero in #7310
- Add tests for inspector data pivoting by @scottbell in #7282
- Reduce bundle size by @ozyx in #7246
- [CLA Approved] feat: AMD -> ES6 by @LeoDog896 in #7029
- chore: watch mode improvements by @unlikelyzero in #7326
- fix: cleanup from #7029 by @LeoDog896 in #7328
- chore(deps-dev): bump @babel/eslint-parser from 7.22.5 to 7.23.3 by @dependabot in #7232
- chore(deps-dev): bump typescript from 5.2.2 to 5.3.3 by @dependabot in #7335
- chore(deps-dev): bump @vue/compiler-sfc from 3.3.10 to 3.4.3 by @dependabot in #7332
- chore: update copyright end year to 2024 by @ozyx in #7364
- [e2e] Update remaining tests and add missing comparison coverage by @unlikelyzero in #7363
- Mct7367-tests by @unlikelyzero in #7387
- move performance tests to GHA by @unlikelyzero in #7412
- Skip some tests, fix a mislabeled test, and add default condition for tabs by @unlikelyzero in #7422
- chore(deps-dev): bump moment from 2.29.4 to 2.30.1 by @dependabot in #7425
- chore(deps-dev): bump sass-loader from 13.3.2 to 14.0.0 by @dependabot in #7428
- chore(deps-dev): bump marked from 11.1.0 to 11.2.0 by @dependabot in #7427
- [e2e] Steps to reduce flakiness in test reporting by @unlikelyzero in #7436
- test(visual): add unclipped activity names visual test...
v3.2.1
v3.2.0
What's Changed
💥 Notable Changes
- cherry-pick(#7241) Provide visibility based rendering as part of the view api by @scottbell in #7249
🏕 Features
- Add static limit values to LAD tables by @scottbell in #7193
- Defer rendering for inactive tabs in open mct tabbed view by @scottbell in #7149
🔧 Maintenance
- chore(deps-dev): bump vue-eslint-parser from 9.3.1 to 9.3.2 by @dependabot in #7125
- chore: remove
vue/compat
and complete Vue 3 migration by @ozyx in #7133 - chore(deps-dev): bump eslint-plugin-vue from 9.15.0 to 9.17.0 by @dependabot in #6907
- chore(deps-dev): bump jasmine-core from 5.0.0 to 5.1.1 by @dependabot in #7008
- chore: bump version to
3.2.0-next
by @ozyx in #7117 - [Tooltips] Finish tests for gauges, telemetry tables, recently viewed items, and time strips by @khalidadil in #7145
- chore(deps-dev): bump sass from 1.63.4 to 1.68.0 by @dependabot in #7086
- chore(deps): bump actions/setup-node from 3 to 4 by @dependabot in #7166
- chore(deps-dev): bump cspell from 7.3.6 to 7.3.8 by @dependabot in #7162
- chore(deps-dev): bump eslint-plugin-unicorn from 44.0.2 to 48.0.1 by @dependabot in #7163
- chore(deps-dev): bump painterro from 1.2.78 to 1.2.87 by @dependabot in #7165
- chore(deps-dev): bump sinon from 15.1.0 to 17.0.0 by @dependabot in #7155
- chore(deps-dev): bump @braintree/sanitize-url from 6.0.2 to 6.0.4 by @dependabot in #7190
- chore(deps-dev): bump eslint-plugin-vue from 9.17.0 to 9.18.1 by @dependabot in #7188
- chore(deps-dev): bump npm-run-all2 from 6.0.6 to 6.1.1 by @dependabot in #7185
- chore(deps): bump actions/checkout from 3 to 4 by @dependabot in #7034
- chore: bump Playwright to v1.39.0 by @ozyx in #7201
- chore(deps-dev): bump uuid from 9.0.0 to 9.0.1 by @dependabot in #7207
- chore(deps-dev): bump @vue/compiler-sfc from 3.3.4 to 3.3.8 by @dependabot in #7208
- chore(deps-dev): bump webpack-merge from 5.9.0 to 5.10.0 by @dependabot in #7205
- chore(deps-dev): bump eslint-plugin-you-dont-need-lodash-underscore from 6.12.0 to 6.13.0 by @dependabot in #7213
- chore(deps-dev): bump @percy/cli from 1.26.0 to 1.27.4 by @dependabot in #7212
- chore(deps-dev): bump eslint from 8.48.0 to 8.53.0 by @dependabot in #7211
- [CI] Dependabot skip rebasing on every merge by @unlikelyzero in #7216
- chore(deps-dev): bump @types/jasmine from 4.3.4 to 5.1.2 by @dependabot in #7219
- chore(deps-dev): bump webpack from 5.88.0 to 5.89.0 by @dependabot in #7186
- chore(deps-dev): bump eslint-plugin-unicorn from 48.0.1 to 49.0.0 by @dependabot in #7218
- chore(deps-dev): bump vue from 3.3.4 to 3.3.8 by @dependabot in #7214
- fix(index.html): use defer and move script to head by @evenstensberg in #6999
- docs: update release.yml by @ozyx in #7518
🐛 Bug Fixes
- chore(
cspell
): use--quiet
flag by @ozyx in #7110 - [Staleness] Fix staleness on clock change by @khalidadil in #7088
- Handle negative height & width in image annotations by @scottbell in #7116
- [Staleness] Fix issue with object view staleness styles not being reset on clock change by @khalidadil in #7122
- Fix remaining
vue-compat
warnings by @depperm in #6966 - do not store state in singleton action by @davetsay in #7121
- When dropping an unsupported file onto a notebook entry, tell the user it isnt supported by @scottbell in #7115
- Rename all configuration tabs to
Config
by @davetsay in #7140 - fix(#7143): add
eslint-plugin-no-sanitize
and fix errors by @ozyx in #7144 - Prevent infinite loop when updating a table row in place by @scottbell in #7154
- [Filters] Fix view based filters when string input is enabled by @jvigliotta in #7050
- [Plots] Gracefully handle Float32Array breaking values by @jvigliotta in #7138
- Removed errant brace in ObjectAPI Error by @michaelrogers in #7192
- Refine display options and add Independent Time Conductor option for Time List view by @shefalijoshi in #7161
- fix: DisplayLayout and FlexibleLayout toolbar actions only apply to selected layout by @ozyx in #7184
- docs: update Telemetry Formats section by @ozyx in #7173
- docs: add related repos section to README.md by @ozyx in #7111
- docs: add warning about deploying devServer to prod environment by @ozyx in #7203
- [Dependency] Update to skip regular releases of marked by @unlikelyzero in #7209
- [CI] Add CI Troubleshooting doc by @unlikelyzero in #6988
- Changed global time to use time context current value for ITC by @michaelrogers in #7191
- fix(#7234): 'Remove Container' button not working in Flexible Layout toolbar by @ozyx in #7240
- Only show marquee for selected item by @davetsay in #7180
- Gauge fixes for NaN and composition policy by @charlesh88 in #5608
- chore: bump version to
3.2.0
by @ozyx in #7266 - cherry-pick(#7262): Update API documentation for Visibility-Based Rendering by @scottbell in #7267
- fix: 2d canvas fallback logic by @ozyx in #7295
Full Changelog: v3.1.1...v3.2.0
v3.1.1
What's Changed
This is a patch release to fix 2 medium severity vulnerabilities reported in CVE-2023-45884 and CVE-2023-45885.
🔧 Maintenance
🐛 Bug Fixes
- cherry-pick(#7144): fix(#7143): add
eslint-plugin-no-unsanitized
and fix errors by @ozyx in #7148- Fixes CVE-2023-45884, CVE-2023-45885
- cherry-pick(#7203): docs: add warning about deploying devServer to prod environment by @ozyx in #7237
Full Changelog: v3.1.0...v3.1.1
v3.1.0
What's Changed
🏕 Features
- Embedding images in notebook entries by @scottbell in #7048
- Add markdown to notebook entries by @scottbell in #7084
🔧 Maintenance
- [CI] Update docker login step to work across forks and non-nasa-users by @unlikelyzero in #6891
- Add script to delete annotations by @scottbell in #7069
- chore: move indexTest to kebab-case by @evenstensberg in #6860
- chore: bump Playwright to
1.36.2
by @ozyx in #6901 - Feat(tooling): add cspell by @evenstensberg in #6892
- feat(linting): concurrent linting by @evenstensberg in #6969
- feat(eslint): sort import rule by @evenstensberg in #6939
- fix(package.json): add author by @evenstensberg in #6941
- chore: modify cspell config and fix all typos by @ozyx in #6908
- chore: add vue3 to eslint, fix errors, and modify lint script by @ozyx in #6910
- chore: bump version to
3.1.0-next
and update docs by @ozyx in #6921 - chore(package.json): add fields by @evenstensberg in #6971
- chore(npm): dont generate lockfile by @evenstensberg in #6970
- chore(deps-dev): bump eslint from 8.43.0 to 8.48.0 by @dependabot in #7010
- chore: pin vue package versions by @ozyx in #7032
- chore(deps): bump docker/login-action from 2 to 3 by @dependabot in #7053
- PascalCase files by @depperm in #6955
- chore(deps-dev): bump eslint-config-prettier from 8.8.0 to 9.0.0 by @dependabot in #6897
- chore(deps-dev): bump typescript from 5.1.3 to 5.2.2 by @dependabot in #7007
- chore: add
release.yml
by @ozyx in #7090 - chore(deps-dev): bump cspell from 7.1.1 to 7.3.6 by @dependabot in #7067
- chore(deps-dev): bump eslint-plugin-compat from 4.1.4 to 4.2.0 by @dependabot in #7104
- Catchall for bug fix PRs and add performance category by @shefalijoshi in #7096
- [CI] Stabilize visual tests, remove appAction, and update pane buttons by @unlikelyzero in #7033
- Fix and re-enable disabled unit test suites by @ozyx in #6990
⚡ Performance
- Memory leak fixes for several views by @shefalijoshi in #7057
- Eagerly lose WebGL context on
DrawWebGL.destroy()
by @davetsay in #7080
🐛 Bug Fixes
- fix: toggling markers, alarm markers, marker style + update
Vue.extend()
usage to Vue 3 by @ozyx in #6868 - fix: suppress deprecation warnings to once per unique args by @ozyx in #6875
- Set the raw series limits so that we can get the raw series limits by @shefalijoshi in #6877
- Synchronize timers between multiple users by @akhenry in #6885
- Only load annotations in fixed time mode or frozen by @scottbell in #6866
- Fix Plan View duplicate scrollbars by @charlesh88 in #6865
- Dismiss the independent time conductor popup on unmount by @shefalijoshi in #6859
- Check for null in DuplicateAction by @scottbell in #6904
- Light refactor of visual tests by @unlikelyzero in #5585
- fix: use
loadDelay
generator setting in subscriptions as well by @ozyx in #6918 - Fix remote clock subscription by @shefalijoshi in #6919
- Condition sets now provide the timeContext they're using when sending requests by @shefalijoshi in #6929
- fix(#6942): Toggling FlexibleLayout toolbar options reflects immediately in the view by @ozyx in #6943
- fix(e2e): Stabilize ITC tests by @ozyx in #6933
- Recent objects do not update when object names are changed by @scottbell in #6927
- [Tooltips] Fixes for dictionary objects and self-referential objects by @khalidadil in #6916
- Ensure that dynamically created vue components are destroyed. by @shefalijoshi in #6948
- Progress Bar Display by @depperm in #6952
- feat(tooling): adds nvm by @evenstensberg in #6938
- fix(html): minor fixes from validation by @evenstensberg in #6962
- Add strategy latest and timeContext to auto flow tabular and gauge views by @shefalijoshi in #6960
- Fix couchdb setup and add a note on how to remove the container by @unlikelyzero in #6915
- [Aborts] Abort Telemetry Collections requests on Navigation, Add abort functionality to getLimits by @jvigliotta in #6872
- Imagery layer checkbox should match layer visiblity by @shefalijoshi in #7003
- fix(dialog): empty description by @evenstensberg in #6986
- ProgressBar null not undefined by @depperm in #6953
- fix(#7022): remove ProgressBar artifacts from Notifications by @ozyx in #7024
- Remove large series models from reactive data in plots by @scottbell in #6961
- Allow Data Visualization in inspector based on current selection by @davetsay in #7052
- Fix mojibake by @akhenry in #7073
- Have annotations work with domain objects that have dots by @scottbell in #7065
- 🙅🚮␡ Remove
openmct.components
␡🚮🙅 by @ozyx in #7075 - Hide image controls when tagging, and hide compass HUD by default by @scottbell in #7028
- Protect against prototype pollution in import action by @davetsay in #7094
- Ensure CouchDB changes for plans trigger updates in the view by @shefalijoshi in #7099
- Check realtime mode in remote clock interceptor by @shefalijoshi in #6985
- cherry-pick(#7088): [Staleness] Fix staleness on clock change by @khalidadil in #7112
- chore: bump version to
3.1.0
by @ozyx in #7118 - cherry-pick(#7122): [Staleness] Fix issue with object view staleness styles not being res… by @khalidadil in #7123
- cherry-pick(#7121): Do not store state in singleton action by @akhenry in #7134
📄 Docs
- fix(readme): note sections by @evenstensberg in #6997
- fix(readme): indent correctly by @evenstensberg in #6996
- docs: update staticRootPlugin README by @ozyx in #7014
- [Documentation] Time API docs update new/deprecated functionality by @jvigliotta in #7107
Full Changelog: v3.0.2...v3.1.0
Open MCT v3.0.2
What's Changed
Caution
Breaking Changes
- Starting from version
3.0.0
, Open MCT requires a child<div>
within the document.body in order to mount properly. Ensure that yourindex.html
or hosting document includes a suitable container<div>
before initializing Open MCT.
<!-- Bad ❌ -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Open MCT</title>
</head>
<body>
</body>
</html>
<!-- Good ✅ -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Open MCT</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
- For Open MCT plugin maintainers with views written in Vue 2, ensure compatibility with Open MCT v3.x.x and above by creating a new
<div>
and appending it to the element passed into theshow()
function in your ViewProviders. This prevents rendering issues, as Vue 3 no longer replaces the element when mounting applications.
/* ❌ */
show(element) {
component = new Vue({
el: element,
// ... existing code ...
});
}
/* ✅ */
show(element) {
// Create a new div, append it to the element, and mount the Vue component to the new div
const div = document.createElement('div');
element.appendChild(div);
component = new Vue({
el: div,
// ... existing code ...
});
}
Warning
Deprecations
Time System and Clock API Updates
The Time API has been updated to improve consistency and provide more descriptive method names. There are now separate methods for getting and setting the time system and clock. Additionally, Open MCT now always has an active clock, even in fixed time mode.
- The
stopClock()
method is deprecated and will be removed in a future release.- Switching the time conductor mode from "real-time" to "fixed" no longer sets the active clock to
undefined
. This makes it possible to retrieve the current time of the configured time system and clock by callingopenmct.time.now()
, even if the time conductor is in "fixed" mode.
- Switching the time conductor mode from "real-time" to "fixed" no longer sets the active clock to
- The
timeSystem()
method is deprecated. UsegetTimeSystem()
andsetTimeSystem()
instead. - The
bounds()
method is deprecated. UsegetBounds()
andsetBounds()
instead. - The
clock()
method is deprecated. UsegetClock()
andsetClock()
instead. - The
clockOffsets()
method is deprecated. UsegetClockOffsets()
andsetClockOffsets()
instead.
Time Events Renaming
The names of events emitted by the Time API have been updated to be more consistent and descriptive.
Please update your listeners to the new event names after migrating to the new Time API.
bounds
→boundsChanged
timeSystem
→timeSystemChanged
clock
→clockChanged
clockOffsets
→clockOffsetsChanged
🏕 Features
Commits
- Add role attribution to notebook entries and export by @michaelrogers in #6793
- Fix couchdbsearchfolder and allow clocky reports by @shefalijoshi in #6770
- [Tooltips] Add tooltips on hover by @khalidadil in #6756
- Role selection for operator status roles by @michaelrogers in #6706
- Enhance telemetry tables to allow in place updates for data by @shefalijoshi in #6694
- Adds limits subscription to the Telemetry API by @shefalijoshi in #6735
- [Time] Conductors and API Enhancements by @jvigliotta in #6768
🔧 Maintenance
Commits
- chore(deps-dev): bump eslint from 8.42.0 to 8.43.0 by @dependabot in #6744
- chore: bump version to 2.2.6-SNAPSHOT by @ozyx in #6752
- [CI]Add docker and npm caching by @unlikelyzero in #6748
- chore(deps): bump docker/login-action from 1 to 2 by @dependabot in #6754
- chore(deps-dev): bump eslint-plugin-vue from 9.14.1 to 9.15.0 by @dependabot in #6746
- chore(deps-dev): bump @babel/eslint-parser from 7.21.8 to 7.22.5 by @dependabot in #6747
- chore(deps-dev): bump sass from 1.63.3 to 1.63.4 by @dependabot in #6743
- chore(deps-dev): bump webpack from 5.86.0 to 5.88.0 by @dependabot in #6764
- chore(deps-dev): bump flatbush from 4.1.0 to 4.2.0 by @dependabot in #6762
- chore(deps-dev): bump sanitize-html from 2.10.0 to 2.11.0 by @dependabot in #6766
- [CI] Fix couchdb e2e trigger and run nightly, part 3 by @unlikelyzero in #6782
- [CI] Update Github Actions to combine deploysentinel PR reports and driveby by @unlikelyzero in #6784
- chore: bump version to
3.0.0-SNAPSHOT
by @ozyx in #6800 - chore: bump version to
3.0.1
by @ozyx in #7013 - chore: bump version to
3.0.2
by @ozyx in #7071
🐛 Bug Fixes
Commits
- Fix race condition in image annotations loading and drawing them on the canvas by @scottbell in #6751
- Toggle between showing aggregate stacked plot legend or per-plot legend by @shefalijoshi in #6758
- Batch Couch DB create calls by @akhenry in #6779
- Tree item abort by @jvigliotta in #6757
- [Timelist] Fixed Time use Now as start time - 5772 by @michaelrogers in #6497
- Suppress role selection if no roles available by @akhenry in #6802
- [CI] Temporarily disable some tests by @unlikelyzero in #6806
- Migrate to Vue 3 Migration Build by @ozyx in #6767
- Fixes for e2e tests following the Vue 3 compat upgrade by @ozyx in #6837
- Switch staleness provider for SWG to use modeChanged instead of clock by @khalidadil in #6845
- Use the current timestamp from the global clock by @shefalijoshi in #6851
- Plan rendering inside a timestrip by @shefalijoshi in #6852
- fix(#6854): [LADTableSet] prevent compositions from becoming reactive by @ozyx in #6855
- Revert "[CI] Temporarily disable some tests" by @ozyx in #6853
- fix: remove
tree-item-destroyed
event by @ozyx in #6856 - Don't allow editing line more when not editing display layout by @shefalijoshi in #6858
- Wait for bounds change to reset telemetry collection data by @shefalijoshi in #6857
- cherry-pick(#6868): fix: toggling markers, alarm markers, marker style + update
Vue.extend()
usage to Vue 3 by @ozyx in #6873 - cherry pick (#6875) suppress deprecation warnings to once per unique args by @akhenry in #6881
- cherry-pick(#6877): Set the raw series limits so that we can get the raw series limits by @ozyx in #6883
- cherry-pick(#6885): Synchronize timers between multiple users by @ozyx in #6886
- Remove snapshot by @shefalijoshi in #6887
- cherry-pick(#6866): Only load annotations in fixed time mode or frozen by @scottbell in #6902
- cherry-pick(#6904): Check for null in DuplicateAction by @ozyx in #6911
- cherry-pick(#6943): fix(#6942): Toggling FlexibleLayout toolbar options reflects immediately in the view by @ozyx in #6945
- cherry-pick(#6919): Fix remote clock subscription by @ozyx in #6934
- cherry-pick(#6910): chore: add vue3 to eslint, fix errors, and modify lint script by @ozyx in #6935
- cherry-pick(#6933): fix(e2e): Stabilize ITC tests by @ozyx in #6947
- cherry-pick(#6927): Recent objects do not update when object names are changed by @scottbell in #6949
- cherry-pick(#6916): [Tooltips] Fixes for dictionary objects and self-referential objects by @khalidadil in #6950
- cherry-pick(#6929): Condition sets now provide the timeContext they're using when sending requests by @shefalijoshi in #6959
- cherry-pick(#6948): Ensure that dynamically created vue components are destroyed by @shefalijoshi in #6958
- cherry-pick(#6960): Add strategy latest and timeContext to auto flow tabular and gauge views by @she...
Open MCT v2.2.5
Bug Fixes
[Imagery] toggling an overlay layer by clicking label toggles for first imagery #6709
Displays with a large number of plots take a long time to load due to annotation requests #6708
Time List view should not show milliseconds in times #6677
Timelist To/From incorrect for 'current' activities #6657
Open MCT v2.2.4
Open MCT v2.2.3
Bug Fixes
Gantt Chart view of plans does not observe draft status of plans #6641
[LAD Tables] Configuration not changed/persisted when toggling "Autosize" for columns #6636
font styling is lost when url property set on condition widget #6614
Telemetry API should support requesting a subscription provider #6546
Maintenance and Testing
Need visual test for lad table column config and titles for browse bar actions #6639
[Build] Update CouchDB scripting and version #6644
Open MCT v2.2.2
Improvements
[Recently Viewed Items] Disable button if no items #6503
Bug Fixes
Cannot add annotations on newly create notebook entry #6411
Annotations on empty entries in notebook are lost #6156
StaticRootPlugin does not work with non-empty or non-root namespaces #6584
[Export As JSON] Exports with Objects using Conditional Styling can cause multiple files to be saved #6566
[Export as JSON] Issues with items that have identifiers stored in configuration #6561
Static Root Plugin does not work with overlay plots #6549
[ExportNotebookAsText] Action is not available for Restricted Notebooks #6534