发布

  • [OPIK-5842] [FE] feat: split datasets and test suites into separate v2 sidebar entries (#6234)

    frostbyte_neo 发布于 2026-04-15 10:55:21 +00:00

    • [OPIK-5795] [BE] feat: rename evaluation_suite to test_suite in backend APIs and models

    Rename all backend references from evaluation_suite to test_suite:

    • Java enums (DatasetType, EvaluationMethod)
    • Service/DAO SQL string literals
    • Class renames (EvalSuite* -> TestSuite*)
    • Config key (evalSuite -> testSuite)
    • Metadata keys (eval_suite_* -> test_suite_*)
    • DB migrations for enum value changes
    • All test files updated

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

    • chore(codegen): regenerate OpenAPI spec and Fern SDK types

    Fern codegen picks up the evaluation_suite → test_suite enum rename
    from the backend. Updates generated REST types in both Python and
    TypeScript SDKs, plus both OpenAPI spec copies.

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

    • [OPIK-5798] [SDK] feat: rename evaluation_suite to test_suite in TypeScript SDK

    Rename all hand-written TypeScript SDK references:

    • EvaluationSuite -> TestSuite (class, types, tests)
    • evaluateSuite -> evaluateTestSuite (function, tests)
    • Updated all exports, imports, and examples

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

    • [OPIK-5797] [SDK] feat: rename evaluation_suite to test_suite in Python SDK

    Rename all hand-written Python SDK references:

    • EvaluationSuite -> TestSuite (class, types)
    • EvaluationSuiteResult -> TestSuiteResult
    • Client methods: create/get/get_or_create_evaluation_suite -> test_suite
    • REST operations: create/update_evaluation_suite_dataset -> test_suite
    • Report directory: opik_evaluation_suite_reports -> opik_test_suite_reports
    • Updated all imports, exports, tests, and .gitignore

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

    • fix(backend): update missed comment in ExperimentAggregatesDAO

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

    • [OPIK-5796] [FE] feat: rename evaluation_suite to test_suite in frontend

    Rename all frontend references from evaluation_suite to test_suite:

    • Component files and directories (v1 and v2)
    • Route paths (/evaluation-suites -> /test-suites)
    • Enum values (DATASET_TYPE.TEST_SUITE, EVALUATION_METHOD.TEST_SUITE)
    • UI strings ("Evaluation Suite" -> "Test Suite")
    • Store, hooks, and type definitions
    • E2E test references
    • Documentation references

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

    • fix(python-sdk): rename evaluate_suite to evaluate_test_suite

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

    • style(python-sdk): apply ruff format fixes

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

    • fix: correct grammar "an test suite" to "a test suite"

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

    • style(python-sdk): apply ruff format to test_test_suite files

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

    • fix(migration): add intermediate step for MySQL enum rename

    MySQL MODIFY COLUMN fails with "Data truncated" when existing rows
    contain the old enum value. Fix by first adding the new value, then
    updating rows, then removing the old value.

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

    • fix(migration): normalize changeset author to danield

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

    • [OPIK-5795] [FE] fix: align DATASET_TYPE and EVALUATION_METHOD enum values to 'evaluation_suite'

    The DB migration from 'evaluation_suite' to 'test_suite' hasn't run yet,
    so the backend still serializes TEST_SUITE as 'evaluation_suite'. Align
    frontend enum values to match, and replace hardcoded "test_suite" string
    in checkIsTestSuite() with the EVALUATION_METHOD enum constant.

    • [OPIK-5795] [FE] fix: rename remaining 'evaluation' labels to 'test suite'
    • 'Edit evaluation item' -> 'Edit test suite item'
    • 'Select evaluation type' -> 'Select test type'
    • [OPIK-5795] [FE] fix: remove unused Plus import, add missing buildDocsUrl import, fix isEvalSuite → isTestSuite rename

    • [OPIK-5795] [SDK] chore: regenerate OpenAPI specs and SDK types after evaluation_suite → test_suite rename

    • [OPIK-5795] [SDK] fix: use evaluation_suite DB value for dataset type and evaluation method in Python and TypeScript SDKs

    • [OPIK-5795] [SDK] fix: use ExperimentWriteEvaluationMethod constant to satisfy TypeScript type checker

    • [OPIK-5795] [SDK] fix: update test assertions to expect 'evaluation_suite' instead of 'test_suite'

    • [OPIK-5795] [SDK] fix: update Python unit test assertions to expect 'evaluation_suite' not 'test_suite'

    • [OPIK-5842] [FE] feat: split datasets and test suites into separate v2 sidebar entries

    Separate datasets from test suites in the v2 frontend sidebar, each with
    their own list page, detail page, and item views. Shared logic lives in
    pages-shared while page-specific components stay in their own directories.

    • Add DatasetsPage, DatasetItemsPage, DatasetDetailPage for regular datasets
    • Extract shared DatasetItemsTab, DatasetItemsPage, DatasetItemsActionsPanel
    • Add AddDatasetItemDialog (direct API for empty datasets) and
      AddDatasetItemPanel (draft store for datasets with items)
    • Move test suite components to pages-shared/TestSuiteComponents
    • Generalize AddEditDatasetDialog/useDatasetForm with datasetType param
    • Add v2 routes for /datasets and /datasets/:id

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • fix(datasets): update test suite description, narrow add-item panel, and simplify settings dialog
    • Update test suite list page description text and make docs URL per-type
    • Set initialWidth=0.4 on test suite add-item panel to match dataset panel
    • Rename "Settings" button to "Evaluation settings"
    • Remove name/description fields from settings dialog (editable via table 3-dot menu only)

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • fix(datasets): restore dataset RESOURCE_MAP, fix DateTag tooltip, memoize initial values
    • Fix RESOURCE_MAP[dataset] which was overwritten with test suite URLs/labels
    • Use conditional RESOURCE_TYPE on DateTag so datasets show "Dataset creation time"
    • Memoize initialData/initialValues in AddTestSuiteItemPanel

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • [OPIK-5795] [SDK] Fix evaluation_method literal and restore dropped test
    • Revert incorrect rename of "evaluation_suite" → "test_suite" in evaluation_method Literal (backend API value must stay as-is)
    • Restore test_run_tests__explicit_client__propagated_to_worker_threads that was lost during merge conflict resolution
    • [OPIK-5795] [SDK] Delete outdated compatibility_v1 test_test_suite

    File was intentionally deleted in main; kept by mistake during merge
    conflict resolution. Coverage exists in tests/e2e/evaluation/test_test_suite.py.

    • fix(test-suites): update explainer text to 'agent' and improve prefilled data keys

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • refactor(datasets): split DatasetItemsPage into config, header, and save hook

    Extract column definitions and storage keys into datasetItemsPageConfig.ts,
    header UI into DatasetItemsPageHeader.tsx, and save/version logic into
    useDatasetItemsSave.tsx. Reduces DatasetItemsPage from 730 to 300 lines.

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • [OPIK-5795] [FE] Fix lint errors in TestSuiteItemsTab
    • Remove unused noDataText variable
    • Fix prettier formatting on inline ternary
    • [OPIK-5795] [FE] Fix remaining lint errors in TestSuiteItemsTab
    • Remove unused deletedIds, itemLabel variables and useDeletedIds import
    • Remove stray blank line
    • fix(datasets): handle 409 conflict on initial version creation, restore polling constant

    Add onError handler for the initial version mutate call so pendingVersionData
    is set when a 409 occurs, allowing handleOverrideConfirm to proceed.
    Restore POLLING_INTERVAL_MS named constant.

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • fix(fe): align page titles, add empty states, fix add-item dialog, update SDK snippet
    • Align dataset/test-suite list pages with new title pattern (comet-body-accented, no description)
    • Add PageEmptyState with SVG illustrations for both datasets and test suites
    • Rename empty-evaluation-suites SVGs to empty-test-suites
    • Remove stale ExplainerDescription from OptimizationsPage
    • Fix empty-state "Add new item" to open the correct dialog (first-item dialog)
    • Update test suite SDK snippet to use opik.run_tests() instead of suite.run()
    • Update button text: "Create new" → "Create dataset" / "Create test suite"

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • feat(datasets): add create dataset/test suite sidebar wizard with success screen
    • Replace centered modal dialog with 3-step ResizableSidePanel sidebar wizard
      (Name/Description → Upload/Config → Success)
    • Add CreatedSuccess component with "Go to entity" and "Create another" actions
    • Fix breadcrumb regression: use useParams instead of matchRoute to determine
      breadcrumb key, ensuring dataset name shows correctly on child routes
    • Move DatasetListType to @/types/datasets to break circular dependency

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • feat(datasets): add SDK code snippets and improve create sidebar UX
    • Add Python/TypeScript SDK snippets with copy button between CSV upload and advanced settings
    • Use actual project name in SDK snippets
    • Fix CSV upload section layout to match main (description, upload field, learn more)
    • Add entity-specific placeholders for name and description fields
    • Derive labels from TYPE_CONFIG to reduce repetitive type checks

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • refactor(datasets): address review feedback on CreateDatasetSidebar
    • Reorder hooks: state declarations before queries per project convention
    • Remove unnecessary useMemo from snippet derivations
    • Extract duplicated dataKindPrefix variable

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • refactor(fe): rename evaluation terminology to test/pass criteria in test suite UI

    Extract repeated UI strings into constants and rename "Evaluation criteria"
    to "Pass criteria", "Evaluation settings" to "Test settings", and update
    related descriptions to use test suite terminology consistently.

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com


    Co-authored-by: Daniel Dimenshtein danield@comet.com
    Co-authored-by: Claude Opus 4.6 (1M context) noreply@anthropic.com
    Co-authored-by: Thiago Hora thiagoh@comet.com

    下载附件