Skip to content

feat(ui): add complexity router config UI and CEL support#3715

Merged
akshaydeo merged 3 commits into
devfrom
05-24-feat_ui_add_complexity_router_config_ui_and_cel_support
Jun 10, 2026
Merged

feat(ui): add complexity router config UI and CEL support#3715
akshaydeo merged 3 commits into
devfrom
05-24-feat_ui_add_complexity_router_config_ui_and_cel_support

Conversation

@Madhuvod

@Madhuvod Madhuvod commented May 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Briefly explain the purpose of this PR and the problem it solves.

Changes

  • What was changed and why
  • Any notable design decisions or trade-offs

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

Describe the steps to validate this change. Include commands and expected outcomes.

# Core/Transports
go version
go test ./...

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

If adding new configs or environment variables, document them here.

Screenshots/Recordings

If UI changes, add before/after screenshots or short clips.

Breaking changes

  • Yes
  • No

If yes, describe impact and migration instructions.

Related issues

Link related issues and discussions. Example: Closes #123

Security considerations

Note any security implications (auth, secrets, PII, sandboxing, etc.).

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

Summary by CodeRabbit

Release Notes

  • New Features
    • Added new Complexity Router management page for configuring request complexity classification into four customizable tiers
    • Users can set boundary thresholds and define keyword lists for each tier level
    • Includes options to save changes, discard edits, and restore factory defaults
    • Accessible via the sidebar under the Routing Rules section with role-based access control

@coderabbitai

coderabbitai Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a Complexity Router feature: types and defaults, governance RTK Query endpoints and cache tag, a validated react-hook-form page with TierSpectrumBar and keyword editors, a routing-rule field, RBAC-guarded route, and a sidebar link.

Changes

Complexity Router Configuration

Layer / File(s) Summary
Type definitions and configuration constants
ui/lib/types/complexityRouter.ts
TierBoundaries, EditableKeywordConfig, and AnalyzerConfig interfaces define the configuration shape. COMPLEXITY_TIER_VALUES lists tier names, KEYWORD_LIST_DEFINITIONS provides metadata for each keyword list, and DEFAULT_TIER_BOUNDARIES supplies initial numeric thresholds.
RTK Query endpoints and caching
ui/lib/store/apis/baseApi.ts, ui/lib/store/apis/governanceApi.ts
Registers ComplexityAnalyzerConfig in baseApi.tagTypes and adds governance endpoints (GET /governance/complexity-analyzer-config, PUT update, POST reset) with generated hooks and cache invalidation.
Page palette and Zod schema
ui/app/workspace/complexity-router/page.tsx
Page imports UI/form utilities and defines palette/metadata; Zod schema enforces unit-range and ordering for boundaries and non-empty keyword lists; default form values provided.
Input helpers and normalization
ui/app/workspace/complexity-router/page.tsx
Numeric clamping, sanitization utilities, and keyboard/paste/drop handlers prevent negative inputs and normalize boundary typing.
TierSpectrumBar visualization
ui/app/workspace/complexity-router/page.tsx
TierSpectrumBar computes segment widths and divider/axis positions from boundary values and renders the four-tier spectrum.
Page data, form wiring, and UI
ui/app/workspace/complexity-router/page.tsx
Wires useGet/useUpdate/useReset hooks, initializes react-hook-form with Zod resolver and defaults, handles loading/error states, renders spectrum, boundary inputs, keyword TagInputs, and inline errors.
Keyword editors and submit errors
ui/app/workspace/complexity-router/page.tsx
Renders keyword lists using Controller + TagInput, enforces non-empty lists per-key, and surfaces submit/reset error banners.
Actions footer and restore dialog
ui/app/workspace/complexity-router/page.tsx
Sticky footer implements Restore defaults (with AlertDialog confirmation), Discard changes, and Save changes buttons with disabled/spinner states.
Route access control, routing field integration, and sidebar
ui/app/workspace/complexity-router/layout.tsx, ui/lib/config/celFieldsRouting.ts, ui/components/sidebar.tsx
Adds RBAC-guarded TanStack route /workspace/complexity-router rendering ComplexityRouterPage or NoPermissionView. Adds complexity_tier select field to routing fields with options from COMPLEXITY_TIER_VALUES. Inserts "Complexity Router" sidebar item under Models gated by hasRoutingRulesAccess.
sequenceDiagram
  participant User
  participant ComplexityRouterPage
  participant RTKQuery
  participant Backend

  User->>ComplexityRouterPage: Load page
  ComplexityRouterPage->>RTKQuery: useGetComplexityAnalyzerConfigQuery()
  RTKQuery->>Backend: GET /governance/complexity-analyzer-config
  Backend-->>RTKQuery: AnalyzerConfig { tier_boundaries, keywords }
  RTKQuery-->>ComplexityRouterPage: Config data
  ComplexityRouterPage->>ComplexityRouterPage: Initialize form with fetched config
  ComplexityRouterPage->>User: Render TierSpectrumBar + inputs + keyword lists

  User->>ComplexityRouterPage: Edit inputs
  ComplexityRouterPage->>ComplexityRouterPage: Validate with Zod

  User->>ComplexityRouterPage: Save
  ComplexityRouterPage->>RTKQuery: useUpdateComplexityAnalyzerConfigMutation()
  RTKQuery->>Backend: PUT /governance/complexity-analyzer-config
  Backend-->>RTKQuery: Updated config
  RTKQuery-->>ComplexityRouterPage: Success + invalidate ComplexityAnalyzerConfig

  User->>ComplexityRouterPage: Restore defaults
  ComplexityRouterPage->>User: Show AlertDialog
  User->>ComplexityRouterPage: Confirm
  ComplexityRouterPage->>RTKQuery: useResetComplexityAnalyzerConfigMutation()
  RTKQuery->>Backend: POST /governance/complexity-analyzer-config/reset
  Backend-->>RTKQuery: Factory defaults
  RTKQuery-->>ComplexityRouterPage: Success + invalidate ComplexityAnalyzerConfig
  ComplexityRouterPage->>ComplexityRouterPage: Reset form to defaults
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • danpiths

Poem

🐰 I hop through tiers of red and green,
Inputs neat and spectra clean,
Tags that sing, defaults to reclaim,
Save or reset — the rules reclaim,
A little rabbit cheers the change.

🚥 Pre-merge checks | ✅ 1 | ❌ 4

❌ Failed checks (4 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description consists entirely of the template with all sections empty, providing no specific details about implementation, design decisions, test status, or changes made. Fill in all template sections with concrete information about what was changed, why, how to test the changes, and any screenshots or design decisions made.
Linked Issues check ⚠️ Warning The linked issue #123 concerns File API support for providers like OpenAI/Anthropic for fine-tuning and RAG workflows. The PR changes add complexity router configuration UI and CEL support, which are completely unrelated to file API implementation. Either link the correct issues related to complexity router configuration UI, or ensure the PR code changes address the File API support requirements from issue #123.
Out of Scope Changes check ⚠️ Warning The PR introduces complexity router configuration UI, CEL field routing, and analyzer config endpoints. However, the only linked issue #123 requires File API support for providers. All changes appear out of scope relative to the linked issue. Link issues related to complexity router features, or review whether this PR should be associated with different issues that match its actual implementation scope.
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 (1 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'feat(ui): add complexity router config UI and CEL support' directly and clearly summarizes the main changes: adding UI for complexity router configuration and CEL (Common Expression Language) support.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support

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

@greptile-apps

greptile-apps Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 5/5

Safe to merge — purely additive UI and API wiring with no changes to existing logic.

All mutations are guarded by a write RBAC check both at the button-disable level and inside the submit/reset handlers. Form validation, error states, loading states, and the spectrum bar preview are all handled correctly. The RTK Query tag registration and invalidation are consistent with the rest of the governance API slice. No pre-existing data or routes are modified.

No files require special attention.

Important Files Changed

Filename Overview
ui/app/workspace/complexity-router/page.tsx New page for configuring complexity analyzer tiers and keyword lists. RBAC write-gating, form validation, error states, and loading states are all handled correctly.
ui/app/workspace/complexity-router/layout.tsx Route definition with View RBAC guard. Write permission is enforced inside page.tsx; pattern is consistent with other governance pages.
ui/lib/config/celFieldsRouting.ts Adds complexity_tier as a select field in the CEL rule builder; label casing and operator set are consistent with existing fields.
ui/lib/store/apis/governanceApi.ts Adds three RTK Query endpoints (GET, PUT, POST reset) for complexity analyzer config with correct tag invalidation.
ui/lib/types/complexityRouter.ts Type definitions and constants for complexity router. JSDoc comment references a stale API path but was flagged in a previous thread.
ui/lib/store/apis/baseApi.ts Registers the ComplexityAnalyzerConfig tag for RTK Query cache management.
ui/components/sidebar.tsx Adds Complexity Router nav entry under Routing Rules section, reusing the same hasRoutingRulesAccess guard.

Reviews (20): Last reviewed commit: "feat(ui): add complexity router config U..." | Re-trigger Greptile

Comment thread ui/app/workspace/complexity-router/page.tsx
Comment thread ui/lib/types/complexityRouter.ts

@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/app/workspace/complexity-router/page.tsx`:
- Line 389: The current data-testid uses display labels (e.g.,
data-testid={`${label}-input`}) and several interactive controls are missing
test IDs; update all new interactive elements in this component to use the
convention-based stable selectors "entity-element-qualifier" (e.g.,
"complexity-filter-input" or "complexity-sort-button") instead of interpolated
display text, replace usages of data-testid={`${label}-input`} (and similar
constructs) with explicit, hard-coded test ids derived from the entity name and
element role, and add matching data-testid attributes to every interactive
control rendered in this file (inputs, buttons, selects, toggles) so E2E tests
can reliably target them; use the variable name 'label' only for display, not
for test ids, and ensure each new control has a unique id/testid following the
convention.

In `@ui/lib/store/apis/governanceApi.ts`:
- Around line 811-826: Replace the tag-based cache invalidation for
updateComplexityAnalyzerConfig and resetComplexityAnalyzerConfig with optimistic
cache updates using onQueryStarted: in both mutations
(updateComplexityAnalyzerConfig and resetComplexityAnalyzerConfig) add an
onQueryStarted handler that awaits the mutation, then call
governanceApi.util.updateQueryData for the getComplexityAnalyzerConfig cache to
apply the returned AnalyzerConfig (or patch/reset values) and roll back on
error; reference governanceApi.util.updateQueryData and
getComplexityAnalyzerConfig to locate the target cache entry and use the
mutation response to update it instead of relying on invalidatesTags:
["ComplexityAnalyzerConfig"].

In `@ui/lib/types/complexityRouter.ts`:
- Around line 1-4: Update the header docblock in
ui/lib/types/complexityRouter.ts to reference the correct API path used by this
feature: replace "/api/governance/complexity" with
"/governance/complexity-analyzer-config" so the Complexity Router type
definitions mirror the actual contract; edit the top-of-file comment that
currently says "Mirrors the AnalyzerConfig shape exchanged with
/api/governance/complexity" to use the correct endpoint string.
🪄 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: 24adb8df-56e2-4a07-90a5-36b9b3d19b73

📥 Commits

Reviewing files that changed from the base of the PR and between 0dbc48b and d56b305.

📒 Files selected for processing (7)
  • ui/app/workspace/complexity-router/layout.tsx
  • ui/app/workspace/complexity-router/page.tsx
  • ui/components/sidebar.tsx
  • ui/lib/config/celFieldsRouting.ts
  • ui/lib/store/apis/baseApi.ts
  • ui/lib/store/apis/governanceApi.ts
  • ui/lib/types/complexityRouter.ts

Comment thread ui/app/workspace/complexity-router/page.tsx Outdated
Comment thread ui/lib/store/apis/governanceApi.ts
Comment thread ui/lib/types/complexityRouter.ts
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 0dbc48b to 88e2f0e Compare May 24, 2026 16:36
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from d56b305 to 5cc4920 Compare May 24, 2026 16:36

@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: 1

♻️ Duplicate comments (1)
ui/lib/store/apis/governanceApi.ts (1)

811-826: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Use onQueryStarted + updateQueryData for optimistic cache updates

The mutations use invalidatesTags, but other governance mutations in this file use onQueryStarted + governanceApi.util.updateQueryData to avoid stale UI in clustered deployments.

Proposed refactor
 		updateComplexityAnalyzerConfig: builder.mutation<AnalyzerConfig, AnalyzerConfig>({
 			query: (data) => ({
 				url: "/governance/complexity-analyzer-config",
 				method: "PUT",
 				body: data,
 			}),
-			invalidatesTags: ["ComplexityAnalyzerConfig"],
+			async onQueryStarted(_arg, { dispatch, queryFulfilled }) {
+				try {
+					const { data } = await queryFulfilled;
+					dispatch(
+						governanceApi.util.updateQueryData("getComplexityAnalyzerConfig", undefined, (draft) => {
+							Object.assign(draft, data);
+						}),
+					);
+				} catch {
+					// Mutation failed
+				}
+			},
 		}),
 
 		resetComplexityAnalyzerConfig: builder.mutation<AnalyzerConfig, void>({
 			query: () => ({
 				url: "/governance/complexity-analyzer-config/reset",
 				method: "POST",
 			}),
-			invalidatesTags: ["ComplexityAnalyzerConfig"],
+			async onQueryStarted(_arg, { dispatch, queryFulfilled }) {
+				try {
+					const { data } = await queryFulfilled;
+					dispatch(
+						governanceApi.util.updateQueryData("getComplexityAnalyzerConfig", undefined, (draft) => {
+							Object.assign(draft, data);
+						}),
+					);
+				} catch {
+					// Mutation failed
+				}
+			},
 		}),

Based on learnings: In ui/lib/store/apis/, optimistically patch the cache with onQueryStarted + updateQueryData for mutations instead of using invalidatesTags to avoid cross-server stale UI in clustered environments.

🤖 Prompt for 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.

In `@ui/lib/store/apis/governanceApi.ts` around lines 811 - 826, Replace the
current invalidatesTags-based approach for updateComplexityAnalyzerConfig and
resetComplexityAnalyzerConfig with optimistic cache updates by adding an
onQueryStarted handler that uses governanceApi.util.updateQueryData to patch the
cached "ComplexityAnalyzerConfig" query; in onQueryStarted, apply the incoming
change to the cached AnalyzerConfig immediately, rollback on error, and finalize
on queryFulfilled to ensure UI stays consistent across clustered deployments.
🧹 Nitpick comments (1)
ui/lib/config/celFieldsRouting.ts (1)

115-124: ⚡ Quick win

Consider adding a description field for user clarity.

The complexity_tier field definition could benefit from a description property (similar to request_type, tokens_used, etc.) to help users understand when and how to use this filter in routing rules.

💡 Suggested addition
 {
   name: "complexity_tier",
   label: "Complexity Tier",
   placeholder: "Select complexity tier",
   inputType: "select",
   valueEditorType: "select",
   operators: ["=", "!=", "in", "notIn"],
   defaultOperator: "=",
   values: COMPLEXITY_TIER_VALUES.map((tier) => ({ name: tier, label: tier })),
+  description: "Route requests based on their computed complexity tier",
 },
🤖 Prompt for 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.

In `@ui/lib/config/celFieldsRouting.ts` around lines 115 - 124, Add a descriptive
"description" property to the field object whose name is "complexity_tier" so
users understand the purpose and usage of this filter in routing rules; mirror
the style and phrasing used by similar fields like "request_type" or
"tokens_used" (e.g., brief explanation of what "complexity tier" represents and
when to use it) and place it alongside existing keys (name, label, placeholder,
inputType, valueEditorType, operators, defaultOperator, values) in the same
object.
🤖 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/app/workspace/complexity-router/page.tsx`:
- Around line 264-269: The effect unconditionally calls reset(data) on every
background refetch which can wipe user edits; change it to only reset when there
are no in-progress edits by using the form's dirty flag (e.g. formState.isDirty
or isDirty from useForm). Update the effect that currently references
useEffect/data/reset/setSubmitError so it checks if (data && !formState.isDirty)
{ reset(data); setSubmitError(null); } and add formState.isDirty (or isDirty) to
the dependency array to avoid losing user-entered values on refetch.

---

Duplicate comments:
In `@ui/lib/store/apis/governanceApi.ts`:
- Around line 811-826: Replace the current invalidatesTags-based approach for
updateComplexityAnalyzerConfig and resetComplexityAnalyzerConfig with optimistic
cache updates by adding an onQueryStarted handler that uses
governanceApi.util.updateQueryData to patch the cached
"ComplexityAnalyzerConfig" query; in onQueryStarted, apply the incoming change
to the cached AnalyzerConfig immediately, rollback on error, and finalize on
queryFulfilled to ensure UI stays consistent across clustered deployments.

---

Nitpick comments:
In `@ui/lib/config/celFieldsRouting.ts`:
- Around line 115-124: Add a descriptive "description" property to the field
object whose name is "complexity_tier" so users understand the purpose and usage
of this filter in routing rules; mirror the style and phrasing used by similar
fields like "request_type" or "tokens_used" (e.g., brief explanation of what
"complexity tier" represents and when to use it) and place it alongside existing
keys (name, label, placeholder, inputType, valueEditorType, operators,
defaultOperator, values) in the same object.
🪄 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: ac53c6d2-40de-47ac-9b8c-e95cf5987e37

📥 Commits

Reviewing files that changed from the base of the PR and between d56b305 and 5cc4920.

📒 Files selected for processing (7)
  • ui/app/workspace/complexity-router/layout.tsx
  • ui/app/workspace/complexity-router/page.tsx
  • ui/components/sidebar.tsx
  • ui/lib/config/celFieldsRouting.ts
  • ui/lib/store/apis/baseApi.ts
  • ui/lib/store/apis/governanceApi.ts
  • ui/lib/types/complexityRouter.ts
✅ Files skipped from review due to trivial changes (1)
  • ui/lib/store/apis/baseApi.ts

Comment thread ui/app/workspace/complexity-router/page.tsx Outdated
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 5cc4920 to 3a08ff0 Compare May 25, 2026 08:38
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch 2 times, most recently from 34d7901 to 92c82f1 Compare May 25, 2026 08:40
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch 2 times, most recently from 3d09d45 to b66e714 Compare May 25, 2026 09:18
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 92c82f1 to b2756f5 Compare May 25, 2026 09:18

@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.

♻️ Duplicate comments (1)
ui/app/workspace/complexity-router/page.tsx (1)

264-269: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Prevent unintended form data loss on background refetch.

This effect resets form state every time query data changes, which can wipe in-progress edits if the query is invalidated/refetched while the user is editing.

Suggested fix
 useEffect(() => {
-	if (data) {
+	if (data && !isDirty) {
 		reset(data);
 		setSubmitError(null);
 	}
-}, [data, reset]);
+}, [data, isDirty, reset]);

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7c53e8a6-c6dc-47ad-ac5a-22b5b5507c31

📥 Commits

Reviewing files that changed from the base of the PR and between 3a08ff0 and b66e714.

📒 Files selected for processing (7)
  • ui/app/workspace/complexity-router/layout.tsx
  • ui/app/workspace/complexity-router/page.tsx
  • ui/components/sidebar.tsx
  • ui/lib/config/celFieldsRouting.ts
  • ui/lib/store/apis/baseApi.ts
  • ui/lib/store/apis/governanceApi.ts
  • ui/lib/types/complexityRouter.ts
✅ Files skipped from review due to trivial changes (1)
  • ui/lib/store/apis/baseApi.ts

@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from b2756f5 to d7bff03 Compare May 27, 2026 08:28
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch 3 times, most recently from 5b4a4bd to dfd376e Compare May 27, 2026 12:15
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 5f16493 to bad96f1 Compare May 27, 2026 12:15
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from dfd376e to 023fe4b Compare May 27, 2026 12:53
coderabbitai[bot]
coderabbitai Bot previously approved these changes May 27, 2026
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from bad96f1 to 444fe9a Compare May 29, 2026 19:02
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 023fe4b to 24b4cdf Compare May 29, 2026 19:02
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 444fe9a to deb50b7 Compare June 1, 2026 08:46
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 9ffc142 to 0bae999 Compare June 1, 2026 10:29
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 00d7bee to 7e06261 Compare June 1, 2026 11:54
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 0bae999 to 3b8e6cd Compare June 1, 2026 11:54
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 7e06261 to aa8c316 Compare June 8, 2026 12:21
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 3b8e6cd to 89303f9 Compare June 8, 2026 12:21
@akshaydeo akshaydeo force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from aa8c316 to 8377b5a Compare June 9, 2026 05:38
@akshaydeo akshaydeo force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 89303f9 to 1d1c7e7 Compare June 9, 2026 05:39
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 1d1c7e7 to a149544 Compare June 9, 2026 09:09
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 8377b5a to 87b2afc Compare June 9, 2026 09:09
Comment thread ui/app/workspace/complexity-router/page.tsx
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from 87b2afc to feb5264 Compare June 9, 2026 11:36
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch 2 times, most recently from 887b9fc to 0f24388 Compare June 9, 2026 12:08
@Madhuvod Madhuvod force-pushed the 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes branch from feb5264 to 4d0a27b Compare June 10, 2026 12:56
@Madhuvod Madhuvod force-pushed the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch from 0f24388 to c1f0650 Compare June 10, 2026 12:56

akshaydeo commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Merge activity

  • Jun 10, 1:30 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Jun 10, 1:35 PM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo akshaydeo changed the base branch from 05-24-complexity_router_add_complexity_analyzer_config_db_and_api_changes to graphite-base/3715 June 10, 2026 13:32
@akshaydeo akshaydeo changed the base branch from graphite-base/3715 to dev June 10, 2026 13:35
@akshaydeo akshaydeo dismissed coderabbitai[bot]’s stale review June 10, 2026 13:35

The base branch was changed.

@akshaydeo akshaydeo merged commit 688a9f7 into dev Jun 10, 2026
12 checks passed
@akshaydeo akshaydeo deleted the 05-24-feat_ui_add_complexity_router_config_ui_and_cel_support branch June 10, 2026 13:35
intarweb-sync-bot Bot pushed a commit to intarweb/bifrost that referenced this pull request Jun 11, 2026
## Summary

Briefly explain the purpose of this PR and the problem it solves.

## Changes

- What was changed and why
- Any notable design decisions or trade-offs

## 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

Describe the steps to validate this change. Include commands and expected outcomes.

```sh
# Core/Transports
go version
go test ./...

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

If adding new configs or environment variables, document them here.

## Screenshots/Recordings

If UI changes, add before/after screenshots or short clips.

## Breaking changes

- [ ] Yes
- [ ] No

If yes, describe impact and migration instructions.

## Related issues

Link related issues and discussions. Example: Closes maximhq#123

## Security considerations

Note any security implications (auth, secrets, PII, sandboxing, etc.).

## 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




<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

## Release Notes

* **New Features**
  * Added new Complexity Router management page for configuring request complexity classification into four customizable tiers
  * Users can set boundary thresholds and define keyword lists for each tier level
  * Includes options to save changes, discard edits, and restore factory defaults
  * Accessible via the sidebar under the Routing Rules section with role-based access control

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
akshaydeo pushed a commit that referenced this pull request Jun 12, 2026
## Summary

Briefly explain the purpose of this PR and the problem it solves.

## Changes

- What was changed and why
- Any notable design decisions or trade-offs

## 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

Describe the steps to validate this change. Include commands and expected outcomes.

```sh
# Core/Transports
go version
go test ./...

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

If adding new configs or environment variables, document them here.

## Screenshots/Recordings

If UI changes, add before/after screenshots or short clips.

## Breaking changes

- [ ] Yes
- [ ] No

If yes, describe impact and migration instructions.

## Related issues

Link related issues and discussions. Example: Closes #123

## Security considerations

Note any security implications (auth, secrets, PII, sandboxing, etc.).

## 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




<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

## Release Notes

* **New Features**
  * Added new Complexity Router management page for configuring request complexity classification into four customizable tiers
  * Users can set boundary thresholds and define keyword lists for each tier level
  * Includes options to save changes, discard edits, and restore factory defaults
  * Accessible via the sidebar under the Routing Rules section with role-based access control

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.

Files API Support

2 participants