feat: enhance permission modal with tool details, queue nav, session nav, and responsive design

Modal Enhancements:
- Add accurate tool name extraction from message store (same method as inline chat)
- Display 'Tool Call [name]' badge (e.g., 'Tool Call read', 'Tool Call write')
- Add 'Go to Session ↗' button to navigate to originating session
- Add Prev/Next buttons for queue navigation with keyboard shortcuts (←/→)
- Add queue counter showing current position

Responsive Web Design:
- Portrait phones: 90vh max-height with safe margins (avoids browser URL bar)
- Landscape phones: 95vw with 50vh body scroll
- Tablets: adaptive layout
- Touch devices: 44-48px touch targets

Technical Changes:
- Import messageStoreBus for tool part lookup
- Query linked part.tool via permission messageId/callId
- Export setActivePermissionIdForInstance for queue navigation
- Add tool badge CSS styling
This commit is contained in:
bizzkoot
2026-01-08 06:38:59 +08:00
parent f01a06d85b
commit 888e365d72
3 changed files with 538 additions and 26 deletions

View File

@@ -562,6 +562,14 @@ function clearPermissionQueue(instanceId: string): void {
function setActivePermissionIdForInstance(instanceId: string, permissionId: string): void {
setActivePermissionId((prev) => {
const next = new Map(prev)
next.set(instanceId, permissionId)
return next
})
}
async function sendPermissionResponse(
instanceId: string,
sessionId: string,
@@ -656,6 +664,7 @@ export {
removePermissionFromQueue,
clearPermissionQueue,
sendPermissionResponse,
setActivePermissionIdForInstance,
disconnectedInstance,
acknowledgeDisconnectedInstance,
fetchLspStatus,