Skip to content

[OPIK-5622] [FE] feat: revamp agent configuration version UI and edit flow#6219

Merged
JetoPistola merged 9 commits intomainfrom
danield/OPIK-5622-agent-config-version-ui-improvements
Apr 14, 2026
Merged

[OPIK-5622] [FE] feat: revamp agent configuration version UI and edit flow#6219
JetoPistola merged 9 commits intomainfrom
danield/OPIK-5622-agent-config-version-ui-improvements

Conversation

@JetoPistola
Copy link
Copy Markdown
Contributor

@JetoPistola JetoPistola commented Apr 13, 2026

Details

Screen.Recording.2026-04-13.at.18.21.01.mov
image

Some styling updates follow UX review:

Screen.Recording.2026-04-14.at.9.44.40.mov

Overhaul the agent-configuration version UI and edit flow for the 2.0 release
(OPIK-5622) — aligning field rendering, edit/diff flow, and the sandbox
Configuration tab with the Figma spec.

Field rendering

  • Outer FieldSection (type icon + name + info tooltip) sits on the surface with no card chrome.
  • Bordered CollapsibleBlock units hold the values underneath.
  • Long scalar values collapse by default; single-line values stay expanded.
  • Non-collapsible scalar editors render bare (no surrounding card) in edit mode.
  • Prompt fields render each chat message (System, Prompt, …) as its own labeled CollapsibleBlock via new BlueprintValuePromptCompact + BlueprintChatMessages — the agent-configuration surfaces no longer reuse the playground chrome.

Edit side panel

  • Replaces the inline "Edit configuration" page with an 872px side panel (Sheet).
  • 48px sticky header: title + gray From v{N} tag (pencil icon) + close.
  • "Add version notes" textarea lives above "Edit fields".
  • Inline "Edit fields" ↔ "Compare v{N} → current changes" toggle using Show diff (git-compare) / Back to edit (undo-2) buttons.
  • Sticky Cancel / "Save as new version" bottom bar.
  • "Expand all" / "Collapse all" icon button whose broadcast fans out to prompt chat messages.

Agent sandbox — Configuration tab

  • Adopts the same field components as the config page.
  • Edited indicator (red dot) replaces the orange "Unsaved changes" tag.
  • Explicit Save configuration action with save + arrow-up-right icons.
  • Success toast reads "You've created {versionName} of agent configuration…" and surfaces a "Manage agent configuration" link that deep-links back to the config page using the newly created blueprint's version name.

Read-only detail view

  • "Show more" inline truncation for long version notes.
  • Gray polished icon buttons on "Deploy to…" (circle-fading-arrow-up) and "Edit configuration" (pencil).
  • scrollbar-gutter: stable so fold/unfold doesn't shift page layout.
  • Descriptions always shown in the diff table (regardless of "show diff only").

Change checklist

  • User facing
  • Documentation update

Issues

  • OPIK-5622

AI-WATERMARK

AI-WATERMARK: yes

  • Tools: Claude Code
  • Model(s): Claude Opus 4.6 (1M context)
  • Scope: full implementation
  • Human verification: code review + manual testing

Testing

  • npm run typecheck
  • npm run lint
  • Manual testing on the agent configuration page + agent sandbox across:
    • Read-only detail view (long descriptions, Show more, Expand all, scroll behavior)
    • Edit side panel — Edit fields + Diff modes, Save as new version, Back to edit, Expand all propagating to prompt chat messages
    • Sandbox Configuration tab — Edited indicator, Save configuration, success toast with navigation link

Documentation

N/A — no public-facing SDK / API / docs changes.

JetoPistola and others added 3 commits April 13, 2026 13:43
… flow

Introduce a shared CollapsibleField component (with expand-all/collapse-all
controller) used across the agent configuration detail view, the new side-panel
edit flow, and the agent sandbox. Single-line values render expanded; multi-line
values collapse by default.

On the configuration page, editing a version now opens an 872px side panel with
a sticky header, notes textarea, collapsible fields, and a sticky action bar.
The diff view is toggled in-place within the same panel (Show diff / Back to
edit) and "Save as new version" works from either view. Version notes truncate
with Show more in the read-only detail view.

In the sandbox, the Configuration tab adopts the same field component, shows an
"Unsaved changes" tag, and exposes an explicit "Save configuration" action
which surfaces a confirmation toast linking back to the Agent configuration
page. Obsolete SaveVersionDialog and unused BlueprintDiffDialog wrapper removed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Restructure field rendering to match the Figma hierarchy: the outer
field header (type icon + name + info) now sits without card chrome on
the surface, while bordered CollapsibleBlocks act as the collapsible
units underneath. Chat prompts render each message (System, Prompt,
etc.) as its own labeled CollapsibleBlock via a new
BlueprintValuePromptCompact + BlueprintChatMessages component pair, so
agent-configuration views no longer reuse the playground prompt chrome.

Apply remaining UI feedback: gray icons on Deploy to / Edit
configuration, "Deploy to..." copy with circle-fading-arrow-up icon,
in-place Show diff / Back to edit toggle with git-compare and undo-2
icons, "Compare {name} -> current changes" header, "Add version notes"
textarea above the Edit fields row, 48px panel header, save
configuration button with save + arrow-up-right icons, "Edited"
indicator with red dot replacing the orange tag, save toast wired to
the new blueprint id so it reads "You have created {versionName}",
focus-within highlight on collapsible blocks, scrollbar-gutter stable
on the configuration page, descriptions always shown in the diff
table, bare scalar editors (no card) for non collapsible fields in
edit mode, and a broadcast-driven Expand all / Collapse all that also
fans out to prompt chat messages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nt-config-version-ui-improvements

# Conflicts:
#	apps/opik-frontend/src/v2/pages/AgentConfigurationPage/AgentConfigurationTab/AgentConfigurationTab.tsx
@JetoPistola JetoPistola added the test-environment Deploy Opik adhoc environment label Apr 13, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔄 Test environment deployment process has started

Phase 1: Deploying base version 1.11.3-4895 (from main branch) if environment doesn't exist
Phase 2: Building new images from PR branch danield/OPIK-5622-agent-config-version-ui-improvements
Phase 3: Will deploy newly built version after build completes

You can monitor the progress here.

Comment on lines +82 to +93
const descriptionIsLong = description.length > DESCRIPTION_TRUNCATE_LENGTH;

const collapsibleKeys = useMemo(
() => collectMultiLineKeys(agentConfig?.values ?? []),
[agentConfig],
);
const hasExpandableFields = useMemo(
() => hasAnyExpandableField(agentConfig?.values ?? []),
[agentConfig],
);
const collapseController = useFieldsCollapse({ collapsibleKeys });

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.

Since useFieldsCollapse({ collapsibleKeys }) only seeds expandedKeys/broadcast once, should we reset the collapseController (or its expandedKeys/broadcast) when collapsibleKeys changes so expanded sections and allExpanded don’t carry over across AgentConfigurationDetailView versions?

Finding type: Logical Bugs | Severity: 🟢 Low


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages/AgentConfigurationPage/AgentConfigurationTab/AgentConfigurationDetailView.tsx
around lines 82-97 (the `collapsibleKeys`/`hasExpandableFields` useMemo and
`collapseController = useFieldsCollapse({ collapsibleKeys })` logic), the collapse
controller is stateful and isn’t reset when `agentConfig` changes. Update the
implementation so that when `collapsibleKeys` changes (i.e., switching versions), the
controller’s `expandedKeys` and the expand-all `broadcast`/`allExpanded` state are
reinitialized from the new keys (e.g., by making `useFieldsCollapse` watch
`collapsibleKeys` and reset its internal state, or by forcing a remount/key change of
the controller based on the current `agentConfig`/`collapsibleKeys`). Verify that
expanded sections do not carry over between versions and that the expand-all toggle
reflects only the current version’s fields.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — the detail view receives a new selectedItem when switching versions, which causes agentConfig to change and collapsibleKeys to recompute via useMemo. The useFieldsCollapse hook starts with an empty expandedKeys set, so state doesn't carry over in practice. If a future refactor caches the controller across versions, this would need revisiting.

🤖 Reply posted via /address-github-pr-comments

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.

Got it — thanks for the clarification. I’ll save this to memory once the PR is merged.

Comment on lines +57 to +58
const title = useMemo(() => `New agent configuration`, []);

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.

title is wrapped in useMemo even though it’s a hard-coded string literal—should we drop useMemo and use const title = "New agent configuration" instead?

Finding type: AI Coding Guidelines | Severity: 🟢 Low


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages-shared/agent-configuration/AgentConfigurationEditPanel.tsx
around lines 57-58, the `title` value is a hard-coded string but is wrapped in
`useMemo`, which violates the guideline that memoization should be reserved for complex
computations. Remove the `useMemo` usage and replace it with a plain constant `const
title = "New agent configuration";`. Also update the import to drop `useMemo` from the
React import if it becomes unused.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 65d68e2 — removed useMemo wrapper, now a plain const.

🤖 Reply posted via /address-github-pr-comments

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.

Commit 65d68e2 addressed this comment by removing the unnecessary useMemo and replacing it with a plain const title = "New agent configuration". The React import was also cleaned up to drop useMemo now that it is unused.

Comment on lines +61 to +66
const allExpanded = useMemo(() => {
if (broadcast.action === "expand") return true;
if (broadcast.action === "collapse") return false;
if (collapsibleKeys.length === 0) return false;
return collapsibleKeys.every((k) => expandedKeys.has(k));
}, [broadcast.action, collapsibleKeys, expandedKeys]);
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.

Since allExpanded short-circuits to true when broadcast.action === "expand" but toggle never updates broadcast, collapsing one field can leave broadcast.action stuck and make the UI think everything is expanded — should we clear broadcast.action when toggling individual keys or fall back to checking expandedKeys instead?

Finding type: Design extensible API interfaces | Severity: 🟠 Medium


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages-shared/agent-configuration/fields/useFieldsCollapse.ts
around lines 61-66 and the `toggle` logic around lines 39-49, fix the stale
`broadcast.action` behavior that makes `allExpanded` return true/false incorrectly.
Either update `toggle` to reset `broadcast.action` (e.g., set it to null and increment
version) whenever an individual key is toggled, or refactor `allExpanded` to not
short-circuit on `broadcast.action` and instead always derive the value from
`expandedKeys` (e.g., compare every `collapsibleKeys` entry). Ensure that after a user
collapses one field, `allExpanded` immediately reflects the real expanded state and
header/button UI stays consistent.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 65d68e2toggle() now resets broadcast.action to null so allExpanded immediately reflects the real expanded state after individual toggles.

🤖 Reply posted via /address-github-pr-comments

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.

Thanks for the update — that makes sense. I’ll save this to memory once the PR is merged.

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.

Commit 65d68e2 addressed this comment by resetting broadcast.action to null (and bumping the version) within toggle, ensuring allExpanded no longer short-circuits on a stale broadcast when collapsing individual keys.

@CometActions
Copy link
Copy Markdown
Collaborator

Test environment is now available!

To configure additional Environment variables for your environment, run [Deploy Opik AdHoc Environment workflow] (https://github.com/comet-ml/comet-deployment/actions/workflows/deploy_opik_adhoc_env.yaml)

Access Information

The deployment has completed successfully and the version has been verified.

@CometActions
Copy link
Copy Markdown
Collaborator

🌙 Nightly cleanup: The test environment for this PR (pr-6219) has been cleaned up to free cluster resources. PVCs are preserved — re-deploy to restore the environment.

@CometActions CometActions removed the test-environment Deploy Opik adhoc environment label Apr 14, 2026
…ting

- Panel header + "Edit fields" title: comet-body-accented (16px) instead of 14px
- Expand/collapse icon inherits button text color (no longer looks disabled)
- Detail view: override text-foreground on expand/collapse wrapper
- Editable prompts: white card background, borderless auto-sizing textarea
- Spacing: 1rem between textarea and Edit fields heading

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JetoPistola and others added 2 commits April 14, 2026 11:37
…nt-config-version-ui-improvements

# Conflicts:
#	apps/opik-frontend/src/v2/pages-shared/traces/ConfigurationTab/BlueprintValuesList.tsx
#	apps/opik-frontend/src/v2/pages/AgentConfigurationPage/AgentConfigurationTab/AgentConfigurationDetailView.tsx
#	apps/opik-frontend/src/v2/pages/AgentConfigurationPage/AgentConfigurationTab/AgentConfigurationTab.tsx
- Remove useMemo on hardcoded title string (#2)
- Reset broadcast.action to null on individual toggle so allExpanded
  doesn't get stuck (#3)
- Preserve multimodal content array in handleChangeMessage — only
  update text parts, keep image/video/audio intact (#5)
- Extract AutoResizeTextarea component to deduplicate inline
  auto-sizing logic from BlueprintChatMessages and
  BlueprintValuePromptCompact (#6)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@JetoPistola JetoPistola marked this pull request as ready for review April 14, 2026 09:15
@JetoPistola JetoPistola requested a review from a team as a code owner April 14, 2026 09:15
Comment on lines +18 to +23
const ref = useCallback((el: HTMLTextAreaElement | null) => {
if (el) {
el.style.height = "auto";
el.style.height = el.scrollHeight + "px";
}
}, []);
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.

el.style.height is only recomputed in the ref callback, so controlled value updates in BlueprintValuePromptCompact can leave the textarea at the initial height and clip until typing—should we recompute height in an effect keyed on value?

Finding type: Logical Bugs | Severity: 🟠 Medium


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages-shared/agent-configuration/fields/AutoResizeTextarea.tsx
around lines 18-23 (the `ref` callback that sets `el.style.height`), the textarea only
recalculates height on mount/ref, so later controlled `value` updates won’t resize.
Refactor by storing the textarea element in a ref (instead of relying solely on the
callback) and adding a `useLayoutEffect` (or `useEffect`) that runs whenever `value`
changes to set `style.height` to `auto` and then `scrollHeight + "px"`. Ensure the same
resizing logic is used for both user typing and programmatic value updates.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 839c66cAutoResizeTextarea now uses a useEffect keyed on value to recalculate height, so controlled value changes (e.g. from expand-all broadcast) resize the textarea correctly without requiring a keystroke.

🤖 Reply posted via /address-github-pr-comments

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.

Commit 839c66c addressed this comment by storing the textarea in a ref, centralizing the resize logic, and running it inside a useEffect that depends on value so controlled updates now recompute the height.

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.

Thanks for the update — that fix addresses the controlled-value resize case. I’ll save this to memory once the PR is merged.

@aadereiko aadereiko added the test-environment Deploy Opik adhoc environment label Apr 14, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔄 Test environment deployment process has started

Phase 1: Deploying base version 1.11.5-4910 (from main branch) if environment doesn't exist
Phase 2: Building new images from PR branch danield/OPIK-5622-agent-config-version-ui-improvements
Phase 3: Will deploy newly built version after build completes

You can monitor the progress here.

@CometActions
Copy link
Copy Markdown
Collaborator

Test environment is now available!

To configure additional Environment variables for your environment, run [Deploy Opik AdHoc Environment workflow] (https://github.com/comet-ml/comet-deployment/actions/workflows/deploy_opik_adhoc_env.yaml)

Access Information

The deployment has completed successfully and the version has been verified.

Editable chat messages now support: role selector dropdown (System /
User / Assistant), move up/down reordering, duplicate, delete, and
"Add message" button. CollapsibleBlock gains trailing and headerPrefix
props to host these controls in the header row.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment on lines +35 to +39
const EDITABLE_ROLES = [
LLM_MESSAGE_ROLE.system,
LLM_MESSAGE_ROLE.user,
LLM_MESSAGE_ROLE.assistant,
];
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.

EDITABLE_ROLES only lists system/user/assistant, so prompts loaded via parseChatTemplateToLLMMessages() that include ai/tool_execution_result don’t match any SelectItem and can’t be labeled/edited—should we add those roles to the dropdown or fall back to an editable editor?

Finding type: Logical Bugs | Severity: 🟠 Medium


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages-shared/agent-configuration/fields/BlueprintChatMessages.tsx
around lines 35-39, update the EDITABLE_ROLES constant to include all roles defined by
LLM_MESSAGE_ROLE (specifically the missing ai and tool_execution_result) so the role
dropdown can render SelectItem entries for any role coming from
parseChatTemplateToLLMMessages(). Also verify getRoleLabel(...) handles these roles; if
it doesn’t, add a label fallback so the SelectTrigger always displays something for
loaded prompts. If you can’t safely support those roles in the dropdown, refactor the
role editor to fall back to a read-only label + an “unknown role” editor path rather
than rendering a blank trigger.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — agent configurations only use system/user/assistant roles. The ai and tool_execution_result roles are playground-specific and wouldn't appear in agent config prompts. If a prompt with exotic roles is loaded, the label falls back to capitalize(role) which is readable enough.

🤖 Reply posted via /address-github-pr-comments

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.

Got it — in agent configuration prompts only system/user/assistant roles are expected here, so the broader role handling isn't needed. I'll remember this after the PR is merged.

Comment on lines +117 to +124
const dragHandle =
editable && messages.length > 1 ? (
<button
className="cursor-grab touch-none text-light-slate hover:text-foreground active:cursor-grabbing"
{...listeners}
{...attributes}
>
<GripHorizontal className="size-3.5" />
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.

The drag handle is a <button> without type, so in a <form> it defaults to type="submit" and can trigger form submission—should we set type="button"?

Finding type: Component responsibility | Severity: 🟢 Low


Want Baz to fix this for you? Activate Fixer

Other fix methods

Fix in Cursor

Prompt for AI Agents:

Before applying, verify this suggestion against the current code. In
apps/opik-frontend/src/v2/pages-shared/agent-configuration/fields/BlueprintChatMessages.tsx
around lines 117-124 within the SortableMessage component, the drag handle renders a
plain <button> without an explicit type attribute, which defaults to type="submit" when
placed inside a form. Refactor by adding type="button" to that drag-handle button
element so clicking/dragging it can’t trigger unintended parent form submissions.
Ensure the rest of the drag props ({...listeners} and {...attributes}) remain unchanged.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 839c66c — added type="button" to the drag handle to prevent accidental form submission.

🤖 Reply posted via /address-github-pr-comments

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.

Commit 839c66c addressed this comment by adding type="button" to the drag-handle button so it no longer defaults to submit, while leaving the drag listeners and attributes unchanged.

Comment on lines +215 to +223
const sensors = useSensors(
useSensor(MouseSensor, { activationConstraint: { distance: 5 } }),
);

const handleDragEnd = useCallback(
(event: DragEndEvent) => {
const { active, over } = event;
if (!over || active.id === over.id || !onReorder) return;

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.

BlueprintChatMessages duplicates the DnD useSensors/DndContext + arrayMove reorder logic and handleDragEnd from LLMPromptMessages, so should we reuse the shared reorder handler or extract a hook instead of copying it?

Finding type: Code Dedup and Conventions | Severity: 🟢 Low


Want Baz to fix this for you? Activate Fixer

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Skipping — the DnD pattern uses @dnd-kit library primitives (DndContext, SortableContext, useSortable, arrayMove). There's no project-specific shared abstraction to extract — LLMPromptMessages uses the same library calls inline. Extracting a shared hook for ~10 lines of boilerplate would add indirection without meaningful dedup.

🤖 Reply posted via /address-github-pr-comments

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.

Got it — that makes sense for this @dnd-kit usage, and I’ll save this to memory once the PR is merged.

JetoPistola and others added 2 commits April 14, 2026 14:25
…rag handle

- AutoResizeTextarea: useEffect keyed on value recalculates height
  so external value changes (e.g. expand all) don't clip content
- Drag handle button: add type="button" to prevent form submission

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…toast

- Button label: "Message" instead of "Add message" (plus icon provides context)
- Remove toast from config page save (only sandbox shows toast per spec)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aadereiko aadereiko added test-environment Deploy Opik adhoc environment and removed test-environment Deploy Opik adhoc environment labels Apr 14, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔄 Test environment deployment process has started

Phase 1: Deploying base version 1.11.5-4910 (from main branch) if environment doesn't exist
Phase 2: Building new images from PR branch danield/OPIK-5622-agent-config-version-ui-improvements
Phase 3: Will deploy newly built version after build completes

You can monitor the progress here.

@CometActions
Copy link
Copy Markdown
Collaborator

Test environment is now available!

To configure additional Environment variables for your environment, run [Deploy Opik AdHoc Environment workflow] (https://github.com/comet-ml/comet-deployment/actions/workflows/deploy_opik_adhoc_env.yaml)

Access Information

The deployment has completed successfully and the version has been verified.

Copy link
Copy Markdown
Collaborator

@aadereiko aadereiko left a comment

Choose a reason for hiding this comment

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

Looks good, thanks!

};

const ExpandAllToggle: React.FC<ExpandAllToggleProps> = ({
controller,
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

why wouldn't pass controller.allExpanded here and have it is a boolean?

@JetoPistola JetoPistola merged commit 5359c10 into main Apr 14, 2026
26 checks passed
@JetoPistola JetoPistola deleted the danield/OPIK-5622-agent-config-version-ui-improvements branch April 14, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Frontend test-environment Deploy Opik adhoc environment typescript *.ts *.tsx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants