Skip to content

feat: add useSheetNavigation hook and SheetNavigationButtons component#3739

Merged
akshaydeo merged 3 commits into
devfrom
05-25-feat_added_usesheetnavigation_hook
May 27, 2026
Merged

feat: add useSheetNavigation hook and SheetNavigationButtons component#3739
akshaydeo merged 3 commits into
devfrom
05-25-feat_added_usesheetnavigation_hook

Conversation

@impoiler

@impoiler impoiler commented May 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduces reusable keyboard-driven sheet navigation, allowing users to move between items in a sheet panel using arrow keys or vim-style j/k bindings.

Changes

  • Added a useSheetNavigation hook that registers up/k (previous) and down/j (next) hotkeys via react-hotkeys-hook, conditionally enabled based on whether adjacent items exist. The hook returns shortcut key metadata for display in the UI.
  • Added a SheetNavigationButtons component that renders up/down chevron buttons with tooltips showing the associated keyboard shortcuts. Shortcuts are rendered as styled <kbd> elements, supporting both icon and label representations.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

cd ui
pnpm i || npm i
pnpm build || npm run build

Integrate useSheetNavigation and SheetNavigationButtons into a sheet component with a navigable list. Verify that:

  • The up/down buttons appear and are disabled when no previous/next item exists.
  • Pressing /k navigates to the previous item and /j navigates to the next.
  • Tooltips display the correct keyboard shortcut icons and labels.

Screenshots/Recordings

Add before/after screenshots or clips of the navigation buttons and tooltips in action.

Breaking changes

  • Yes
  • No

Related issues

Link related issues here.

Security considerations

None.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai

coderabbitai Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Sheet navigation with previous/next chevron buttons controlled by availability states.
    • Built-in keyboard shortcut support (arrow keys and K/J) for navigation when enabled.
    • Tooltips displaying direction labels with optional keyboard shortcut hints.
    • Enhanced sheet auto-focus handling for customizable focus behavior on open.

Walkthrough

This PR adds keyboard-driven sheet navigation by introducing a custom hook that registers up/k and down/j hotkeys, enhancing the sheet component's auto-focus behavior, and creating a reusable button component that renders navigation controls with shortcut hints.

Changes

Sheet Navigation with Keyboard Shortcuts

Layer / File(s) Summary
Navigation shortcuts hook and types
ui/hooks/useSheetNavigation.ts
Hook wires keyboard shortcuts (up/k for prev, down/j for next) to trigger onNavigate callbacks, gated by enabled and hasPrev/hasNext flags. Exports ShortcutKey and SheetNavigationShortcuts types describing the default bindings.
Sheet auto-focus customization
ui/components/ui/sheet.tsx
SheetContent now accepts and forwards onOpenAutoFocus callback to SheetPrimitive.Content, allowing consumers to customize focus behavior when the sheet opens.
Navigation buttons component
ui/components/sheetNavigationButtons.tsx
Renders previous/next chevron buttons with tooltips and optional keyboard shortcut hints. Buttons are disabled based on hasPrev/hasNext and invoke onNavigate on click, with customizable aria labels.

Sequence Diagram

sequenceDiagram
  participant User
  participant useSheetNavigation as Hook
  participant SheetContent
  participant SheetNavigationButtons
  participant App as onNavigate Callback

  User->>useSheetNavigation: Presses Arrow Up or K
  useSheetNavigation->>useSheetNavigation: Check enabled && hasPrev
  useSheetNavigation->>App: Call onNavigate("prev")
  App->>App: Handle navigation

  User->>SheetNavigationButtons: Click Prev Button
  SheetNavigationButtons->>App: Call onNavigate("prev")
  App->>App: Handle navigation

  User->>User: Sheet opens
  User->>SheetContent: Auto-focus event fires
  SheetContent->>SheetContent: preventDefault()
  SheetContent->>App: Call onOpenAutoFocus (if provided)
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • akshaydeo

Poem

A rabbit hops through keyboard lands,
With arrows up and down in hand—
k and j in furry stance,
Leading sheets in keyboard dance! 🐰⌨️

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main changes: adding a new hook and component for sheet navigation.
Description check ✅ Passed The description covers summary, changes, type, affected areas, and testing instructions, though screenshots are marked as unprovided and some checklist items remain unchecked.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 05-25-feat_added_usesheetnavigation_hook

Comment @coderabbitai help to get the list of available commands and usage tips.

@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from 0235130 to 9973b3e Compare May 26, 2026 03:28
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from 9973b3e to b443ad2 Compare May 26, 2026 04:55
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from c903978 to 0d8f218 Compare May 26, 2026 04:55
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from b443ad2 to dd253f3 Compare May 26, 2026 05:53
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from 0d8f218 to 6429b2e Compare May 26, 2026 05:53
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from 6429b2e to 7d7b950 Compare May 26, 2026 07:50
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from dd253f3 to 7f467dd Compare May 26, 2026 07:50
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from 7d7b950 to e745168 Compare May 26, 2026 09:44
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from 7f467dd to 23fe840 Compare May 26, 2026 09:44
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from 23fe840 to e3d7333 Compare May 26, 2026 17:00
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from e745168 to 5455304 Compare May 26, 2026 17:00
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from 5455304 to 08c7903 Compare May 27, 2026 04:06
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from e3d7333 to 01edafd Compare May 27, 2026 04:06
@impoiler impoiler changed the title feat: added useSheetNavigation hook feat: add useSheetNavigation hook and SheetNavigationButtons component May 27, 2026
@impoiler impoiler self-assigned this May 27, 2026
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from 01edafd to 8a0a3b7 Compare May 27, 2026 09:13
@greptile-apps

greptile-apps Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 4/5

The hook and button component are safe in isolation, but the global auto-focus suppression change in the shared SheetContent requires attention before merging.

The unconditional e.preventDefault() in SheetContent.onOpenAutoFocus removes Radix UI's built-in focus management for every sheet in the application. This was added to support navigation sheets but affects all 15+ sheet consumers, meaning keyboard and screen-reader users must manually tab into any sheet that opens — a regression that goes beyond the intended scope of this feature.

ui/components/ui/sheet.tsx — the global auto-focus suppression affects all sheets, not just navigation-aware ones.

Important Files Changed

Filename Overview
ui/hooks/useSheetNavigation.ts New hook wiring up/k and down/j hotkeys via react-hotkeys-hook, conditionally gated on enabled+hasPrev/hasNext; returns static shortcut metadata. Return value produces new object/array references every render.
ui/components/sheetNavigationButtons.tsx New component rendering prev/next chevron buttons with shortcut-key tooltips. Tooltips won't render on hover when buttons are disabled because native disabled buttons swallow pointer events.
ui/components/ui/sheet.tsx Adds unconditional e.preventDefault() in onOpenAutoFocus handler, suppressing Radix UI focus management for every sheet in the app; this global side-effect was added to support navigation sheets but affects all consumers.

Reviews (2): Last reviewed commit: "feat: added useSheetNavigation hook" | Re-trigger Greptile

Comment thread ui/components/sheetNavigationButtons.tsx
Comment thread ui/components/ui/sheet.tsx
Comment thread ui/hooks/useSheetNavigation.ts
@impoiler impoiler force-pushed the 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets branch from 2e139c9 to fb08c09 Compare May 27, 2026 13:16
@impoiler impoiler force-pushed the 05-25-feat_added_usesheetnavigation_hook branch from e6a5076 to 1149f98 Compare May 27, 2026 13:16
@coderabbitai coderabbitai Bot requested a review from akshaydeo May 27, 2026 13:17

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ui/components/sheetNavigationButtons.tsx`:
- Around line 46-55: Add data-testid attributes to the new navigation Button
elements in the SheetNavigationButtons component: for the previous button (the
Button with disabled={!hasPrev}, onClick={() => onNavigate("prev")},
aria-label={`Previous ${entityLabel}`} and child ChevronUp) add a unique
data-testid like "sheet-nav-prev" and for the corresponding next button (the
Button with disabled={!hasNext}, onClick={() => onNavigate("next")},
aria-label={`Next ${entityLabel}`} and child ChevronDown) add "sheet-nav-next"
so E2E tests can reliably target these interactive elements.
- Around line 22-24: Replace the unstable index-based key used in the keys.map
render inside sheetNavigationButtons.tsx: instead of key={i} on the
React.Fragment, construct a stable unique key from the shortcut item's
identifying properties (e.g., combine k.icon and k.label or another unique field
on the shortcut object) so the mapping in keys.map((k, i) => ...) uses that
deterministic key for the React.Fragment to ensure stable reconciliation.

In `@ui/components/ui/sheet.tsx`:
- Around line 106-109: The current inline handler always calls
e.preventDefault() in the onOpenAutoFocus prop, which disables Radix's default
autofocus even when no custom handler is provided; change the implementation in
the sheet component so you only call e.preventDefault() when a custom
onOpenAutoFocus handler exists — e.g., check if onOpenAutoFocus is truthy, then
run e.preventDefault() and invoke onOpenAutoFocus(e); otherwise do nothing so
Radix's default focus behavior remains intact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fc1f70e5-a34d-449a-a725-b17534ccc06e

📥 Commits

Reviewing files that changed from the base of the PR and between fb08c09 and 1149f98.

📒 Files selected for processing (3)
  • ui/components/sheetNavigationButtons.tsx
  • ui/components/ui/sheet.tsx
  • ui/hooks/useSheetNavigation.ts

Comment thread ui/components/sheetNavigationButtons.tsx
Comment thread ui/components/sheetNavigationButtons.tsx
Comment thread ui/components/ui/sheet.tsx
coderabbitai[bot]
coderabbitai Bot previously approved these changes May 27, 2026

akshaydeo commented May 27, 2026

Copy link
Copy Markdown
Contributor

Merge activity

  • May 27, 1:44 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • May 27, 1:47 PM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo akshaydeo changed the base branch from 05-25-refactor_moved_all_dialogs_on_workspace_governance_customers_tosheets to graphite-base/3739 May 27, 2026 13:45
@akshaydeo akshaydeo changed the base branch from graphite-base/3739 to dev May 27, 2026 13:46
@akshaydeo akshaydeo dismissed coderabbitai[bot]’s stale review May 27, 2026 13:46

The base branch was changed.

@akshaydeo akshaydeo merged commit 59d38da into dev May 27, 2026
9 checks passed
@akshaydeo akshaydeo deleted the 05-25-feat_added_usesheetnavigation_hook branch May 27, 2026 13:47
akshaydeo pushed a commit that referenced this pull request May 29, 2026
…onent (#3739)

## Summary

Introduces reusable keyboard-driven sheet navigation, allowing users to move between items in a sheet panel using arrow keys or vim-style `j`/`k` bindings.

## Changes

- Added a `useSheetNavigation` hook that registers `up`/`k` (previous) and `down`/`j` (next) hotkeys via `react-hotkeys-hook`, conditionally enabled based on whether adjacent items exist. The hook returns shortcut key metadata for display in the UI.
- Added a `SheetNavigationButtons` component that renders up/down chevron buttons with tooltips showing the associated keyboard shortcuts. Shortcuts are rendered as styled `<kbd>` elements, supporting both icon and label representations.

## Type of change

- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [ ] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [ ] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

```sh
cd ui
pnpm i || npm i
pnpm build || npm run build
```

Integrate `useSheetNavigation` and `SheetNavigationButtons` into a sheet component with a navigable list. Verify that:
- The up/down buttons appear and are disabled when no previous/next item exists.
- Pressing `↑`/`k` navigates to the previous item and `↓`/`j` navigates to the next.
- Tooltips display the correct keyboard shortcut icons and labels.

## Screenshots/Recordings

_Add before/after screenshots or clips of the navigation buttons and tooltips in action._

## Breaking changes

- [ ] Yes
- [x] No

## Related issues

_Link related issues here._

## Security considerations

None.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
@akshaydeo akshaydeo mentioned this pull request May 29, 2026
18 tasks
akshaydeo added a commit that referenced this pull request May 29, 2026
## Summary

This PR releases **core v1.5.14**, **framework v1.3.14**, **transports v1.5.6**, and bumps all dependent plugins to their respective `.14` patch versions. It delivers a broad set of new capabilities across MCP authentication, key rotation, OTel metrics, Bedrock/Anthropic compatibility, and UI improvements, alongside a number of targeted bug fixes and refactors.

## Changes

- **Direct API Key Header** — Providers can now receive an API key passed directly via a request header (#3817)
- **MCP Per-User Auth** — Introduced `MCPCredentialStore` abstraction, per-user MCP credential reconciliation, and a new per-user header auth type with lazy-auth submission flow (#3656, #3702, #3703, #3704, #3705)
- **MCP TLS Configuration** — Added configurable TLS (`insecureSkipVerify`, `caCertPem`) for HTTP/SSE MCP client connections (#3779, #3783)
- **MCP Sessions Management** — Filter, search, and pagination on the MCP sessions list API and table, plus a `can_reauth` identity gate (#3823, #3824, #3825)
- **Key Rotation** — Keys now rotate on 401/402/403 responses; returns `502 upstream_credentials_exhausted` when all keys are permanently exhausted. Added `triggered_rotation` to `KeyAttemptRecord` and tightened `bifrost_key_rotation_events_total` semantics (#3430, #3491)
- **OTel Metrics** — Added OTel spec-compatible metrics (backward compatible) with provider cache and semantic cache attributes in metrics export (#3865, #3816)
- **Opus 4.8 Support** — System message handling and general compatibility for Opus 4.8 (#3868, #3878)
- **Dimension Rankings** — New `GetDimensionRankings` API and dashboard tabs for team, customer, BU, and user rankings (#3766)
- **Model Pricing Attributes** — `additional_attributes` field on model pricing rows with management API and UI editor (#3829)
- **Prompt Cache Retention** — Added prompt cache retention parameter on responses requests (#3810)
- **Tool Call Execution UI** — Inline tool-call execution, stop streaming, bulk execute/submit, and a redesigned tool-call UI (#3837, #3843)
- **Sheet Navigation** — Prev/next keyboard navigation and URL state across virtual key, MCP client, and routing rule sheets (#3739, #3740, #3744, #3745)
- **Bedrock Tool Name Truncation** — Truncate Bedrock function/tool names to the provider length limit
- **Bedrock Guardrails** — Set guardrail config in Bedrock requests built from responses (#3862)
- **Anthropic Tool Use** — Default `tool_use` input to `{}` when arguments are absent (#3880)
- **Responses Streaming** — Fixed responses stream events (#3838)
- **Compat Flow** — Fixed missing parameter parsing on the compat flow (#3881)
- **Passthrough API Version** — Set a default API version in passthrough requests as a fallback (#3853)
- **Virtual Key Updates** — Avoid overriding optional fields during virtual key update (#3855)
- **User-Mode Flows** — Gate user-mode flows on caller `user_id`, skip temp token mint, and unify flow/credential kind filtering for pending flows (#3841, #3859)
- **Partial Tool Calls** — Handle partial tool call execution failures and return successful results (#3849)
- **URL Query Escaping** — Support escaped characters in URL query parameters (#3826)
- **MCP Auth Errors** — Inline banner and retry support for MCP auth-required errors (#3856)
- **Renamed Resolvers** — `staticHeadersResolver`/`serverOAuthResolver` renamed to `sharedHeadersResolver`/`sharedOAuthResolver` (#3840)
- **Starlark Nested Tool Calls** — Exposed `RunWithPluginPipeline` on `ClientManager` and routed Starlark nested tool calls through the canonical plugin gate (#3794)
- **Deferred-Fill OAuth Removed** — Removed deferred-fill user-mode OAuth flow support (#3839)
- **Go 1.26.3** — Upgraded toolchain to Go 1.26.3 (#3782)

## Type of change

- [x] Bug fix
- [x] Feature
- [x] Refactor
- [ ] Documentation
- [x] Chore/CI

## Affected areas

- [x] Core (Go)
- [x] Transports (HTTP)
- [x] Providers/Integrations
- [x] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

```sh
# Core/Transports
go version  # should report go1.26.3
go test ./...

# UI
cd ui
pnpm i || npm i
pnpm test || npm test
pnpm build || npm run build
```

- Validate MCP per-user auth by configuring a per-user header auth type and confirming credentials are stored and reconciled on virtual key and MCP client changes.
- Validate key rotation by triggering a 401/402/403 from an upstream provider and confirming rotation occurs; exhaust all keys and confirm a `502 upstream_credentials_exhausted` is returned.
- Validate OTel metrics output includes `provider_cache` and `semantic_cache` attributes.
- Validate Bedrock requests with tool names exceeding the provider limit are truncated correctly.
- Validate Opus 4.8 system message handling by sending a request with a system message to an Opus 4.8 endpoint.

## Breaking changes

- [x] Yes
- [ ] No

The deferred-fill user-mode OAuth flow has been removed (#3839). Any integrations relying on that flow must migrate to the new per-user credential store approach. The `staticHeadersResolver` and `serverOAuthResolver` identifiers have been renamed to `sharedHeadersResolver` and `sharedOAuthResolver` respectively (#3840); any direct references must be updated.

## Related issues

#3817, #3656, #3702, #3703, #3704, #3705, #3779, #3783, #3823, #3824, #3825, #3430, #3491, #3865, #3816, #3868, #3878, #3766, #3829, #3810, #3837, #3843, #3739, #3740, #3744, #3745, #3862, #3880, #3838, #3881, #3853, #3855, #3841, #3859, #3849, #3826, #3856, #3840, #3794, #3839, #3782, #3724, #3814, #3836, #3869, #3886

## Security considerations

- MCP per-user credentials are stored via the new `MCPCredentialStore` abstraction; ensure the backing store is appropriately access-controlled and that credential values are encrypted at rest.
- The direct API key header feature passes provider secrets via HTTP headers; ensure TLS is enforced on all ingress paths and that headers are not logged in plaintext.
- User-mode flows are now gated on `caller user_id` and temp token minting is skipped where appropriate, reducing the surface for privilege escalation.
- TLS configuration for MCP HTTP/SSE connections supports `insecureSkipVerify`; this should only be enabled in controlled environments.

## Checklist

- [x] I read `docs/contributing/README.md` and followed the guidelines
- [x] I added/updated tests where appropriate
- [x] I updated documentation where needed
- [x] I verified builds succeed (Go and UI)
- [x] I verified the CI pipeline passes locally if applicable
@akshaydeo akshaydeo mentioned this pull request May 29, 2026
akshaydeo added a commit that referenced this pull request May 29, 2026
## ✨ Features

- **Direct API Key Header** - Pass a provider API key directly via
request header (#3817)
- **MCP Per-User Authentication** - New per-user header auth type with
credential storage
  and lazy-auth submission flow (#3703, #3704, #3705)
- **MCP TLS Configuration** - Configurable TLS (insecureSkipVerify,
caCertPem) for HTTP/SSE
  MCP client connections (#3779, #3783)
- **MCP Sessions Management** - Filter, search, and pagination on the
MCP sessions list API
  and table, plus a can_reauth identity gate (#3823, #3824, #3825)
- **Tool Call Execution UI** - Inline tool-call execution, stop
streaming, bulk
  execute/submit, and a redesigned tool-call UI (#3837, #3843)
- **Dimension Rankings Dashboard** - New dashboard tabs for team,
customer, BU, and user
  rankings, backed by a GetDimensionRankings API (#3766)
- **Model Pricing Attributes** - additional_attributes on model pricing
rows with management
  API and UI editor (#3829)
- **Prompt Cache Retention** - Prompt cache retention parameter on
responses requests
  (#3810)
- **Opus 4.8 Support** - System message handling and compatibility for
Opus 4.8 (#3878,
  #3868)
  - **Key Rotation** - Rotate keys on 401/402/403 and return 502
upstream_credentials_exhausted when all keys are permanently dead
(#3491)
- **OTel Metrics** - OTel spec compatible metrics plus provider and
semantic cache
  attributes in metrics export (#3865, #3816)
- **Sheet Navigation** - Prev/next keyboard navigation and URL state
across virtual key, MCP
  client, and routing rule sheets (#3739, #3740, #3744, #3745)
  - **Go 1.26.3** - Upgraded toolchain to Go 1.26.3 (#3782)

  ## 🐞 Fixed

- **Bedrock Tool Names** - Truncate Bedrock function/tool names to the
provider length limit
- **Bedrock Guardrails** - Set guardrail config in Bedrock request built
from responses
  (#3862)
- **Anthropic Tool Use** - Default Anthropic tool_use input to {} when
arguments are absent
  (#3880)
  - **Responses Streaming** - Fixed responses stream events (#3838)
- **Compat Flow** - Fixed missing parameter parsing on the compat flow
(#3881)
- **Passthrough API Version** - Set a default API version in passthrough
requests as a
  fallback (#3853)
- **Virtual Key Updates** - Avoid overriding optional fields during
virtual key update
  (#3855)
- **User-Mode Flows** - Gate user-mode flows on caller user_id, skip
temp token mint, and
  unify flow/credential kind filtering for pending flows (#3841, #3859)
- **Partial Tool Calls** - Handle partial tool call execution failures
and return successful
  results (#3849)
- **URL Query Escaping** - Support escaped characters in URL query
parameters (#3826)
- **MCP Auth Errors** - Inline banner and retry support for MCP
auth-required errors (#3856)
- **JSON Editor Height** - Cap JSON editor max height at 400px in
message views (#3842)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants