Phase 2: Native macOS menu bar app + DMG download from dashboard

This commit is contained in:
2026-04-13 13:49:22 +00:00
parent c17594d7c0
commit 845d6e4fbe
2 changed files with 10 additions and 1 deletions
+2
View File
@@ -4,3 +4,5 @@ __pycache__/
.DS_Store .DS_Store
._* ._*
*.db *.db
*.dmg
downloads/
+8 -1
View File
@@ -350,7 +350,10 @@ async function loadBridge(){
if(!b.connected){ if(!b.connected){
el.innerHTML=`<div class="bridge-bar"> el.innerHTML=`<div class="bridge-bar">
<div class="bridge-info"><div class="bridge-dot offline"></div><span>Mac Bridge: Not installed</span></div> <div class="bridge-info"><div class="bridge-dot offline"></div><span>Mac Bridge: Not installed</span></div>
<div class="bridge-actions"><button class="btn-save" onclick="installBridge()">Install Mac Bridge</button></div> <div class="bridge-actions">
<button class="btn-save" onclick="downloadBridgeApp()">Download App</button>
<button class="btn-secondary" onclick="installBridge()">Install Script</button>
</div>
</div>`; </div>`;
} else { } else {
const ago=timeAgo(b.last_heartbeat); const ago=timeAgo(b.last_heartbeat);
@@ -370,6 +373,10 @@ async function loadBridge(){
}catch(e){console.error('Bridge check failed:',e)} }catch(e){console.error('Bridge check failed:',e)}
} }
async function downloadBridgeApp(){
window.open(API+'/static/downloads/AgentBridge.dmg','_blank');
}
async function installBridge(){ async function installBridge(){
window.open(API+'/api/bridge/install-script','_blank'); window.open(API+'/api/bridge/install-script','_blank');
} }