@@ -1139,18 +1139,21 @@ document.addEventListener("DOMContentLoaded", function () {
11391139 } ;
11401140
11411141 // "+ Create" button at end of tab list (placed outside tabList to prevent ARIA child violation)
1142- const newBtn = document . createElement ( 'button' ) ;
1143- newBtn . className = 'tab-new-btn' ;
1144- newBtn . title = 'New Tab (Ctrl+T)' ;
1145- newBtn . setAttribute ( 'aria-label' , 'Open new tab' ) ;
1146- newBtn . innerHTML = '<i class="bi bi-plus-lg"></i>' ;
1147- newBtn . addEventListener ( 'click' , function ( ) { newTab ( ) ; } ) ;
1148-
1149- const resetBtn = document . getElementById ( 'tab-reset-btn' ) ;
1150- if ( resetBtn ) {
1151- tabList . parentElement . insertBefore ( newBtn , resetBtn ) ;
1152- } else {
1153- tabList . parentElement . appendChild ( newBtn ) ;
1142+ let newBtn = tabList . parentElement . querySelector ( '.tab-new-btn' ) ;
1143+ if ( ! newBtn ) {
1144+ newBtn = document . createElement ( 'button' ) ;
1145+ newBtn . className = 'tab-new-btn' ;
1146+ newBtn . title = 'New Tab (Ctrl+T)' ;
1147+ newBtn . setAttribute ( 'aria-label' , 'Open new tab' ) ;
1148+ newBtn . innerHTML = '<i class="bi bi-plus-lg"></i>' ;
1149+ newBtn . addEventListener ( 'click' , function ( ) { newTab ( ) ; } ) ;
1150+
1151+ const resetBtn = document . getElementById ( 'tab-reset-btn' ) ;
1152+ if ( resetBtn ) {
1153+ tabList . parentElement . insertBefore ( newBtn , resetBtn ) ;
1154+ } else {
1155+ tabList . parentElement . appendChild ( newBtn ) ;
1156+ }
11541157 }
11551158
11561159 // Auto-scroll active tab into view (paint-aligned to prevent forced reflows)
0 commit comments