Skip to content

Conversation

@ardaerzin
Copy link
Contributor

@ardaerzin ardaerzin commented Jan 31, 2026

- Add @agenta/entities, @agenta/playground, @agenta/shared, and @agenta/ui workspace dependencies
- Enables OSS web to consume modular Agenta packages
- Add PlaygroundTest component wrapping @agenta/playground with OSS-specific providers
- Inject EntityDrillInView, SharedGenerationResultUtils, LoadTestsetModal, CommitVariantChangesButton via PlaygroundUIProvider
- Add OSSdrillInUIProvider and EntitySelectorProvider context wrappers
- Create OSS page route at /playground-test
- Create EE page route importing OSS implementation
- Re-export all @agenta/playground components and types for convenience
- Remove local AppMessageContext implementation
- Re-export AppMessageContext, message, modal, notification from @agenta/ui
- Add deprecation comment directing new code to import from @agenta/ui
- Maintains backward compatibility for existing OSS imports
- Accept tree prop as alternative to traceId for displaying metrics
- Map StatusCodeEnum from @agenta/entities/trace to legacy StatusCode values
- Extract metrics from inline tree nodes format (metrics.acc/unit structure)
- Convert inline tree nodes to TraceSpanNode-like structure for readMetric compatibility
- Use inline tree data when provided, otherwise fetch via traceEntityAtom
- Disable trace drawer button for inline data (effectiveTraceId === "inline")
- Prevent font-weight changes on hover/active states to eliminate layout shift
- Set max-width (280px) and min-width (180px) constraints on dropdown columns
- Add text truncation with ellipsis for long item labels (max-width: 220px)
- Hide loading spinner on parent items to reduce visual clutter
- Remove unused danger dropdown menu item hover styles
… Selection, Molecule pattern, and shared package architecture

- Add Loadable Bridge Pattern section with selectors/actions reference for testset/trace data sources
- Add Runnable Bridge Pattern section documenting executable entity management (app revisions, evaluators)
- Add Entity Selection System section covering EntityPicker and EntityCascader components with pre-built adapters
- Rename Entity Controller Pattern to Molecule
- Add css-modules.d.ts with type declarations for *.module.css and *.css imports
- Define module declarations mapping CSS class names to string values
- Enables TypeScript support for CSS modules across all @Agenta workspace packages
- Add 'packages/*' glob pattern to pnpm-workspace.yaml
- Enables monorepo support for @agenta/* workspace packages under web/packages/
… and remove unused dependencies

- Configure Turbo tasks with proper dependency chains for build/dev/lint/types:check across all packages
- Add workspace package transpilation to Next.js config to ensure proper module resolution
- Remove unused dependencies: postcss-antd-fixes, blakejs, diff, highlight.js, react-syntax-highlighter
- Define task-specific inputs/outputs and caching strategies for optimal build performance
- Set up persistent
…nent injection

- Create OSSdrillInUIProvider wrapper around DrillInUIProvider from @agenta/entities/ui
- Inject SelectLLMProvider component for OSS-level model selection with vault/secrets integration
- Add comprehensive JSDoc documentation explaining provider purpose and usage
- Note that most UI components (Editor, ChatMessage, FieldHeader) are now imported directly from @agenta/ui in entities package
- Add initialTestcasesAtom to store pre-populated testcase data for save mode
- Add initializeSaveModeAtom write-only atom to initialize modal in create mode with testcases and optional default name
- Update resetModalStateAtom to clear initialTestcasesAtom on modal close
- Add comprehensive JSDoc documentation for new atoms explaining save mode usage
…d atom

- Import and re-export projectIdAtom from @agenta/shared in project selectors
- Update setLocationAtom to sync projectId changes to setSharedProjectIdAtom
- Remove local projectIdAtom definition in favor of shared atom from entity packages
- Add comment explaining synchronization ensures entity packages can read current projectId
Add @scalar/openapi-parser for OpenAPI schema parsing and eslint-plugin-import for import linting. Update debug dependency to 4.4.3 across the lockfile.
Add @agenta/ui, @agenta/entities, and @agenta/playground package paths to Tailwind content configuration to ensure styles from these packages are properly processed.
…genta/ui

- Initialize setUserAtoms in AppGlobalWrappers with workspaceMembersAtom and userAtom to enable user resolution features like UserAuthorLabel
- Update CellRenderers to re-export components, utilities, constants and types from @agenta/ui for backward compatibility
- Add documentation note encouraging new code to import directly from @agenta/ui
Add loadableId parameter to initializeSaveMode call in PlaygroundTest to match updated SaveModeConfig signature. Also add documentation note about appRevision entity using direct API query via @agenta/shared axios without requiring initialization.
refactor(oss): migrate CellRenderers to @agenta/ui package

Remove CellRenderers components from oss/src/components as they have been migrated to the @agenta/ui package. Components removed include CellContentPopover, ChatMessagesCellContent, JsonCellContent, SmartCellContent, TextCellContent, UserAuthorLabel, and supporting utilities/constants. The index.ts now re-exports from @agenta/ui for backward compatibility.
```
- Enable @typescript-eslint/no-explicit-any as error in ESLint config
- Enable noImplicitAny and strictNullChecks in TypeScript base config
…evision configs

- Import selection configs from @agenta/entities packages
- Call initializeSelectionSystem in Providers.tsx before component rendering
- Register testset and appRevision entity selection configurations
- OSS: add @agenta/playground-ui workspace dependency
- EE: add @agenta/* workspace dependencies for shared packages
- Document @agenta/shared subpath exports (api, state, utils, hooks, schemas, types)
- Document @agenta/ui subpath exports (table, editor, chat-message, app-message, etc.)
- Update @agenta/entities subpath examples with consistent formatting
- eslint: add rule to prevent re-exporting from @agenta/* packages in app layer
- tsconfig.base.json: switch moduleResolution from 'node' to 'bundler'
Add reusable utilities for revision/version handling:
- revisionLabel.ts: Formatting utilities for version labels, local draft detection
- revisionUtils.ts: URI parsing, agConfig extraction, list item types and transforms

These utilities are shared across appRevision and ossAppRevision entities.
Add complete OSS app revision entity management with:
- Zod schemas for validation (core.ts)
- Data transformers for legacy API (api/api.ts)
- Jotai state management with molecule pattern (state/molecule.ts)
- Schema fetching with two-layer resolution (schemaAtoms.ts, serviceSchemaAtoms.ts)
- Runnable capability support (runnableSetup.ts)
- Local draft management (localDrafts.ts)
- Commit abstraction for legacy API (commit.ts)
- Entity relations for app → variant → revision hierarchy (relations.ts)
- Factory functions for creating local drafts (core/factory.ts)

This module uses the legacy backend API (AppVariantRevision model):
- GET /variants/{variant_id}/revisions/{revision_number}/
- POST /variants/revisions/query/
- Add ossAppRevision subpath export to package.json
- Export ossAppRevision controller from main index.ts
- Export shared revision utilities from shared/index.ts
…n integration

- appRevision/api: Add shared type exports and transformers
- appRevision/relations: Update entity relation types
- runnable/bridge: Add ossAppRevision runnable type support
- runnable/types: Add ossAppRevision-related type definitions
- shared/molecule/types: Update molecule type definitions
- testset/core/schema: Minor schema updates
Add modal adapters for OSS app revision (variant) entities:
- ossAppRevisionAdapters.ts: Commit/delete modal support for variants
- Uses ossAppRevisionMolecule for data and commit actions
- Provides diff data and version info for commit modal
Add relation-based selection adapter for OSS app revisions:
- ossAppRevisionRelationAdapter.ts: 2-level and 3-level hierarchy support
- Supports App → Variant → Revision (3-level) and Variant → Revision (2-level)
- Uses entity relations from @agenta/entities/ossAppRevision
- Configurable factory for playground integration
Add tree-select selection mode for 2-level hierarchies:
- useTreeSelectMode.ts: Hook for Ant Design TreeSelect integration
- Provides data and handlers for expandable parent groups
- Supports custom actions, filtering, and search
- Used by TreeSelectVariant (Playground SelectVariant style)
Add TreeSelect-based entity picker variant:
- TreeSelectVariant.tsx: Main component with dropdown and popup
- TreeSelectPopupContent.tsx: Popup content with search and tree
- TreeSelectVariant.module.css: Styling for tree select
- Used for Playground SelectVariant style selection
Update UnifiedEntityPicker to support tree-select variant:
- Add 'tree-select' variant option to UnifiedEntityPicker
- Export TreeSelectVariant and related types
- Update EntitySelectorModal with tree-select support
Update package exports:
- Export ossAppRevision selection adapter and types
- Export TreeSelectVariant and useTreeSelectMode
- Add ossAppRevision modal adapter export
…updates' into frontend-feature/stateless-playground-entity-ui-package-updates
@vercel
Copy link

vercel bot commented Jan 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview, Comment Feb 3, 2026 9:49pm

Request Review

Copy link

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View issue and 5 additional flags in Devin Review.

Open in Devin Review

Comment on lines 338 to 344
// If appId is provided, use entity-level atoms directly (single source of truth)
if (appId && !variantsListAtom) {
const variantsFamily = includeLocalDrafts
? variantsListWithDraftsAtomFamily
: variantsListQueryStateAtomFamily
resolvedVariantsListAtom = variantsFamily(appId) as Atom<ListQueryState<unknown>>
}

Choose a reason for hiding this comment

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

🔴 appIdAtom option is declared but never used to resolve app ID

The createOssAppRevisionAdapter function accepts an appIdAtom option that is documented as providing a dynamic app ID that "Takes precedence over static appId if both are provided", but the implementation never actually reads from this atom.

Click to expand

The Problem

At ossAppRevisionRelationAdapter.ts:338-344, the code only checks for static appId:

// If appId is provided, use entity-level atoms directly (single source of truth)
if (appId && !variantsListAtom) {
    const variantsFamily = includeLocalDrafts
        ? variantsListWithDraftsAtomFamily
        : variantsListQueryStateAtomFamily
    resolvedVariantsListAtom = variantsFamily(appId) as Atom<ListQueryState<unknown>>
}

The appIdAtom is destructured (line 323) and used in a condition for revisions (line 352), but it's never used to resolve the variants list atom.

Impact

  • If a user passes only appIdAtom (without appId), the adapter will silently fall back to 3-level mode instead of the expected 2-level mode
  • The documented behavior ("Takes precedence over static appId") is not implemented
  • This is a functional bug where the feature doesn't work as documented

Expected Behavior

The code should read from appIdAtom to get the dynamic app ID when provided, and use that to resolve the variants list atom for 2-level mode.

Recommendation: Either implement the appIdAtom functionality by reading from the atom to get the dynamic app ID, or remove the appIdAtom option from the interface and documentation if it's not intended to be supported. Note that reading from an atom outside of React components/hooks requires using store.get() pattern, which may require architectural changes.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

…updates' into frontend-feature/stateless-playground-entity-ui-package-updates
…updates' into frontend-feature/stateless-playground-entity-ui-package-updates
… fdir@6.4.6

- Upgrade lodash from ^4.17.21 to >=4.17.23 across multiple packages
- Upgrade Next.js from 15.5.9 to 15.5.10
- Remove unused fdir@6.4.6 dependency and snapshots
…updates' into frontend-feature/stateless-playground-entity-ui-package-updates
…yAppRevision naming

- Delete ossAppRevisionAdapters.ts modal adapter file
- Delete ossAppRevisionRelationAdapter.ts selection adapter file
- Aligns with legacyAppRevision naming convention established in entities package
- Add legacyAppRevisionAdapters.ts for commit/delete modal support
- Add legacyAppRevisionRelationAdapter.ts for 2/3-level entity selection
- Implements relation-based adapter pattern using legacyAppRevisionMolecule
- Supports both 3-level (App → Variant → Revision) and 2-level (Variant → Revision) selection modes
- Commit flow uses molecule's commit action with polling workaround for legacy API
- Includes diff display
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