Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
586 commits
Select commit Hold shift + click to select a range
9145ec4
chore: remove separated tools offset logic from Globe_.js
devin-ai-integration[bot] May 1, 2026
44dd110
Merge pull request #51 from JPL-Devin/devin/1777593443-react-separate…
tariqksoliman May 1, 2026
fb5cd9a
merge: resolve version bump conflicts with development
devin-ai-integration[bot] May 1, 2026
acf4844
fix: skip _makeHistogram on mobile (no timeline slider, timestamps un…
devin-ai-integration[bot] May 1, 2026
38a33a6
fix: mobile TimeUI — populate expanded rows, fix Invalid date, fix pa…
devin-ai-integration[bot] May 1, 2026
a797683
fix: mobile TimeUI justify-content center, restore toolbar border-bottom
devin-ai-integration[bot] May 1, 2026
7f15338
fix: mobile TimeUI overflow hidden, scalebar/compass fixed at 40px of…
devin-ai-integration[bot] May 1, 2026
3c83375
Implement multi-tier knowledge architecture
devin-ai-integration[bot] May 1, 2026
87a7aec
chore: bump version to 4.3.29-20260501 [version bump]
github-actions[bot] May 1, 2026
496a080
fix: mobile toolbar active button style matches desktop, fix icon ali…
devin-ai-integration[bot] May 1, 2026
8fd634a
Add Devin knowledge notes from past MMGIS sessions
devin-ai-integration[bot] May 1, 2026
2d85aee
fix: mobile toolbar active button style, icon alignment, tool deactiv…
devin-ai-integration[bot] May 1, 2026
7037f8c
Fix cross-references: convert backtick refs to markdown links, add De…
devin-ai-integration[bot] May 1, 2026
9834d3d
fix: mobile toolbar icon height 40px, button margins for active padding
devin-ai-integration[bot] May 1, 2026
6d9fd1e
Rename knowledge/ to .knowledge/ for consistency with .specify/ conve…
devin-ai-integration[bot] May 1, 2026
4ceedc5
fix: mobile toolbar icon line-height 40px, active button padding via …
devin-ai-integration[bot] May 1, 2026
6fe729f
Fix broken cross-reference: 06.2 -> 06.1-configure-rest-api.md
devin-ai-integration[bot] May 1, 2026
59db76d
fix: close active tool + cancel deferred cleanup in MobileCoordButton…
devin-ai-integration[bot] May 1, 2026
9bcd546
fix: active mobile toolbar buttons 34x34px (square)
devin-ai-integration[bot] May 1, 2026
c36d4aa
Drastically compress .knowledge/ — keep only unique agent content
devin-ai-integration[bot] May 1, 2026
2fba855
Rename to knowledge-notes.md, remove Devin branding and fork-specific…
devin-ai-integration[bot] May 1, 2026
b1dbde7
fix: hide mmgis-map-logo on mobile
devin-ai-integration[bot] May 1, 2026
e1b7ff2
Restore Database Safety Rules for AI Agents section in AGENTS.md
devin-ai-integration[bot] May 1, 2026
a8974a4
fix: shift compass and map scale 6px to the right (both mobile and de…
devin-ai-integration[bot] May 1, 2026
0ffb0bf
Add back Important Instructions, code pattern templates, and detailed…
devin-ai-integration[bot] May 1, 2026
276a848
Merge pull request #50 from JPL-Devin/devin/1777590638-mobile-ui-fixes
tariqksoliman May 1, 2026
0f5ad2d
Update project structure trees to reflect current filesystem
devin-ai-integration[bot] May 1, 2026
5f5f116
chore: bump version to 4.3.30-20260501 [version bump]
github-actions[bot] May 1, 2026
4f03727
Add Layers_.js to project structure (key singleton L_)
devin-ai-integration[bot] May 1, 2026
ca46225
Fix project structure: correct API layout, frontend modules, code tem…
devin-ai-integration[bot] May 1, 2026
99a5caf
Merge origin/development: resolve version bump conflicts (keep 4.3.30)
devin-ai-integration[bot] May 1, 2026
9855424
Merge pull request #52 from JPL-Devin/devin/1777596996-knowledge-arch…
tariqksoliman May 1, 2026
e33bda3
refactor: remove test infrastructure (Test_ module, testModules, Draw…
devin-ai-integration[bot] May 1, 2026
d2256e6
chore: bump version to 4.3.31-20260501 [version bump]
github-actions[bot] May 1, 2026
6e6abbb
Merge pull request #53 from JPL-Devin/devin/1777607123-remove-test-in…
tariqksoliman May 1, 2026
66ee07a
style: move Cesium link button to top-right and match Leaflet zoom bu…
devin-ai-integration[bot] May 1, 2026
48e7d4d
fix: anchor map logo to viewport instead of Leaflet map panel
devin-ai-integration[bot] May 1, 2026
4c10f33
docs: remove references to deleted test infrastructure (Test_, DrawTo…
devin-ai-integration[bot] May 1, 2026
c3e4f89
chore: bump version to 4.3.32-20260501 [version bump]
github-actions[bot] May 1, 2026
fab5a0a
Merge pull request #57 from JPL-Devin/devin/1777607507-update-docs-re…
tariqksoliman May 1, 2026
1206f45
fix: append logo to document.body to avoid filter containing block
devin-ai-integration[bot] May 1, 2026
b5affc7
Merge pull request #55 from JPL-Devin/devin/1777607462-cesium-link-bu…
tariqksoliman May 1, 2026
b096dca
Merge pull request #56 from JPL-Devin/devin/1777607493-fix-map-logo-v…
tariqksoliman May 1, 2026
3ccbffb
fix: prevent mobile topBarTitleName text wrapping by replacing max-wi…
devin-ai-integration[bot] May 1, 2026
89f4ae3
chore: bump version to 4.3.33-20260501 [version bump]
github-actions[bot] May 1, 2026
c525efd
Merge pull request #58 from JPL-Devin/devin/1777608073-fix-mobile-top…
tariqksoliman May 1, 2026
0977d17
chore: bump version to 5.0.0 and update changelog
devin-ai-integration[bot] May 1, 2026
ee47f8b
refactor(ui): move Screenshot/Fullscreen to BottomBar, About to TopBa…
devin-ai-integration[bot] May 5, 2026
cbe2db8
chore: bump version to 5.0.1-20260505 [version bump]
github-actions[bot] May 5, 2026
9f89654
feat(mobile): enforce exclusive panel toggling on mobile in TopBar
devin-ai-integration[bot] May 5, 2026
9472eab
chore: bump version to 5.0.1-20260505 [version bump]
github-actions[bot] May 5, 2026
a8c0506
style: reposition LithoSphere globe controls to match Leaflet/Cesium …
devin-ai-integration[bot] May 5, 2026
5605a20
chore: bump version to 5.0.1-20260505 [version bump]
github-actions[bot] May 5, 2026
a532e23
feat(topbar): hide Viewer/Globe toggles based on configured panels
devin-ai-integration[bot] May 5, 2026
85c53f6
style(bottombar): reorder buttons (Copy Link, Screenshot, Fullscreen)…
devin-ai-integration[bot] May 5, 2026
23c0173
Merge pull request #60 from JPL-Devin/devin/1777945712-mobile-exclusi…
tariqksoliman May 5, 2026
6550c71
style(bottombar): increase padding-bottom to 12px and button margin t…
devin-ai-integration[bot] May 5, 2026
4d57c94
style: rearrange globe controls — compass top-right circular, nav row…
devin-ai-integration[bot] May 5, 2026
020a89c
chore: bump version to 5.0.2-20260505 [version bump]
github-actions[bot] May 5, 2026
cd61bf6
chore: bump version to 5.0.2-20260505 [version bump]
github-actions[bot] May 5, 2026
283e6f0
Merge origin/development: resolve version-bump conflicts (keep 5.0.2-…
devin-ai-integration[bot] May 5, 2026
f3c5219
style: anchor observe settings panel right:34px and float nav hover p…
devin-ai-integration[bot] May 5, 2026
39ce765
feat(theming): add 5 new themes, --color-shadow variable, and configu…
devin-ai-integration[bot] May 5, 2026
a57fb9b
chore: bump version to 5.0.2-20260505 [version bump]
github-actions[bot] May 5, 2026
2dde452
Merge pull request #59 from JPL-Devin/devin/1777945527-bottombar-topb…
tariqksoliman May 5, 2026
e3e6273
fix(configure/ThemePreview): tighten top spacing and live-preview Cus…
devin-ai-integration[bot] May 5, 2026
b963bb0
chore: bump version to 5.0.3-20260505 [version bump]
github-actions[bot] May 5, 2026
3c4851f
Merge pull request #61 from JPL-Devin/devin/1777945903-litho-globe-co…
tariqksoliman May 5, 2026
a803d06
Merge origin/development: resolve version-bump conflicts (keep 5.0.3-…
devin-ai-integration[bot] May 5, 2026
571fa25
feat(themes): add Dark Heliosphere, Dark Monokai, and Light Solarized
devin-ai-integration[bot] May 5, 2026
a88fab7
fix(coordinates): respect time.initiallyOpen when live deep-link is set
tariqksoliman May 5, 2026
61c214e
chore: bump version to 5.0.3-20260505 [version bump]
github-actions[bot] May 5, 2026
f1a2f78
refactor(theming): remove Custom theme + per-field color overrides
devin-ai-integration[bot] May 5, 2026
faa40fb
Merge pull request #64 from JPL-Devin/devin/1778003265-fix-initiallyo…
tariqksoliman May 5, 2026
13143de
style(time-ui): round corners on TimeUI shell, action wrappers, mode …
devin-ai-integration[bot] May 5, 2026
449faaf
chore: bump version to 5.0.4-20260505 [version bump]
github-actions[bot] May 5, 2026
c5df2a4
feat(configure): mark light themes as (experimental) in dropdown label
devin-ai-integration[bot] May 5, 2026
ed6b5db
Merge origin/development: resolve version conflicts (keep 5.0.4-20260…
devin-ai-integration[bot] May 5, 2026
6430cd5
Merge pull request #63 from JPL-Devin/devin/1778001624-themes-shadow-…
tariqksoliman May 5, 2026
c0f0de4
Merge branch 'development' of https://github.com/JPL-Devin/MMGIS into…
tariqksoliman May 5, 2026
f071b92
Fix timeUI border radius
tariqksoliman May 5, 2026
b0c15d3
fix(mobile): rescue #timeUI before tool make() destroys it
devin-ai-integration[bot] May 5, 2026
ad51481
fix(mobile): move re-initialized #timeUI from staging into #tools
devin-ai-integration[bot] May 5, 2026
407ca65
fix(mobile): preserve #timeUI when Coordinates tool empties #tools
devin-ai-integration[bot] May 5, 2026
64fdbd9
fix(mobile): harden TimeUI fallback recovery (call fina(), de-dupe po…
devin-ai-integration[bot] May 5, 2026
101a699
chore: bump version to 5.0.5-20260505 [version bump]
github-actions[bot] May 5, 2026
10f7556
fix(mobile): Coordinates teardown only removes its own DOM
devin-ai-integration[bot] May 5, 2026
fff4beb
Bump DrawTool Temporal Drawings upward
tariqksoliman May 5, 2026
48fe443
Merge pull request #62 from JPL-Devin/devin/1778001123-mobile-timeui-…
tariqksoliman May 5, 2026
fef60ad
Merge upstream NASA-AMMOS/MMGIS development into JPL-Devin/MMGIS deve…
devin-ai-integration[bot] May 5, 2026
726ab37
chore: bump version to 5.0.6-20260505 [version bump]
github-actions[bot] May 5, 2026
668379b
Merge pull request #65 from JPL-Devin/sync-upstream-dev
tariqksoliman May 5, 2026
9958128
chore: reset version to 5.0.0
devin-ai-integration[bot] May 5, 2026
053efd1
test(e2e): fix 9 pre-existing failures (test-only changes)
devin-ai-integration[bot] May 5, 2026
4880204
chore: bump version to 5.0.1-20260505 [version bump]
github-actions[bot] May 5, 2026
1d7ddbb
Revert "chore: bump version to 5.0.1-20260505 [version bump]"
devin-ai-integration[bot] May 5, 2026
96a31ed
Merge pull request #66 from JPL-Devin/devin/1778022890-fix-test-failures
tariqksoliman May 5, 2026
3f496af
fix: prevent filter operator dropdown clipping in Layers panel
devin-ai-integration[bot] May 7, 2026
d67c369
chore: bump version to 5.0.1-20260507 [version bump]
github-actions[bot] May 7, 2026
4a38272
revert: keep dropy openUp:true for operator dropdowns
devin-ai-integration[bot] May 7, 2026
a0004f3
Revert "chore: bump version to 5.0.1-20260507 [version bump]"
devin-ai-integration[bot] May 7, 2026
29565ed
chore: bump version to 5.0.1-20260507 [version bump]
github-actions[bot] May 7, 2026
1d02e85
Revert "chore: bump version to 5.0.1-20260507 [version bump]"
devin-ai-integration[bot] May 7, 2026
50e3576
chore: bump version to 5.0.1-20260507 [version bump]
github-actions[bot] May 7, 2026
a9c5e3d
Revert "chore: bump version to 5.0.1-20260507 [version bump]"
devin-ai-integration[bot] May 7, 2026
a1f74db
chore: bump version to 5.0.1-20260507 [version bump]
github-actions[bot] May 7, 2026
deb5e1e
Merge pull request #69 from JPL-Devin/devin/1778193752-fix-filter-ope…
tariqksoliman May 7, 2026
8db7205
Merge upstream NASA-AMMOS/MMGIS development into JPL-Devin/MMGIS deve…
devin-ai-integration[bot] May 11, 2026
10e5f35
chore: bump version to 5.0.2-20260511 [version bump]
github-actions[bot] May 11, 2026
9652783
Merge pull request #70 from JPL-Devin/devin/1778521035-sync-upstream-dev
tariqksoliman May 11, 2026
337b482
fix: render Globe panel immediately on first open without window resize
devin-ai-integration[bot] May 11, 2026
d445c4e
chore: bump version to 5.0.3-20260511 [version bump]
github-actions[bot] May 11, 2026
1db566b
Merge pull request #71 from JPL-Devin/devin/1778524166-fix-globe-rend…
tariqksoliman May 11, 2026
3da520f
feat: add theme borders to panels and gradient backgrounds to splitters
devin-ai-integration[bot] May 11, 2026
2b01a57
chore: bump version to 5.0.4-20260511 [version bump]
github-actions[bot] May 11, 2026
e94ef0b
style: bump split shadow gradient opacity to 0.4
devin-ai-integration[bot] May 11, 2026
9ebb428
style: hotkeys modal 3-col grid + smaller leaflet zoom button gap
devin-ai-integration[bot] May 11, 2026
e011035
style: prevent hotkey label/value wrapping (ellipsis instead)
devin-ai-integration[bot] May 11, 2026
1573014
style: hotkeys modal single column, no wrap, no truncation
devin-ai-integration[bot] May 11, 2026
223f01d
chore: bump version to 5.0.4-20260511 [version bump]
github-actions[bot] May 11, 2026
1eeb687
style: hotkeys modal dividers, invert title/subtitle colors, rename t…
devin-ai-integration[bot] May 11, 2026
df6bf4c
Merge pull request #72 from JPL-Devin/devin/1778526059-panel-borders-…
tariqksoliman May 11, 2026
0b1fe9b
style: move splitter gradient to themed CSS class, restore hover feed…
devin-ai-integration[bot] May 11, 2026
8c2536f
chore: bump version to 5.0.5-20260511 [version bump]
github-actions[bot] May 11, 2026
3d3ddee
style: hotkeys section titles use --color-h (matches rest of app)
devin-ai-integration[bot] May 11, 2026
72d0005
chore: bump version to 5.0.5-20260511 [version bump]
github-actions[bot] May 11, 2026
ca12177
Merge branch 'development' into devin/1778526896-hotkeys-modal-3col
tariqksoliman May 11, 2026
f14dc22
Merge pull request #73 from JPL-Devin/devin/1778526896-hotkeys-modal-…
tariqksoliman May 11, 2026
e717217
Merge branch 'development' into devin/1778527726-splitter-theme-hover…
tariqksoliman May 11, 2026
82c7fd2
Merge pull request #74 from JPL-Devin/devin/1778527726-splitter-theme…
tariqksoliman May 11, 2026
fb3fb81
fix: guard Globe_.init() inside rAF to prevent double instantiation
devin-ai-integration[bot] May 12, 2026
6ce0074
chore: bump version to 5.0.6-20260512 [version bump]
github-actions[bot] May 12, 2026
75258c8
Merge pull request #75 from JPL-Devin/devin/1778603837-guard-globe-in…
tariqksoliman May 12, 2026
99279a4
feat(plugins): per-plugin deps, lazy tool loading, validation, shared…
devin-ai-integration[bot] May 12, 2026
49a3e15
chore: bump version to 5.0.7-20260512 [version bump]
github-actions[bot] May 12, 2026
71e4839
fix: make Globe_.init() idempotent against multi-init
devin-ai-integration[bot] May 12, 2026
b8e99bf
chore: bump version to 5.0.7-20260512 [version bump]
github-actions[bot] May 12, 2026
05917f2
test(plugins): generate src/pre/tools.js on demand in toolLazyLoading…
devin-ai-integration[bot] May 12, 2026
3f58ae5
Merge pull request #76 from JPL-Devin/devin/1778610767-globe-init-ide…
tariqksoliman May 12, 2026
5349bbc
fix(tools): defensive getTool() + preload flag for cross-referenced t…
devin-ai-integration[bot] May 12, 2026
a5e30ab
chore: bump version to 5.0.8-20260512 [version bump]
github-actions[bot] May 12, 2026
02c1199
Merge remote-tracking branch 'origin/development' into devin/17786094…
devin-ai-integration[bot] May 12, 2026
6d54f56
revert(plugins): remove Phase 4 lazy tool loading and preload mechanism
devin-ai-integration[bot] May 12, 2026
08e4ad0
feat(logger): new 'loaded' level (purple bg) for tool/component/backe…
devin-ai-integration[bot] May 12, 2026
5df2a9e
feat(logs): 'Plugging in Tools/Components/Backends...' headings
devin-ai-integration[bot] May 12, 2026
fdb06d2
style(logs): cyan banner lines lead with a blank line instead of trai…
devin-ai-integration[bot] May 12, 2026
01a99d0
feat(plugins): postinstall hook auto-installs plugin npm deps
devin-ai-integration[bot] May 12, 2026
6203227
docs(plugins): manual Python install step for plugin pip/conda deps
devin-ai-integration[bot] May 12, 2026
18030b4
docs(install): plugin Python install step in Installation.md
devin-ai-integration[bot] May 12, 2026
a096cfe
fix: serialize concurrent layer reloads and stop mutating layer.url
devin-ai-integration[bot] May 13, 2026
42ddeaf
chore: bump version to 5.0.8-20260513 [version bump]
github-actions[bot] May 13, 2026
bc75d76
fix(TimeControl): use Promise.allSettled in reloadTimeLayers
devin-ai-integration[bot] May 13, 2026
9d4e147
fix(mmgisAPI): use Promise.allSettled in reloadLayers batch API
devin-ai-integration[bot] May 13, 2026
7479512
docs: note that reloadTimeLayers is now async (Promise<string[]>)
devin-ai-integration[bot] May 13, 2026
4461631
test: split time-related e2e specs into tests/e2e/time/
devin-ai-integration[bot] May 13, 2026
7d007dc
test: cap local Playwright workers at 4
devin-ai-integration[bot] May 13, 2026
fcba810
fix: thread resolvedUrl through makeLayer/captureVector instead of mu…
devin-ai-integration[bot] May 13, 2026
ddb90db
fix: also replace {time} placeholder when computing resolvedUrl
devin-ai-integration[bot] May 13, 2026
489d944
fix: always run time-placeholder replacement in captureVector (idempo…
devin-ai-integration[bot] May 13, 2026
08af095
test: remove GIBS MODIS time tile test (always skips on external depe…
devin-ai-integration[bot] May 13, 2026
92a9f59
test: add coverage for {time}, local-endProp-null, stress, and featur…
devin-ai-integration[bot] May 13, 2026
ef6e381
test: add 5 edge-case tests probing the blast radius of the URL fix
devin-ai-integration[bot] May 13, 2026
39783d7
fix(makeLayer): wrap dispatch in try/finally so lock + queue drain al…
devin-ai-integration[bot] May 13, 2026
710d6b2
Merge pull request #78 from JPL-Devin/devin/1778691843-concurrent-lay…
tariqksoliman May 13, 2026
40ac8ad
Merge branch 'development' into devin/1778609437-plugin-system-improv…
devin-ai-integration[bot] May 13, 2026
a5891f6
Merge upstream NASA-AMMOS/MMGIS development into JPL-Devin/MMGIS deve…
devin-ai-integration[bot] May 13, 2026
deb619a
chore: bump version to 5.0.9-20260513 [version bump]
github-actions[bot] May 13, 2026
4753367
Merge pull request #79 from JPL-Devin/devin/1778701837-sync-upstream-dev
tariqksoliman May 13, 2026
11d03ca
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 13, 2026
c35715c
Merge remote-tracking branch 'origin/development' into devin/17786094…
devin-ai-integration[bot] May 13, 2026
46bde58
fix(OperationsClock): bump z-index above bottomFloatingBar so clock s…
devin-ai-integration[bot] May 13, 2026
8f04047
fix(plugin-deps): respect override semantics when aggregating depende…
devin-ai-integration[bot] May 13, 2026
c7546f7
fix(Dockerfile): re-install plugin npm deps in runtime stage
devin-ai-integration[bot] May 13, 2026
13c8160
feat(OperationsClock): lift to 58px bottom when TimeUI is open
devin-ai-integration[bot] May 13, 2026
d3b27cd
fix(OperationsClock): always sit at bottom:58px
devin-ai-integration[bot] May 14, 2026
ba937aa
Merge pull request #77 from JPL-Devin/devin/1778609437-plugin-system-…
tariqksoliman May 14, 2026
6a07553
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 14, 2026
7773667
feat: add Lunar South Pole reference mission variant (IAU2000:30120)
devin-ai-integration[bot] May 18, 2026
a1679a9
feat(api): pass through reloadLayer flags in reloadLayers
devin-ai-integration[bot] May 18, 2026
3cd56ba
chore: bump version to 5.0.10-20260518 [version bump]
github-actions[bot] May 18, 2026
966f927
chore: bump version to 5.0.10-20260518 [version bump]
github-actions[bot] May 18, 2026
745b796
docs(api): add forceRequery & skipOrderedBringToFront to reloadLayer/…
devin-ai-integration[bot] May 18, 2026
d4760f0
Merge pull request #81 from JPL-Devin/devin/1779130841-reloadlayers-p…
tariqksoliman May 18, 2026
56f2ab9
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 18, 2026
f7c6767
Add SPole basemap to lunar ref mission
tariqksoliman May 18, 2026
1698faf
chore: bump version to 5.0.11-20260518 [version bump]
github-actions[bot] May 18, 2026
a815e9b
chore: remove unused blueprints/Missions/Test directory
devin-ai-integration[bot] May 18, 2026
e72345c
fix: use setupReferenceMission string value as variant key fallback
devin-ai-integration[bot] May 18, 2026
adbc5dd
fix(measure): rename config DEM field from 'dem' to 'url' and handle …
devin-ai-integration[bot] May 19, 2026
68e80c3
chore: bump version to 5.0.11-20260519 [version bump]
github-actions[bot] May 19, 2026
16d07a6
revert: remove http/https URL prefix handling in makeProfile()
devin-ai-integration[bot] May 19, 2026
129b928
fix(measure): rename 'dem' to 'url' in Reference Mission layerDems bl…
devin-ai-integration[bot] May 19, 2026
421c374
fix(measure): accept both 'url' and 'dem' fields in layerDems for bac…
devin-ai-integration[bot] May 19, 2026
7adad35
Merge pull request #82 from JPL-Devin/devin/1779225032-rename-dem-to-url
tariqksoliman May 19, 2026
f99ec67
merge: resolve version bump conflicts with development (take latest)
devin-ai-integration[bot] May 19, 2026
b52e3b6
chore: bump version to 5.0.12-20260519 [version bump]
github-actions[bot] May 19, 2026
cb7b7cb
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 19, 2026
0fc97e8
feat: add SPole_100m basemap layer to Lunar South Pole blueprint config
devin-ai-integration[bot] May 20, 2026
4abd327
fix: show Save to Base Blueprint button for all reference mission var…
devin-ai-integration[bot] May 20, 2026
f50f7e5
Update lunar ref mission
tariqksoliman May 20, 2026
c338e3c
style: add text-align right to mission list buttons in configure sidebar
devin-ai-integration[bot] May 20, 2026
b6532ff
fix(ui): SegmentTool background, clipboard API, context menu test sel…
devin-ai-integration[bot] May 21, 2026
c399d8d
chore: bump version to 5.0.12-20260521 [version bump]
github-actions[bot] May 21, 2026
1dcfc73
fix(contextmenu): increase z-index to 9999 so menu renders above othe…
devin-ai-integration[bot] May 21, 2026
066e494
Merge pull request #83 from JPL-Devin/devin/1779396548-fix-segment-cl…
tariqksoliman May 21, 2026
bd181a8
merge: resolve version bump conflicts with development
devin-ai-integration[bot] May 21, 2026
ccccb3d
chore: bump version to 5.0.13-20260521 [version bump]
github-actions[bot] May 21, 2026
5c970b3
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 21, 2026
146521a
fix: use Object.hasOwn for variant key validation to prevent prototyp…
devin-ai-integration[bot] May 21, 2026
6cba17e
fix(security): type coercion for query params in geodatasets.js
devin-ai-integration[bot] May 21, 2026
266a5cd
fix(security): prototype pollution guards across codebase
devin-ai-integration[bot] May 21, 2026
3af0751
fix(security): add auth and compute rate limiters
devin-ai-integration[bot] May 21, 2026
a070e9a
fix(security): harden GitHub Actions workflows
devin-ai-integration[bot] May 21, 2026
1a08b53
fix(security): sanitize log output to prevent log injection
devin-ai-integration[bot] May 21, 2026
04fd43c
docs: move Reference Mission docs to blueprints/README.md with varian…
devin-ai-integration[bot] May 21, 2026
b62797b
fix(security): DOM XSS prevention with DOMPurify and .text()
devin-ai-integration[bot] May 21, 2026
10f1308
fix(security): move public static middleware before session
devin-ai-integration[bot] May 21, 2026
5aa9e59
fix(tests): resolve CI failures in unit tests
devin-ai-integration[bot] May 21, 2026
367012c
fix: address Devin Review findings
devin-ai-integration[bot] May 21, 2026
9c43054
feat: add meandering south pole traverse line layer to Lunar South Po…
devin-ai-integration[bot] May 21, 2026
337b9f7
Improve lunar ref mission blueprint config
tariqksoliman May 21, 2026
b5cef2d
fix: skip auth rate limit for token re-auth + type coercion on /inter…
devin-ai-integration[bot] May 21, 2026
a50c4b0
fix: require MMGISUser cookie to skip auth rate limiter
devin-ai-integration[bot] May 21, 2026
1524c86
fix: address Devin Review round 3+4 findings
devin-ai-integration[bot] May 21, 2026
fe6dac7
Merge pull request #80 from JPL-Devin/devin/1779130513-lunar-southpol…
tariqksoliman May 21, 2026
827b1a6
fix: preserve Error stack traces in sanitized log output
devin-ai-integration[bot] May 21, 2026
d16d791
fix: expand safeHTML allowlist + apply auth rate limiter unconditionally
devin-ai-integration[bot] May 21, 2026
0e63af5
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 21, 2026
f833cad
refactor: convert validate-workflows to Playwright test for consistency
devin-ai-integration[bot] May 21, 2026
a7f8343
feat: add npm run test:ci script for CI validation tests
devin-ai-integration[bot] May 21, 2026
d6f66e0
fix(test): handle AUTH=none in mmgis-api login guard
devin-ai-integration[bot] May 21, 2026
1a5939c
fix: preserve newlines/tabs in sanitizeForLog for readable stack traces
devin-ai-integration[bot] May 21, 2026
9b3e4a0
Merge pull request #84 from JPL-Devin/devin/1779400019-security-fixes
tariqksoliman May 22, 2026
1c4af89
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 22, 2026
420815c
fix(map): expose L_.Map_ before makeLayers to prevent race condition
devin-ai-integration[bot] May 26, 2026
cb9c459
chore: bump version to 5.0.14-20260526 [version bump]
github-actions[bot] May 26, 2026
6d1cd74
Merge pull request #85 from JPL-Devin/devin/1779811890-map-early-expose
tariqksoliman May 26, 2026
955f805
Merge branch 'NASA-AMMOS:development' into development
tariqksoliman May 26, 2026
aa6611a
fix(deps): upgrade 5 dependencies for security and deprecation fixes
devin-ai-integration[bot] May 26, 2026
4c6128e
refactor: targeted turf imports + split tests into domain-specific files
devin-ai-integration[bot] May 26, 2026
75c4b82
fix(deps): resolve 35 additional vulnerabilities (49→14 remaining)
devin-ai-integration[bot] May 26, 2026
1d99822
refactor: replace materialize-css with base-ui Toast
devin-ai-integration[bot] May 26, 2026
81f5739
fix: merge toastManager into Toast.js, fix TimeUI.js import path
devin-ai-integration[bot] May 26, 2026
acbcdf5
fix: toast dismissAll crash, position top-center, reduce text size
devin-ai-integration[bot] May 26, 2026
48b99d4
fix: toast title renders as span, fix type lookup and timeout field
devin-ai-integration[bot] May 26, 2026
f7197e3
feat: add fade+slide transition to toasts
devin-ai-integration[bot] May 26, 2026
7585bd8
style: bump toast font size 13px → 14px
devin-ai-integration[bot] May 26, 2026
2954dca
style: toast viewport top 12px → 48px
devin-ai-integration[bot] May 26, 2026
7456ef6
fix: prevent activeIds Set from growing unbounded
devin-ai-integration[bot] May 26, 2026
0944e5f
Merge pull request #86 from JPL-Devin/devin/1779813894-dep-security-u…
tariqksoliman May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion configuration/webpackDevServer.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,15 @@ module.exports = function (proxy, allowedHost, options) {
// remove last slash so user can land on `/test` instead of `/test/`
publicPath: paths.publicUrlOrPath.slice(0, -1),
},
https: getHttpsConfig(),
server: (() => {
const httpsConfig = getHttpsConfig();
if (httpsConfig && httpsConfig !== false) {
return typeof httpsConfig === 'object'
? { type: 'https', options: httpsConfig }
: { type: 'https' };
}
return 'http';
})(),
host,
client: {
// Silence WebpackDevServer's own logs since they're generally not useful.
Expand Down
9,521 changes: 3,023 additions & 6,498 deletions package-lock.json

Large diffs are not rendered by default.

39 changes: 30 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
"@azure/core-auth": "^1.7.2",
"@azure/identity": "^4.4.0",
"@babel/runtime": "^7.23.1",
"@base-ui-components/react": "^1.0.0-rc.0",
"@base-ui/react": "^1.5.0",
"@eonasdan/tempus-dominus": "^6.2.6",
"@ffmpeg/core": "^0.12.6",
"@ffmpeg/ffmpeg": "^0.12.10",
Expand Down Expand Up @@ -137,7 +137,6 @@
"jquery": "^3.5.1",
"lithosphere": "^1.6.0",
"mark.js": "^8.11.1",
"materialize-css": "^1.0.0",
"memorystore": "^1.6.2",
"nipplejs": "^0.8.5",
"node-fetch": "^2.6.1",
Expand All @@ -153,27 +152,26 @@
"react-app-polyfill": "^3.0.0",
"react-chartjs-2": "^4.3.1",
"react-dom": "^18.2.0",
"react-pdf": "^7.7.3",
"react-pdf": "^10.4.1",
"react-resize-detector": "^9.1.0",
"regenerator-runtime": "^0.13.9",
"reproject-bbox": "^0.4.1",
"resolve": "1.15.0",
"resolve-url-loader": "^5.0.0",
"semver": "6.3",
"sequelize": "^6.33.0",
"sharp": "^0.31.2",
"sequelize": "^6.37.8",
"sharp": "^0.33.0",
"showdown": "^2.1.0",
"snap-bbox": "^0.2.0",
"sortablejs": "^1.15.0",
"swagger-ui-express": "5.0.1",
"tippy.js": "^6.3.7",
"ts-pnp": "1.1.6",
"turf": "^3.0.14",
"util": "^0.12.3",
"utm-utils": "^0.1.0",
"uuid": "^9.0.0",
"uuid": "^11.1.1",
"winston": "3.19.0",
"ws": "8.18.3",
"ws": "~8.21.0",
"xml2js": "^0.6.2",
"zustand": "^4.5.7"
},
Expand Down Expand Up @@ -244,7 +242,30 @@
"webpack": "5.105.4",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.2",
"webpack-dev-server": "^5.2.1",
"webpack-manifest-plugin": "5.0.1"
},
"overrides": {
"protobufjs": "^7.5.8",
"@babel/plugin-transform-modules-systemjs": "^7.29.0",
"braces": "^3.0.3",
"micromatch": "^4.0.8",
"minimatch": "^3.1.4",
"picomatch": "^2.3.2",
"lodash": "^4.17.24",
"follow-redirects": "^1.15.12",
"postcss": "^8.5.10",
"ajv@^6": "^6.14.0",
"ajv@^8": "^8.18.0",
"dottie": "^2.0.7",
"svgo": "^3.3.3",
"underscore": "^1.13.8",
"diff": "^4.0.4",
"yaml": "^2.8.3",
"brace-expansion": "^1.1.13",
"elliptic": "^6.6.1",
"serialize-javascript": "^7.0.3",
"uuid": "^11.1.1",
"qs": "^6.15.2"
}
}
28 changes: 28 additions & 0 deletions public/workers/pdf.worker.min.mjs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion python-environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dependencies:
- pip:
- rasterio>=1.5.0
- numpy>=2.0.0
- requests==2.32.3
- requests==2.33.0
- rio_stac>=0.12.0
- spiceypy==5.1.2
- pymap3d==3.0.1
Expand Down
6 changes: 4 additions & 2 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import F_ from './essence/Basics/Formulae_/Formulae_'

import calls from './pre/calls'

import UserInterfaceLayout from './essence/Basics/UserInterface_/components/Layout/UserInterfaceLayout'
import UserInterfaceLayout from './essence/Basics/UserInterface_/components/Layout/UserInterfaceLayout'
import ToastRenderer from './design-system/components/Toast/ToastRenderer'

// Ensure useReactUI is always set (defensive fallback for non-standard bootstrap)
;(function () {
Expand Down Expand Up @@ -114,7 +115,8 @@ function initApp() {
function App() {
return (
<div className='App'>
<UserInterfaceLayout />
<UserInterfaceLayout />
<ToastRenderer />
</div>
)
}
Expand Down
27 changes: 1 addition & 26 deletions src/css/mmgisUI.css
Original file line number Diff line number Diff line change
Expand Up @@ -1085,32 +1085,7 @@ input::-webkit-inner-spin-button {
max-width: 500px;
width: auto;
}
.mmgisToast {
z-index: 1000;
border-radius: 8px;
top: 0;
width: auto;
margin-top: 8px;
position: relative;
max-width: 100%;
height: auto;
line-height: 1.5em;
background-color: var(--color-a);
border: 1px solid var(--color-a1);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
padding: 10px 25px;
color: var(--color-f);
display: flex;
align-items: center;
justify-content: space-between;
cursor: default;
}
.mmgisToast.failure {
background-color: var(--color-a);
border-left: 3px solid var(--color-r1);
}


/*spinner1*/
.mmgis-spinner1 {
Expand Down
2 changes: 1 addition & 1 deletion src/design-system/components/Button/Button.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react'
import { Button as BaseButton } from '@base-ui-components/react/button'
import { Button as BaseButton } from '@base-ui/react/button'
import styles from './Button.module.css'

function Button({ variant = 'secondary', size = 'md', className, children, ...props }) {
Expand Down
2 changes: 1 addition & 1 deletion src/design-system/components/IconButton/IconButton.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { forwardRef } from 'react'
import { Button as BaseButton } from '@base-ui-components/react/button'
import { Button as BaseButton } from '@base-ui/react/button'
import styles from './IconButton.module.css'

const IconButton = forwardRef(function IconButton({ size = 'md', active, className, children, ...props }, ref) {
Expand Down
2 changes: 1 addition & 1 deletion src/design-system/components/Modal/Modal.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react'
import { Dialog } from '@base-ui-components/react/dialog'
import { Dialog } from '@base-ui/react/dialog'
import styles from './Modal.module.css'

function Modal({ open, onOpenChange, children, className, ...props }) {
Expand Down
40 changes: 18 additions & 22 deletions src/design-system/components/Toast/Toast.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import M from 'materialize-css'
import { Toast as BaseToast } from '@base-ui/react/toast'

/**
* Toast utility for displaying notification messages.
Expand All @@ -11,39 +11,35 @@ import M from 'materialize-css'
*
* Default duration is 3500ms.
*/
export const toastManager = BaseToast.createToastManager()

const DEFAULT_DURATION = 3500
const activeIds = new Set()

function addToast(options) {
const timeout = options.timeout || DEFAULT_DURATION
const id = toastManager.add(options)
activeIds.add(id)
setTimeout(() => activeIds.delete(id), timeout + 500)
return id
}

const Toast = {
info(message, duration) {
M.toast({
html: message,
displayLength: duration || DEFAULT_DURATION,
classes: 'mmgisToast info',
})
addToast({ title: message, type: 'info', timeout: duration || DEFAULT_DURATION })
},
success(message, duration) {
M.toast({
html: message,
displayLength: duration || DEFAULT_DURATION,
classes: 'mmgisToast success',
})
addToast({ title: message, type: 'success', timeout: duration || DEFAULT_DURATION })
},
warning(message, duration) {
M.toast({
html: message,
displayLength: duration || DEFAULT_DURATION,
classes: 'mmgisToast warning',
})
addToast({ title: message, type: 'warning', timeout: duration || DEFAULT_DURATION })
},
error(message, duration) {
M.toast({
html: message,
displayLength: duration || DEFAULT_DURATION,
classes: 'mmgisToast failure',
})
addToast({ title: message, type: 'error', timeout: duration || DEFAULT_DURATION })
},
dismissAll() {
M.Toast.dismissAll()
activeIds.forEach((id) => toastManager.close(id))
activeIds.clear()
},
}

Expand Down
94 changes: 94 additions & 0 deletions src/design-system/components/Toast/ToastRenderer.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
import React from 'react'
import { Toast } from '@base-ui/react/toast'
import { toastManager } from './Toast'

const transitionCSS = `
.mmgisToastRoot {
transition: opacity 0.3s ease, transform 0.3s ease;
opacity: 1;
transform: translateY(0);
}
.mmgisToastRoot[data-starting-style] {
opacity: 0;
transform: translateY(-12px);
}
.mmgisToastRoot[data-ending-style] {
opacity: 0;
transform: translateY(12px);
}
`

const viewportStyle = {
position: 'fixed',
top: '48px',
left: '50%',
transform: 'translateX(-50%)',
zIndex: 1000000,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
gap: '6px',
pointerEvents: 'none',
maxWidth: '90vw',
}

const baseToastStyle = {
borderRadius: '8px',
width: 'auto',
maxWidth: '100%',
lineHeight: '1.4em',
fontSize: '14px',
backgroundColor: 'var(--color-a)',
border: '1px solid var(--color-a1)',
boxShadow: '0 8px 24px rgba(0, 0, 0, 0.4)',
backdropFilter: 'blur(12px)',
WebkitBackdropFilter: 'blur(12px)',
padding: '8px 20px',
color: 'var(--color-f)',
display: 'flex',
alignItems: 'center',
cursor: 'default',
pointerEvents: 'auto',
}

const variantBorder = {
info: '3px solid var(--color-mmgis)',
success: '3px solid #4caf50',
warning: '3px solid #ff9800',
error: '3px solid var(--color-r1)',
}

function ToastList() {
const { toasts } = Toast.useToastManager()
return toasts.map((toast) => {
const type = toast.type
const style = type && variantBorder[type]
? { ...baseToastStyle, borderLeft: variantBorder[type] }
: baseToastStyle
return (
<Toast.Root
key={toast.id}
toast={toast}
style={style}
className="mmgisToastRoot"
>
<Toast.Content>
<Toast.Title render={<span />} />
</Toast.Content>
</Toast.Root>
)
})
}

export default function ToastRenderer() {
return (
<Toast.Provider toastManager={toastManager}>
<style>{transitionCSS}</style>
<Toast.Portal>
<Toast.Viewport style={viewportStyle}>
<ToastList />
</Toast.Viewport>
</Toast.Portal>
</Toast.Provider>
)
}
Loading
Loading