feat(sdk): add RegisterStopHandler/RunStopHandlers and wire stop cleanup into registry lifecycle

- SDK PluginSDK gains RegisterStopHandler(fn func()) + RunStopHandlers()
  (LIFO, idempotent, cleared after running); synced to third_party copy
- Registry keeps per-plugin SDK refs (sdkRefs); StopAll/ReloadOne/
  DisablePlugin run handlers before calling Stop()
- timer built-in plugin demonstrates handler-based shutdown cleanup
- z_bridge (linux/windows templates) runs handlers before plugin.Stop()
This commit is contained in:
root
2026-08-02 10:23:40 +08:00
parent 94312d714a
commit 1013aa0aa9
6 changed files with 66 additions and 9 deletions

View File

@ -263,9 +263,13 @@ code { font-family:monospace; font-size:12px; color:var(--pre-color) }
.msg { max-width:95% }
}
@media(max-width:768px) {
nav { padding:0 8px; gap:2px }
nav h1 { font-size:13px; margin-right:8px }
nav a { padding:8px 6px; font-size:11px }
nav { padding:0 6px; gap:2px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; flex-wrap:nowrap }
nav::-webkit-scrollbar { display:none }
nav h1 { display:none }
nav a { padding:10px 8px; font-size:12px; white-space:nowrap; flex-shrink:0 }
nav > div { flex-shrink:0 }
#conn-name-display { display:none }
.conn-indicator { padding:4px 6px }
.container { padding:12px }
.card { padding:12px }
.grid-2,.grid-3,.grid-4 { grid-template-columns:1fr }
@ -284,6 +288,12 @@ code { font-family:monospace; font-size:12px; color:var(--pre-color) }
.health-item { flex-wrap:wrap; gap:4px }
.health-item .check-name { flex:auto; width:100% }
}
@media(max-width:480px) {
.chat-layout { gap:10px }
.chat-sidebar { min-width:0 }
.msg { max-width:98% }
.settings-sidebar a { padding:6px 10px; font-size:12px }
}
/* Connection Manager */
.overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); display:none; align-items:center; justify-content:center; z-index:1000 }