@memtensor/memos-local-openclaw-plugin 1.0.4-beta.10 → 1.0.4-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/connector.d.ts +1 -0
- package/dist/client/connector.d.ts.map +1 -1
- package/dist/client/connector.js +37 -8
- package/dist/client/connector.js.map +1 -1
- package/dist/hub/server.d.ts +1 -0
- package/dist/hub/server.d.ts.map +1 -1
- package/dist/hub/server.js +122 -28
- package/dist/hub/server.js.map +1 -1
- package/dist/hub/user-manager.d.ts +9 -0
- package/dist/hub/user-manager.d.ts.map +1 -1
- package/dist/hub/user-manager.js +26 -2
- package/dist/hub/user-manager.js.map +1 -1
- package/dist/recall/engine.d.ts.map +1 -1
- package/dist/recall/engine.js +2 -0
- package/dist/recall/engine.js.map +1 -1
- package/dist/sharing/types.d.ts +1 -1
- package/dist/sharing/types.d.ts.map +1 -1
- package/dist/skill/evolver.d.ts +2 -0
- package/dist/skill/evolver.d.ts.map +1 -1
- package/dist/skill/evolver.js +56 -5
- package/dist/skill/evolver.js.map +1 -1
- package/dist/skill/generator.d.ts +2 -0
- package/dist/skill/generator.d.ts.map +1 -1
- package/dist/skill/generator.js +45 -3
- package/dist/skill/generator.js.map +1 -1
- package/dist/skill/installer.d.ts +26 -0
- package/dist/skill/installer.d.ts.map +1 -1
- package/dist/skill/installer.js +80 -4
- package/dist/skill/installer.js.map +1 -1
- package/dist/skill/upgrader.d.ts +2 -0
- package/dist/skill/upgrader.d.ts.map +1 -1
- package/dist/skill/upgrader.js +139 -1
- package/dist/skill/upgrader.js.map +1 -1
- package/dist/skill/validator.d.ts +3 -0
- package/dist/skill/validator.d.ts.map +1 -1
- package/dist/skill/validator.js +75 -0
- package/dist/skill/validator.js.map +1 -1
- package/dist/storage/sqlite.d.ts +15 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +91 -9
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -1
- package/dist/viewer/html.d.ts.map +1 -1
- package/dist/viewer/html.js +44 -23
- package/dist/viewer/html.js.map +1 -1
- package/dist/viewer/server.d.ts.map +1 -1
- package/dist/viewer/server.js +35 -15
- package/dist/viewer/server.js.map +1 -1
- package/index.ts +316 -13
- package/package.json +1 -1
- package/src/client/connector.ts +41 -8
- package/src/hub/server.ts +123 -27
- package/src/hub/user-manager.ts +42 -6
- package/src/recall/engine.ts +2 -0
- package/src/sharing/types.ts +1 -1
- package/src/skill/evolver.ts +58 -6
- package/src/skill/generator.ts +44 -5
- package/src/skill/installer.ts +107 -4
- package/src/skill/upgrader.ts +139 -1
- package/src/skill/validator.ts +79 -0
- package/src/storage/sqlite.ts +105 -9
- package/src/types.ts +11 -0
- package/src/viewer/html.ts +44 -23
- package/src/viewer/server.ts +35 -15
package/dist/viewer/html.js
CHANGED
|
@@ -807,6 +807,10 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
807
807
|
.recall-score.high{background:rgba(34,197,94,.12);color:#22c55e}
|
|
808
808
|
.recall-score.mid{background:rgba(251,191,36,.12);color:#f59e0b}
|
|
809
809
|
.recall-score.low{background:rgba(248,113,113,.1);color:var(--text-muted)}
|
|
810
|
+
.recall-origin{flex-shrink:0;font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px}
|
|
811
|
+
.recall-origin.local-shared{background:rgba(59,130,246,.12);color:#3b82f6}
|
|
812
|
+
.recall-origin.hub-memory{background:rgba(139,92,246,.12);color:#8b5cf6}
|
|
813
|
+
.recall-origin.hub-remote{background:rgba(139,92,246,.12);color:#8b5cf6}
|
|
810
814
|
.recall-summary-short{flex:1;color:var(--text-sec);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
811
815
|
.recall-expand-icon{flex-shrink:0;font-size:10px;color:var(--text-muted);transition:transform .15s}
|
|
812
816
|
.recall-item.expanded .recall-expand-icon{transform:rotate(90deg)}
|
|
@@ -1219,7 +1223,7 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
1219
1223
|
</div>
|
|
1220
1224
|
<button class="btn btn-ghost btn-sm" onclick="doLogout()" data-i18n="logout">Logout</button>
|
|
1221
1225
|
</div>
|
|
1222
|
-
|
|
1226
|
+
</div>
|
|
1223
1227
|
</div>
|
|
1224
1228
|
|
|
1225
1229
|
<div class="main-content">
|
|
@@ -2232,6 +2236,9 @@ const I18N={
|
|
|
2232
2236
|
'logs.recall.noHits':'No matching memories',
|
|
2233
2237
|
'logs.recall.noneRelevant':'LLM filter: none relevant',
|
|
2234
2238
|
'logs.recall.more':'{n} more...',
|
|
2239
|
+
'recall.origin.localShared':'Local Shared',
|
|
2240
|
+
'recall.origin.hubMemory':'Team Cache',
|
|
2241
|
+
'recall.origin.hubRemote':'Team',
|
|
2235
2242
|
'tab.import':'\u{1F4E5} Import',
|
|
2236
2243
|
'tab.settings':'\u2699 Settings',
|
|
2237
2244
|
'settings.modelconfig':'Model Configuration',
|
|
@@ -2943,6 +2950,9 @@ const I18N={
|
|
|
2943
2950
|
'logs.recall.noHits':'未匹配到记忆',
|
|
2944
2951
|
'logs.recall.noneRelevant':'LLM 过滤:无相关记忆',
|
|
2945
2952
|
'logs.recall.more':'还有 {n} 条...',
|
|
2953
|
+
'recall.origin.localShared':'本机共享',
|
|
2954
|
+
'recall.origin.hubMemory':'团队缓存',
|
|
2955
|
+
'recall.origin.hubRemote':'团队',
|
|
2946
2956
|
'tab.import':'\u{1F4E5} 导入',
|
|
2947
2957
|
'tab.settings':'\u2699 设置',
|
|
2948
2958
|
'settings.modelconfig':'模型配置',
|
|
@@ -4090,7 +4100,7 @@ function adminPaginateHtml(total,page,refilterFn){
|
|
|
4090
4100
|
if(end<pages) html+=(end<pages-1?'<span class="pg-info">...</span>':'')+'<button class="pg-btn" onclick="'+refilterFn+'Page('+(pages-1)+')">'+pages+'</button>';
|
|
4091
4101
|
html+='<button class="pg-btn'+(page>=pages-1?' disabled':'')+'" onclick="'+refilterFn+'Page('+(page+1)+')">\\u2192</button>';
|
|
4092
4102
|
html+='<span class="pg-info">'+total+' '+t('pagination.total')+'</span>';
|
|
4093
|
-
|
|
4103
|
+
html+='</div>';
|
|
4094
4104
|
return html;
|
|
4095
4105
|
}
|
|
4096
4106
|
|
|
@@ -4152,12 +4162,12 @@ async function loadAdminData(){
|
|
|
4152
4162
|
var fetches;
|
|
4153
4163
|
if(isAdmin){
|
|
4154
4164
|
fetches=await Promise.all([
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4165
|
+
fetch('/api/sharing/users').then(function(r){return r.json();}),
|
|
4166
|
+
fetch('/api/admin/shared-tasks').then(function(r){return r.json();}),
|
|
4167
|
+
fetch('/api/admin/shared-skills').then(function(r){return r.json();}),
|
|
4168
|
+
fetch('/api/sharing/pending-users').then(function(r){return r.json();}),
|
|
4169
|
+
fetch('/api/admin/shared-memories').then(function(r){return r.json();})
|
|
4170
|
+
]);
|
|
4161
4171
|
}else{
|
|
4162
4172
|
fetches=await Promise.all([
|
|
4163
4173
|
Promise.resolve({users:[]}),
|
|
@@ -5392,6 +5402,13 @@ function parseMemoryAddEntries(out){
|
|
|
5392
5402
|
return results;
|
|
5393
5403
|
}
|
|
5394
5404
|
|
|
5405
|
+
function recallOriginBadge(origin){
|
|
5406
|
+
if(origin==='local-shared') return '<span class="recall-origin local-shared">'+t('recall.origin.localShared')+'</span>';
|
|
5407
|
+
if(origin==='hub-memory') return '<span class="recall-origin hub-memory">'+t('recall.origin.hubMemory')+'</span>';
|
|
5408
|
+
if(origin==='hub-remote') return '<span class="recall-origin hub-remote">'+t('recall.origin.hubRemote')+'</span>';
|
|
5409
|
+
return '';
|
|
5410
|
+
}
|
|
5411
|
+
|
|
5395
5412
|
function buildLogSummary(lg){
|
|
5396
5413
|
let inputObj=null;
|
|
5397
5414
|
try{inputObj=JSON.parse(lg.input);}catch(_){}
|
|
@@ -5416,8 +5433,9 @@ function buildLogSummary(lg){
|
|
|
5416
5433
|
var scoreClass=c.score>=0.7?'high':c.score>=0.5?'mid':'low';
|
|
5417
5434
|
var shortText=escapeHtml(c.summary||c.content||c.original_excerpt||'');
|
|
5418
5435
|
var fullText=escapeHtml(c.content||c.original_excerpt||c.summary||'');
|
|
5436
|
+
var oBadge=recallOriginBadge(c.origin);
|
|
5419
5437
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5420
|
-
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+c.score.toFixed(2)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span
|
|
5438
|
+
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+c.score.toFixed(2)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5421
5439
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5422
5440
|
html+='</div>';
|
|
5423
5441
|
});
|
|
@@ -5430,8 +5448,9 @@ function buildLogSummary(lg){
|
|
|
5430
5448
|
var scoreClass=f.score>=0.7?'high':f.score>=0.5?'mid':'low';
|
|
5431
5449
|
var shortText=escapeHtml(f.summary||f.content||f.original_excerpt||'');
|
|
5432
5450
|
var fullText=escapeHtml(f.content||f.original_excerpt||f.summary||'');
|
|
5451
|
+
var oBadge=recallOriginBadge(f.origin);
|
|
5433
5452
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5434
|
-
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+f.score.toFixed(2)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span
|
|
5453
|
+
html+='<div class="recall-item-head"><span class="recall-score '+scoreClass+'">'+f.score.toFixed(2)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5435
5454
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5436
5455
|
html+='</div>';
|
|
5437
5456
|
});
|
|
@@ -5495,8 +5514,9 @@ function buildRecallDetailHtml(rd){
|
|
|
5495
5514
|
var scoreClass=c.score>=0.7?'high':c.score>=0.5?'mid':'low';
|
|
5496
5515
|
var shortText=escapeHtml(c.summary||c.content||c.original_excerpt||'');
|
|
5497
5516
|
var fullText=escapeHtml(c.content||c.original_excerpt||c.summary||'');
|
|
5517
|
+
var oBadge=recallOriginBadge(c.origin);
|
|
5498
5518
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5499
|
-
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+c.score.toFixed(3)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span
|
|
5519
|
+
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+c.score.toFixed(3)+'</span><span class="log-msg-role '+(c.role||'user')+'">'+(c.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5500
5520
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5501
5521
|
html+='</div>';
|
|
5502
5522
|
});
|
|
@@ -5510,8 +5530,9 @@ function buildRecallDetailHtml(rd){
|
|
|
5510
5530
|
var scoreClass=f.score>=0.7?'high':f.score>=0.5?'mid':'low';
|
|
5511
5531
|
var shortText=escapeHtml(f.summary||f.content||f.original_excerpt||'');
|
|
5512
5532
|
var fullText=escapeHtml(f.content||f.original_excerpt||f.summary||'');
|
|
5533
|
+
var oBadge=recallOriginBadge(f.origin);
|
|
5513
5534
|
html+='<div class="recall-item" onclick="event.stopPropagation();this.classList.toggle(\\\'expanded\\\')">';
|
|
5514
|
-
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+f.score.toFixed(3)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span
|
|
5535
|
+
html+='<div class="recall-item-head"><span class="recall-idx">'+(i+1)+'</span><span class="recall-score '+scoreClass+'">'+f.score.toFixed(3)+'</span><span class="log-msg-role '+(f.role||'user')+'">'+(f.role||'user')+'</span>'+oBadge+'<span class="recall-summary-short">'+shortText+'</span><span class="recall-expand-icon">\u25B6</span></div>';
|
|
5515
5536
|
html+='<div class="recall-summary-full">'+fullText+'</div>';
|
|
5516
5537
|
html+='</div>';
|
|
5517
5538
|
});
|
|
@@ -6717,8 +6738,8 @@ async function saveHubConfig(){
|
|
|
6717
6738
|
if(!td.ok){
|
|
6718
6739
|
var errMsg=td.error==='cannot_join_self'?t('sharing.cannotJoinSelf'):(td.error||t('settings.hub.test.fail'));
|
|
6719
6740
|
done();toast(errMsg,'error');return;
|
|
6720
|
-
|
|
6721
|
-
|
|
6741
|
+
}
|
|
6742
|
+
}catch(e){
|
|
6722
6743
|
done();toast(t('settings.hub.test.fail')+': '+String(e),'error');return;
|
|
6723
6744
|
}
|
|
6724
6745
|
}
|
|
@@ -7539,8 +7560,8 @@ function getFilterParams(){
|
|
|
7539
7560
|
if(scope==='local'){
|
|
7540
7561
|
p.set('owner',_currentAgentOwner);
|
|
7541
7562
|
}else if(scope==='allLocal'){
|
|
7542
|
-
|
|
7543
|
-
|
|
7563
|
+
const owner=document.getElementById('filterOwner').value;
|
|
7564
|
+
if(owner) p.set('owner',owner);
|
|
7544
7565
|
}
|
|
7545
7566
|
return p;
|
|
7546
7567
|
}
|
|
@@ -7570,11 +7591,11 @@ async function loadMemories(page,silent){
|
|
|
7570
7591
|
renderPagination();
|
|
7571
7592
|
}catch(e){
|
|
7572
7593
|
if(!silent){
|
|
7573
|
-
|
|
7574
|
-
|
|
7594
|
+
list.innerHTML='';
|
|
7595
|
+
totalPages=1;totalCount=0;
|
|
7575
7596
|
_lastMemoriesFingerprint='';
|
|
7576
|
-
|
|
7577
|
-
|
|
7597
|
+
renderMemories([]);
|
|
7598
|
+
renderPagination();
|
|
7578
7599
|
}
|
|
7579
7600
|
}
|
|
7580
7601
|
}
|
|
@@ -7601,9 +7622,9 @@ async function loadHubMemories(silent){
|
|
|
7601
7622
|
}catch(e){
|
|
7602
7623
|
if(!silent){
|
|
7603
7624
|
_lastMemoriesFingerprint='';
|
|
7604
|
-
|
|
7605
|
-
|
|
7606
|
-
|
|
7625
|
+
document.getElementById('searchMeta').textContent='0'+t('search.meta.results');
|
|
7626
|
+
renderMemories([]);
|
|
7627
|
+
document.getElementById('pagination').innerHTML='';
|
|
7607
7628
|
}
|
|
7608
7629
|
}
|
|
7609
7630
|
}
|
package/dist/viewer/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,gCAsnRC;AAtnRD,SAAgB,UAAU,CAAC,aAAsB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,gCAAgC,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qKA0qC8J,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAy8OnK,CAAC;AACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer/server.js
CHANGED
|
@@ -1929,7 +1929,8 @@ class ViewerServer {
|
|
|
1929
1929
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
1930
1930
|
try {
|
|
1931
1931
|
const u = new URL(hubUrl);
|
|
1932
|
-
|
|
1932
|
+
const targetPort = u.port || (u.protocol === "https:" ? "443" : "80");
|
|
1933
|
+
if (localIPs.includes(u.hostname) && targetPort === String(this.port)) {
|
|
1933
1934
|
return this.jsonResponse(res, { ok: false, error: "cannot_join_self" });
|
|
1934
1935
|
}
|
|
1935
1936
|
}
|
|
@@ -1938,10 +1939,13 @@ class ViewerServer {
|
|
|
1938
1939
|
const nickname = sharing.client?.nickname;
|
|
1939
1940
|
const username = nickname || os.userInfo().username || "user";
|
|
1940
1941
|
const hostname = os.hostname() || "unknown";
|
|
1942
|
+
const persisted = this.store.getClientHubConnection();
|
|
1943
|
+
const existingIdentityKey = persisted?.identityKey || "";
|
|
1941
1944
|
const result = await (0, hub_1.hubRequestJson)(hubUrl, "", "/api/v1/hub/join", {
|
|
1942
1945
|
method: "POST",
|
|
1943
|
-
body: JSON.stringify({ teamToken, username, deviceName: hostname, reapply: true }),
|
|
1946
|
+
body: JSON.stringify({ teamToken, username, deviceName: hostname, reapply: true, identityKey: existingIdentityKey }),
|
|
1944
1947
|
});
|
|
1948
|
+
const returnedIdentityKey = String(result.identityKey || existingIdentityKey || "");
|
|
1945
1949
|
this.store.setClientHubConnection({
|
|
1946
1950
|
hubUrl,
|
|
1947
1951
|
userId: String(result.userId || ""),
|
|
@@ -1949,6 +1953,8 @@ class ViewerServer {
|
|
|
1949
1953
|
userToken: result.userToken || "",
|
|
1950
1954
|
role: "member",
|
|
1951
1955
|
connectedAt: Date.now(),
|
|
1956
|
+
identityKey: returnedIdentityKey,
|
|
1957
|
+
lastKnownStatus: result.status || "",
|
|
1952
1958
|
});
|
|
1953
1959
|
this.jsonResponse(res, { ok: true, status: result.status || "pending" });
|
|
1954
1960
|
}
|
|
@@ -2811,7 +2817,8 @@ class ViewerServer {
|
|
|
2811
2817
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
2812
2818
|
try {
|
|
2813
2819
|
const u = new URL(addr.startsWith("http") ? addr : `http://${addr}`);
|
|
2814
|
-
|
|
2820
|
+
const targetPort = u.port || (u.protocol === "https:" ? "443" : "80");
|
|
2821
|
+
if (localIPs.includes(u.hostname) && targetPort === String(this.port)) {
|
|
2815
2822
|
res.writeHead(400, { "Content-Type": "application/json" });
|
|
2816
2823
|
res.end(JSON.stringify({ error: "cannot_join_self" }));
|
|
2817
2824
|
return;
|
|
@@ -2835,16 +2842,21 @@ class ViewerServer {
|
|
|
2835
2842
|
const isClient = newEnabled && newRole === "client";
|
|
2836
2843
|
if (wasClient && !isClient) {
|
|
2837
2844
|
this.notifyHubLeave();
|
|
2838
|
-
this.store.
|
|
2839
|
-
|
|
2845
|
+
const oldConn = this.store.getClientHubConnection();
|
|
2846
|
+
if (oldConn) {
|
|
2847
|
+
this.store.setClientHubConnection({ ...oldConn, userToken: "", lastKnownStatus: "left" });
|
|
2848
|
+
}
|
|
2849
|
+
this.log.info("Client hub connection token cleared (sharing disabled or role changed), identity preserved");
|
|
2840
2850
|
}
|
|
2841
|
-
// Detect switching to a different Hub while still in client mode
|
|
2842
2851
|
if (wasClient && isClient) {
|
|
2843
2852
|
const newClientAddr = String(merged.client?.hubAddress || "");
|
|
2844
2853
|
if (newClientAddr && oldClientHubAddress && (0, hub_1.normalizeHubUrl)(newClientAddr) !== (0, hub_1.normalizeHubUrl)(oldClientHubAddress)) {
|
|
2845
2854
|
this.notifyHubLeave();
|
|
2846
|
-
this.store.
|
|
2847
|
-
|
|
2855
|
+
const oldConn = this.store.getClientHubConnection();
|
|
2856
|
+
if (oldConn) {
|
|
2857
|
+
this.store.setClientHubConnection({ ...oldConn, hubUrl: (0, hub_1.normalizeHubUrl)(newClientAddr), userToken: "", lastKnownStatus: "hub_changed" });
|
|
2858
|
+
}
|
|
2859
|
+
this.log.info("Client hub connection token cleared (switched to different Hub), identity preserved");
|
|
2848
2860
|
}
|
|
2849
2861
|
}
|
|
2850
2862
|
if (merged.role === "hub") {
|
|
@@ -2859,9 +2871,11 @@ class ViewerServer {
|
|
|
2859
2871
|
node_fs_1.default.writeFileSync(cfgPath, JSON.stringify(raw, null, 2), "utf-8");
|
|
2860
2872
|
this.log.info("Plugin config updated via Viewer");
|
|
2861
2873
|
this.stopHubHeartbeat();
|
|
2862
|
-
// When switching to client mode,
|
|
2874
|
+
// When switching to client mode or re-enabling sharing as client, send join request
|
|
2863
2875
|
const finalSharing = config.sharing;
|
|
2864
|
-
|
|
2876
|
+
const nowClient = Boolean(finalSharing?.enabled) && finalSharing?.role === "client";
|
|
2877
|
+
const previouslyClient = oldSharingEnabled && oldSharingRole === "client";
|
|
2878
|
+
if (nowClient && !previouslyClient) {
|
|
2865
2879
|
this.autoJoinOnSave(finalSharing).catch(e => this.log.warn(`Auto-join on save failed: ${e}`));
|
|
2866
2880
|
}
|
|
2867
2881
|
this.jsonResponse(res, { ok: true });
|
|
@@ -2884,10 +2898,13 @@ class ViewerServer {
|
|
|
2884
2898
|
const nickname = String(clientCfg?.nickname || "");
|
|
2885
2899
|
const username = nickname || os.userInfo().username || "user";
|
|
2886
2900
|
const hostname = os.hostname() || "unknown";
|
|
2901
|
+
const persisted = this.store.getClientHubConnection();
|
|
2902
|
+
const existingIdentityKey = persisted?.identityKey || "";
|
|
2887
2903
|
const result = await (0, hub_1.hubRequestJson)(hubUrl, "", "/api/v1/hub/join", {
|
|
2888
2904
|
method: "POST",
|
|
2889
|
-
body: JSON.stringify({ teamToken, username, deviceName: hostname }),
|
|
2905
|
+
body: JSON.stringify({ teamToken, username, deviceName: hostname, identityKey: existingIdentityKey }),
|
|
2890
2906
|
});
|
|
2907
|
+
const returnedIdentityKey = String(result.identityKey || existingIdentityKey || "");
|
|
2891
2908
|
this.store.setClientHubConnection({
|
|
2892
2909
|
hubUrl,
|
|
2893
2910
|
userId: String(result.userId || ""),
|
|
@@ -2895,6 +2912,8 @@ class ViewerServer {
|
|
|
2895
2912
|
userToken: result.userToken || "",
|
|
2896
2913
|
role: "member",
|
|
2897
2914
|
connectedAt: Date.now(),
|
|
2915
|
+
identityKey: returnedIdentityKey,
|
|
2916
|
+
lastKnownStatus: result.status || "",
|
|
2898
2917
|
});
|
|
2899
2918
|
this.log.info(`Auto-join on save: status=${result.status}, userId=${result.userId}`);
|
|
2900
2919
|
if (result.userToken) {
|
|
@@ -2989,10 +3008,10 @@ class ViewerServer {
|
|
|
2989
3008
|
}
|
|
2990
3009
|
}
|
|
2991
3010
|
else {
|
|
2992
|
-
const
|
|
2993
|
-
if (
|
|
3011
|
+
const persistedConn = this.store.getClientHubConnection();
|
|
3012
|
+
if (persistedConn) {
|
|
2994
3013
|
this.store.setClientHubConnection({
|
|
2995
|
-
...
|
|
3014
|
+
...persistedConn,
|
|
2996
3015
|
username: result.username,
|
|
2997
3016
|
userToken: result.userToken,
|
|
2998
3017
|
});
|
|
@@ -3022,7 +3041,8 @@ class ViewerServer {
|
|
|
3022
3041
|
const localIPs = this.getLocalIPs();
|
|
3023
3042
|
localIPs.push("127.0.0.1", "localhost", "0.0.0.0");
|
|
3024
3043
|
const parsed = new URL(hubUrl.startsWith("http") ? hubUrl : `http://${hubUrl}`);
|
|
3025
|
-
|
|
3044
|
+
const targetPort = parsed.port || (parsed.protocol === "https:" ? "443" : "80");
|
|
3045
|
+
if (localIPs.includes(parsed.hostname) && targetPort === String(this.port)) {
|
|
3026
3046
|
this.jsonResponse(res, { ok: false, error: "cannot_join_self" });
|
|
3027
3047
|
return;
|
|
3028
3048
|
}
|