feat: bind/unbind by id, video streaming proxy, unmute default, library refresh, hamburger click-outside

- Core API: bind/unbind accept id (integer PK) when face_id is null
- Tauri proxy: stream video responses instead of buffering for seek bar
- VideoPlayer: remove muted attribute, unmute by default
- LibraryView: call invalidateFiles() before ensureFiles() on register/unregister
- PeopleView: close sort panel on click-outside, not just hamburger toggle
- bind_face: prefer face_id, fallback to id when face_id is null
This commit is contained in:
2026-06-18 22:24:03 +08:00
parent 97af4da331
commit 7855983dc1
19 changed files with 5322 additions and 794 deletions

View File

@@ -1,7 +1,9 @@
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import vObserve from './directives/vObserve'
const app = createApp(App)
app.use(router)
app.directive('observe', vObserve)
app.mount('#app')