Skip to content

[feat]: Stateless playground#3883

Open
ashrafchowdury wants to merge 526 commits intomainfrom
frontend/project-playground-with-span-data-running-full-workflow
Open

[feat]: Stateless playground#3883
ashrafchowdury wants to merge 526 commits intomainfrom
frontend/project-playground-with-span-data-running-full-workflow

Conversation

@ashrafchowdury
Copy link
Contributor

@ashrafchowdury ashrafchowdury commented Mar 3, 2026

ardaerzin and others added 30 commits February 23, 2026 02:43
…nd/app-playground-evaluators-support-full-workflow-entities
…nd/project-playground-with-span-data-running
…o frontend/project-playground-with-span-data-running-full-workflow
…w-entities' into frontend/project-playground-with-span-data-running-full-workflow
…nd/app-playground-evaluators-support-full-workflow-entities
…nd/project-playground-with-span-data-running
…o frontend/project-playground-with-span-data-running-full-workflow
…w-entities' into frontend/project-playground-with-span-data-running-full-workflow
… into frontend/app-playground-migration-shared-ui-updates
…to frontend/app-playground-migration-shared-entities-updates
…es' into frontend/app-playground-migration-shared-entity-ui-updates
…tes' into frontend/app-playground-migration-shared-playground-updates
…ates' into frontend/app-playground-migration-shared-playground-ui-updates
…updates' into frontend/app-playground-migration-app-updates
…n reordering in comparison mode

- Anchor loadableId to first selected entity instead of first root node
- Preserve anchor across column reordering to prevent orphaning stored data
- Reset anchor only when anchored entity is removed from playground
- Update JSDoc to document anchoring behavior
Allows consumers to pass custom class names to individual EntityListItem
components within the list. Used by PopoverCascaderVariant for compact styling.
…t types

Add type definitions for two new EntityPicker variants:
- CascaderVariant: Ant Design Cascader with lazy-loaded panels
- PopoverCascaderVariant: Button-triggered popover with side-by-side panels

Both support hierarchical entity selection with customizable styling.
Ant Design Cascader variant for EntityPicker with:
- Lazy-loaded cascading panels matching adapter hierarchy
- Synchronous cache reads to avoid loading flicker
- Search filtering across all levels
- Custom display rendering with text labels
- Loading placeholders per level
Button-triggered popover with side-by-side cascading panels:
- Left panel: root items with search and optional create button
- Right panel: child items when root is selected
- Support for disabled child IDs with tooltips
- Optional footer for actions like 'Disconnect all'
- Uses SearchablePopoverList for child panel rendering
…riant

- Add variants to UnifiedEntityPicker switch statement
- Export components and types from variants/index.ts
- Export from selection/components/index.ts
- Export from selection/index.ts
- Export from package root index.ts
…r hooks

Move evaluator-aware rendering logic to package level for reuse:
- evaluatorLabelUtils: Pure functions for rendering evaluator labels with colored type tags
- useEnrichedEvaluatorAdapter: Hooks providing browse/select adapters with evaluator enrichment
  - useEnrichedEvaluatorBrowseAdapter: All workflows with colored tags, human filtered out
  - useEnrichedEvaluatorOnlyAdapter: Evaluators only (excluding human)
  - useEnrichedAnnotationEvaluatorAdapter: Includes human evaluators with isHuman metadata
…kipVariantLevel

Add skipVariantLevel option to createWorkflowRevisionAdapter for 2-level
Workflow → Revision hierarchy (skipping variant level).

Useful for evaluators where each workflow has only one variant.
Uses workflowToRevisionRelation to fetch revisions directly by workflow ID.
- Remove ref-based memoization pattern (use direct dependencies)
- Add skipVariantLevel: true to useEvaluatorOnlyAdapter for 2-level hierarchy
- Simplify getLabelNode callbacks to use direct map references
Replace manual Popover + breadcrumb EntityPicker with PopoverCascaderVariant:
- Simpler component API with built-in button trigger
- Side-by-side cascading panels for Evaluator → Revision selection
- Track connected revision IDs to disable already-connected items
- Add CompactRevisionLabel for custom revision display
- Remove manual popover state management and selection reset logic
… requests

Introduce module-level concurrency limiter to prevent rate limit errors during "Run All" operations:
- Cap in-flight executeStepForSessionWithExecutionItems calls to prevent overwhelming LLM providers
- Queue excess requests and release as slots free up
- Read concurrency limit lazily from executionConcurrencyAtom (default 6)
- Re-create limiter when concurrency setting changes
- Add resetSharedConcurrencyLimiter() for
Apply deployment status colors to EnvironmentTagLabel tags and sort environments in canonical order (development → staging → production):
- Style EnvironmentTagLabel with bgColor, textColor, and borderColor from deploymentStatusColors
- Sort environments by ENV_ORDER map (development: 0, staging: 1, production: 2)
- Unknown environments fall back to default styling and sort last
…antNavigationCard tags

Update Tag components to use variant="filled" instead of deprecated bordered={false} prop for average latency and cost displays.
…ayjs

Replace manual Date parsing with dayjs for consistent UTC→local conversion and "MMM D, YYYY h:mm A" format. Memoize lastModifiedText to avoid recalculating on every render.
…ndency

Replace legacyAppRevisionMolecule atom lookup with direct environment data:
- Use env.updated_at instead of fetching revision timestamps via atom
- Replace VariantNameCell with EntityListItemLabel + VersionBadge for variant display
- Strip app prefix from deployed_variant_name in toLegacyEnvironment adapter
- Add updated_at field to Environment type
- Remove unnecessary revision atom memoization and useAtomValue hook
… cache keying

Add custom equality comparator to atomFamily to ensure cache hits when params match by value rather than reference. Prevents duplicate atoms for identical {appId, variantId} combinations.
…antDrawerContent

Update Tag component to use variant="filled" instead of deprecated bordered={false} prop for date modified display.
… VariantDrawerTitle

Remove commitType={viewAs} prop from SaveConfigButton as it's no longer needed.
…onent in VariantDrawerContent

Extract date formatting logic into reusable FormattedDate component with copy-to-clipboard:
- Add FormattedDate component with dayjs formatting and click-to-copy raw ISO timestamp
- Support asTag prop to wrap formatted date in Tag component
- Show copy icon on hover with 2s "Copied!" feedback
- Replace inline formatDate24 logic in VariantDrawerContent with FormattedDate
- Remove Tag import and format
bekossy added 2 commits March 8, 2026 21:49
…-workflow' of github.com:Agenta-AI/agenta into frontend/project-playground-with-span-data-running-full-workflow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature SDK size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants