Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
284 commits
Select commit Hold shift + click to select a range
9607d42
Remove TestcasesTable component and migrate to unified table layout w…
ardaerzin Dec 18, 2025
2c1c125
Add draft store with Immer-based undo/redo and entity store with norm…
ardaerzin Dec 18, 2025
1c083b1
Add testcases table store with revision-based data fetching and commi…
ardaerzin Dec 18, 2025
d144d76
Add file upload UI to CreateTestset modal with preview, validation, a…
ardaerzin Dec 18, 2025
b3115f1
Add latest commit message column to testsets table with batched revis…
ardaerzin Dec 18, 2025
2b97e35
Add third button support to navigation blocking modal and make it can…
ardaerzin Dec 18, 2025
e3498aa
Add commit message column to testsets table and implement revision de…
ardaerzin Dec 18, 2025
0f19903
Remove jotai-eager dependency and replace eagerAtom with standard ato…
ardaerzin Dec 18, 2025
5f66ed0
Remove ag-grid CSS imports from _app.tsx in both OSS and EE versions
ardaerzin Dec 18, 2025
6576e0f
Remove ag-grid helper module and dynamic imports for client-side row …
ardaerzin Dec 18, 2025
a1ca359
Add third button support and update AlertPopup styling to match desig…
ardaerzin Dec 18, 2025
61582ed
Add markdown toggle button to chat message editor with view state man…
ardaerzin Dec 18, 2025
2bff780
Add controlled value prop to Editor component with undo/redo support …
ardaerzin Dec 18, 2025
f61c7c8
Add testcase table row height control with CSS variable-based sizing …
ardaerzin Dec 18, 2025
fdbb185
Merge branch 'main' into frontend-feat/unified-table-layout-testsets-…
ardaerzin Dec 18, 2025
59ccaa9
Remove unused Ant Design v5 patch and global CSS imports from EE _app…
ardaerzin Dec 18, 2025
5947cad
fix sdk evaluations
jp-agenta Dec 18, 2025
3656bfc
Merge branch 'frontend-feat/unified-table-layout-testsets-and-testcas…
jp-agenta Dec 18, 2025
2f4ca10
Add globals.css import to both OSS and EE _app.tsx and remove jotai-d…
ardaerzin Dec 18, 2025
3f53ea8
refresh dependencies
jp-agenta Dec 19, 2025
3a42481
Replace Array<T> with T[] syntax in TestcaseRevisionResponse type and…
ardaerzin Dec 19, 2025
9b1e634
Try and drop python3.9 support drag
jp-agenta Dec 19, 2025
4bebd41
move dependencies to lazy-load
jp-agenta Dec 19, 2025
ee2fd96
Fix extra Config
jp-agenta Dec 19, 2025
dfdc479
Merge branch 'fix/api-build-failure' into chore/testsets-migration
jp-agenta Dec 19, 2025
a9c74f3
clean copy pyproject
jp-agenta Dec 19, 2025
274a957
Merge branch 'frontend-feat/unified-table-layout-testsets-and-testcas…
jp-agenta Dec 19, 2025
8005cab
Fixing lazy loading
jp-agenta Dec 19, 2025
390c9af
add import tests
jp-agenta Dec 19, 2025
48b8df2
Refactor testcases table to use infinite scroll with cursor-based pag…
ardaerzin Dec 19, 2025
dd36519
Add client-side row support to infinite table store with draft prepen…
ardaerzin Dec 19, 2025
60f4d70
Merge branch 'chore/testsets-migration' into frontend-feat/new-testse…
ardaerzin Dec 19, 2025
cede183
Add TestsetsTable component with infinite scroll, tree expansion, and…
ardaerzin Dec 19, 2025
dfbe731
add default testset (?)
jp-agenta Dec 19, 2025
894af87
Add select mode to TestsetsTable with revision selection callback and…
ardaerzin Dec 20, 2025
f6a55c7
Add TestcaseActions, TestcaseHeader, and TestcaseModals components wi…
ardaerzin Dec 20, 2025
2520d3c
Add TestsetDrawer component with revision selection, testcase preview…
ardaerzin Dec 23, 2025
961ad3b
Add LoadTestsetModal with testset/revision selection, testcase previe…
ardaerzin Dec 23, 2025
c5ceae3
Add testset revision selection to NewEvaluation modal with version di…
ardaerzin Dec 23, 2025
eb2e023
Add TestsetDrawer integration with entity-based testcases table, casc…
ardaerzin Dec 23, 2025
e835d7c
Add testset revision ID support to evaluation run navigation and refe…
ardaerzin Dec 23, 2025
db0bfbe
Replace EvaluatorTestcaseModal with LoadTestsetModal and migrate to e…
ardaerzin Dec 23, 2025
9bfbb1d
Add testset revision ID support to preview evaluation runs and refere…
ardaerzin Dec 23, 2025
355291d
Add testset revision reference to evaluation run input step and remov…
ardaerzin Dec 23, 2025
56c5aae
Migrate testset data fetching from legacy API to entity-based store w…
ardaerzin Dec 23, 2025
da1a7bc
Update Ant Design component props to v5 API and remove unused Evaluat…
ardaerzin Dec 23, 2025
d25403f
Add TestsetsTable component with infinite scroll, tree expansion, and…
ardaerzin Dec 19, 2025
20d14a0
Add select mode to TestsetsTable with revision selection callback and…
ardaerzin Dec 20, 2025
6cfe6f1
Add TestcaseActions, TestcaseHeader, and TestcaseModals components wi…
ardaerzin Dec 20, 2025
fcf73c6
Add TestsetDrawer component with revision selection, testcase preview…
ardaerzin Dec 23, 2025
b3c0e63
Add trace entity module with schema, store, and data extraction utili…
ardaerzin Dec 23, 2025
5395487
Migrate TestsetDrawer to use trace entity selectors for data extracti…
ardaerzin Dec 23, 2025
20779e7
Merge branch 'main' into frontend-feat/unified-table-layout-testsets-…
ardaerzin Dec 23, 2025
1f31aed
Merge branch 'frontend-feat/unified-table-layout-testsets-and-testcas…
ardaerzin Dec 23, 2025
9d83fa2
chore(deps): update dependencies - add jotai-history, jotai-transacti…
ardaerzin Dec 23, 2025
8b83b6b
Merge branch 'frontend-feat/unified-table-layout-testsets-and-testcas…
ardaerzin Dec 23, 2025
e86f9bb
Remove unused jotai-devtools styles import from EE app entry point
ardaerzin Dec 23, 2025
c94d69d
Refactor revision context to use canonical location in testcase queri…
ardaerzin Dec 23, 2025
5e5e847
Add EvaluatorTestcaseModal component for testcase selection in evalua…
ardaerzin Dec 23, 2025
95b0ae1
Refactor TestsetDrawer to use custom hooks and split into modular com…
ardaerzin Dec 23, 2025
63be348
Optimize testcase row ID synchronization by replacing useEffect with …
ardaerzin Dec 23, 2025
c5cd426
Refactor TestsetDrawer to use atom-based state management and relocat…
ardaerzin Dec 23, 2025
4f207ec
Merge branch 'chore/testsets-migration' into frontend-feat/new-testse…
ardaerzin Dec 23, 2025
f7f99ac
Refactor testset selection to use shared atom-based state across Load…
ardaerzin Dec 23, 2025
100a56a
Add guard against invalid revision IDs in testcase fetching and enabl…
ardaerzin Dec 23, 2025
d66cab3
Add support for creating new testsets with deferred server save and U…
ardaerzin Dec 23, 2025
3d1c65b
Fix column rename to read from datasetStore rows instead of entity at…
ardaerzin Dec 23, 2025
3945f27
Thread version information through TestcaseModals to CommitModal for …
ardaerzin Dec 23, 2025
a6e3f67
Add column operations support to testset revision patching for rename…
ardaerzin Dec 23, 2025
697422c
Replace antd message with AppMessageContext message in TestsetsTable …
ardaerzin Dec 23, 2025
a742da8
Replace Modal.confirm with controlled Modal component for column dele…
ardaerzin Dec 23, 2025
5c379aa
Add trace data editing with auto-save and revert functionality to Tes…
ardaerzin Dec 23, 2025
db830b4
Add nested column grouping with expand/collapse support to TestcasesT…
ardaerzin Dec 23, 2025
6dd5d02
Optimize TestcaseCell rendering performance with viewport-based lazy …
ardaerzin Dec 24, 2025
decef7d
Add testset_revision_id support to evaluation creation API
ardaerzin Dec 24, 2025
8295259
Add nested field editing with add/delete operations and smart data ty…
ardaerzin Dec 24, 2025
3e1826c
```
ardaerzin Dec 24, 2025
5136084
Add rich editor support for nested fields and content preview in raw …
ardaerzin Dec 24, 2025
d22e8cb
Remove rich editor preview for content strings in raw mode to ensure …
ardaerzin Dec 24, 2025
6349ad2
remove dependency duplicate in sdk
jp-agenta Dec 24, 2025
b2ec5db
Merge branch 'frontend-feat/new-testsets-integration' of github.com:A…
jp-agenta Dec 24, 2025
3fe54b8
Replace selectedTestsetLabel with selectedTestsetName in NewEvaluatio…
ardaerzin Dec 24, 2025
1989b0f
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Dec 24, 2025
eaa9df6
Add flexbox layout constraints and height calculations to fix NewEval…
ardaerzin Dec 24, 2025
edb0db8
Optimize generatedNameBase computation by using selectedTestsetName d…
ardaerzin Dec 24, 2025
0c64957
Fix auto evals
jp-agenta Dec 24, 2025
8d14604
Merge branch 'frontend-feat/new-testsets-integration' of github.com:A…
jp-agenta Dec 24, 2025
7096d4b
Add copy-to-clipboard functionality with visual feedback to TestcaseE…
ardaerzin Dec 24, 2025
00eb772
Add raw/formatted mode toggle with JSON normalization for testcase fi…
ardaerzin Dec 24, 2025
30403f7
Add auto-generated name for online evaluations when evaluator is sele…
ardaerzin Dec 24, 2025
106568c
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Dec 24, 2025
3d76c56
Add property/item creation UI to TestcaseEditDrawer with type selecti…
ardaerzin Dec 24, 2025
5ce3841
Add specialized UI components for boolean, number, and json-array dat…
ardaerzin Dec 24, 2025
c2f5aa0
Fix array index navigation in TestcaseEditDrawer by using setCurrentP…
ardaerzin Dec 24, 2025
ad924f1
Add JsonEditorWithLocalState wrapper to prevent UI crashes from inval…
ardaerzin Dec 24, 2025
2ec3a43
Add flex-col gap-2 wrapper to currentLevelItems map to fix spacing be…
ardaerzin Dec 24, 2025
4683856
Add useEffect to sync JsonEditorWithLocalState when initialValue chan…
ardaerzin Dec 24, 2025
020ad91
Add default-visible fallback to columnViewportVisibilityAtomFamily to…
ardaerzin Dec 24, 2025
dee5538
Add hover popover with copy button to TestcaseCellContent for full co…
ardaerzin Dec 24, 2025
7b106be
Convert CellContentPopover to uncontrolled mode and extract PopoverCo…
ardaerzin Dec 24, 2025
017c70c
Merge branch 'frontend-feat/new-testsets-integration' into feat/enabl…
jp-agenta Dec 25, 2025
1065d4d
Merge branch 'feat/enable-lean-testset-revisions' into frontend-feat/…
jp-agenta Dec 25, 2025
4b59e08
Merge branch 'main' into frontend-feat/new-testsets-integration
jp-agenta Dec 25, 2025
64eaa7d
fix merge issues
jp-agenta Dec 25, 2025
f4341f4
Extract DrillInBreadcrumb and DrillInFieldHeader components to shared…
ardaerzin Dec 26, 2025
4d14cc1
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Dec 26, 2025
4b3652c
Refactor TestsetDrawer to use atomic state management and extract com…
ardaerzin Dec 26, 2025
a782b40
fix missing testcases in /query by revision_id
jp-agenta Dec 26, 2025
adc6e07
fix tracing
jp-agenta Dec 26, 2025
28d8c8a
Implement read-fast for trace_id(s)
jp-agenta Dec 26, 2025
cb39879
Add breadcrumb truncation and smart segment formatting to DrillInView…
ardaerzin Dec 27, 2025
ab8bb36
Disable blur effect on EnhancedDrawer mask by default while preservin…
ardaerzin Dec 27, 2025
892475a
Display only last segment name for collapsed nested column groups in …
ardaerzin Dec 27, 2025
8bf50b0
Replace deprecated bordered prop with variant prop across Tag compone…
ardaerzin Dec 27, 2025
e62fd81
Add CellContentPopover and smart cell content renderers with auto-det…
ardaerzin Dec 28, 2025
d42835f
Refactor evaluation trace queries to use shared trace entity store an…
ardaerzin Dec 28, 2025
d7393d8
Upgrade Ant Design from 6.1.0 to 6.1.3 and update related @rc-compone…
ardaerzin Dec 29, 2025
1274c6f
Add windowing pagination support to testsets query endpoint with next…
ardaerzin Dec 29, 2025
5126c6e
Add useTestsetFileUpload hook and createDrillInState factory for reus…
ardaerzin Dec 29, 2025
bb31eb5
Add DrillInProvider context to enable property click navigation in JS…
ardaerzin Dec 29, 2025
83bc1d4
Add TestcaseHeader revision dropdown with keyboard navigation, copy a…
ardaerzin Dec 29, 2025
2d04c0c
Add deleteColumnViewportVisibilityAtom for cleanup and fix infinite r…
ardaerzin Dec 29, 2025
0726026
Add radio button onChange handler to trigger row click in TestsetsTab…
ardaerzin Dec 29, 2025
6ab2481
Refactor LoadTestsetModal to use extracted components and atoms for t…
ardaerzin Dec 29, 2025
f78c022
Refactor TraceDataDrillIn to use TraceSpanDrillInView with atom-based…
ardaerzin Dec 29, 2025
96d960c
Update Popover API from overlayInnerStyle to styles.container prop in…
ardaerzin Dec 29, 2025
fb70550
Update Popover API from overlayInnerStyle to styles.container prop in…
ardaerzin Dec 29, 2025
1de29d3
Extract testset upload logic into useTestsetFileUpload hook and simpl…
ardaerzin Dec 29, 2025
8b9e6b3
Add group column rename and delete functionality with editable header…
ardaerzin Dec 29, 2025
420ff0d
Add deleted column filtering to nested object key collection to preve…
ardaerzin Dec 29, 2025
3be7cbd
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Dec 29, 2025
869afa5
Merge branch 'main' into frontend-feat/new-testsets-integration
ardaerzin Dec 29, 2025
eadd242
Simplify TestcaseHeader dropdown by removing manual hover state manag…
ardaerzin Dec 29, 2025
c21594f
Replace EvaluatorTestcaseModal with LoadTestsetModal and add callback…
ardaerzin Dec 29, 2025
23caba2
Remove EvaluatorTestcaseModal component in favor of reusing LoadTests…
ardaerzin Dec 29, 2025
b235ee9
Add createStatefulEntityAtomFamily utility and refactor testcase quer…
ardaerzin Dec 30, 2025
55c5b08
Refactor TestcaseModals to use useEffect for modal state sync and imp…
ardaerzin Dec 30, 2025
d69ab00
Replace fetchTestsetRevisions with centralized fetchRevisionsList fro…
ardaerzin Dec 30, 2025
0b18f04
Replace fetchTestsetRevisions with centralized revisionsListQueryAtom…
ardaerzin Dec 30, 2025
ecc6ef5
Refactor LoadTestsetModal to use structured payload with testcases an…
ardaerzin Dec 30, 2025
1522661
Refactor DebugSection to use revision-based testset selection with re…
ardaerzin Dec 30, 2025
89b7f36
Add testcase entity module with stateful atom family and improve nest…
ardaerzin Dec 30, 2025
b532e8a
Refactor TestcaseCell to use fine-grained cell atoms and improve Test…
ardaerzin Dec 30, 2025
4638952
Refactor TestsetDrawer and DataPreviewEditor to accept initialPath pr…
ardaerzin Dec 30, 2025
9c17bdf
Add initialPath prop to DrillInContent and EntityDrillInView componen…
ardaerzin Dec 30, 2025
d7e2245
Remove debug console.log statements from EvaluatorVariantModal for no…
ardaerzin Dec 30, 2025
7592f6c
add missing testset revision reference to run steps in auto eval
jp-agenta Dec 30, 2025
a04c53e
Remove consolidatedDirtyState module and refactor testset metadata to…
ardaerzin Dec 30, 2025
2ecc60f
Refactor TestsetDrawer to use span IDs with entity atoms and add comm…
ardaerzin Dec 30, 2025
4de1fe3
Add conditional logic to hide export option in table settings when cu…
ardaerzin Dec 30, 2025
1e03384
Remove span cache hydration from TraceDrawer as it is now handled by …
ardaerzin Dec 30, 2025
69f9413
Add export functionality to TestsetsTable with format preference, cus…
ardaerzin Dec 30, 2025
5d97fe0
Refactor testset metadata updates to use direct API calls instead of …
ardaerzin Dec 30, 2025
dceec6c
Refactor DrillInContent to enable universal drill-in navigation and i…
ardaerzin Dec 30, 2025
b2ca939
Refactor NewEvaluationModalInner to use testsetsListQueryAtomFamily i…
ardaerzin Dec 30, 2025
53fe4b1
Refactor testset deletion to support individual revision deletion and…
ardaerzin Dec 30, 2025
9cb5a0c
Refactor EvaluationRunsFilters to use testsetsListQueryAtomFamily ins…
ardaerzin Dec 30, 2025
22c309a
Refactor ObservabilityTable to pass span IDs instead of full data obj…
ardaerzin Dec 30, 2025
30e2c24
Refactor usePreviewEvaluations to remove unused testsets data hooks a…
ardaerzin Dec 30, 2025
7629d54
Refactor TestsetDrawerButton to pass span IDs instead of full trace d…
ardaerzin Dec 30, 2025
90b5b8e
Add testset metadata update API, export functionality with CSV/JSON f…
ardaerzin Dec 30, 2025
b9ef63f
Add blob response handling to axios interceptor to prevent JSON trans…
ardaerzin Dec 30, 2025
1fe6378
Add testset revision download endpoint with CSV/JSON export support a…
ardaerzin Dec 31, 2025
1ac4d39
Upgrade @tanstack/query-core and @tanstack/react-query to 5.90.16, jo…
ardaerzin Dec 31, 2025
da2cadb
Remove unused draft store implementation, change default testset revi…
ardaerzin Dec 31, 2025
5075c3f
Refactor TestsetsTable to use centralized testset entity store instea…
ardaerzin Dec 31, 2025
adae343
Refactor TestcasesTableNew to use centralized testcase entity store i…
ardaerzin Dec 31, 2025
88b0321
Refactor TestsetDrawer and entity state management to use centralized…
ardaerzin Dec 31, 2025
75905df
Refactor DrillInView components to use centralized entity controller …
ardaerzin Dec 31, 2025
a4a0e3e
Refactor LoadTestsetModal and related components to use centralized t…
ardaerzin Dec 31, 2025
f2d0cd2
Refactor EvaluatorVariantModal and DebugSection to use centralized re…
ardaerzin Dec 31, 2025
5e3a0f4
Refactor scenarioTestcase atoms to use centralized testcase controlle…
ardaerzin Dec 31, 2025
07f4e18
Refactor ReferenceLabels and TestsetCells to use centralized revision…
ardaerzin Dec 31, 2025
e6d9a76
Add Entity Controller Pattern documentation to AGENTS.md with compreh…
ardaerzin Dec 31, 2025
13f9214
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Dec 31, 2025
c416cd8
Refactor DataPreviewEditor to use EntityDualViewEditor component for …
ardaerzin Dec 31, 2025
269f886
Merge branch 'main' into frontend-feat/new-testsets-integration
ardaerzin Dec 31, 2025
3f99ce5
v0.73.0
junaway Jan 2, 2026
417dae2
fix migration owner detection
jp-agenta Jan 2, 2026
fc5c4cc
Refactor TestcaseEditDrawer to persist drill-in navigation path and i…
ardaerzin Jan 2, 2026
2e460fc
Refactor CreateTestsetFromScratch and modal components to use Testset…
ardaerzin Jan 2, 2026
f5b359d
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Jan 2, 2026
5257fa1
Refactor AddToTestsetDrawer to fix cursor loss during mapping input a…
ardaerzin Jan 2, 2026
bec26bf
Refactor TraceReferences to pass testset revision ID to TestsetTag fo…
ardaerzin Jan 2, 2026
3d96395
Refactor selectTestsetAtom to ensure revision selection is always cle…
ardaerzin Jan 2, 2026
f8a0ae6
Remove auto-generated commit message filtering to display all commit …
ardaerzin Jan 2, 2026
f4856d1
Refactor CommitMessageCell to remove commented-out code that filtered…
ardaerzin Jan 2, 2026
deb0d96
Refactor LoadTestsetModal to fix modal body height and flex behavior …
ardaerzin Jan 2, 2026
2f37d39
Refactor column visibility locking to support explicit columnVisibili…
ardaerzin Jan 2, 2026
36b9e81
Filter out v0 placeholder revisions from testset revision lists and a…
ardaerzin Jan 2, 2026
986e550
Refactor testcases search to use debounced setter and remove search t…
ardaerzin Jan 2, 2026
7bd3073
Add ag.data path prefix handling for trace span entity navigation in …
ardaerzin Jan 2, 2026
f3309fd
Refactor DrillInContent to remove unused props and fix empty path han…
ardaerzin Jan 2, 2026
4f8e077
Add markdown preview toggle to DrillInFieldHeader for string fields w…
ardaerzin Jan 2, 2026
35b2d5d
Add commit message support for new testset creation in AddToTestsetDr…
ardaerzin Jan 2, 2026
5f01c15
Add instructions for Claude in a new markdown file
mmabrouk Jan 3, 2026
9dc2599
feat(docker): add multi-instance support to dev compose files
mmabrouk Jan 3, 2026
a8986d6
fix(docker): correct Traefik port mapping in OSS gh compose
mmabrouk Jan 3, 2026
3d13f61
Delete hosting/docker-compose/ee/env.ee.dev.instance.example
mmabrouk Jan 3, 2026
fc49664
Fix __dedup_id__
jp-agenta Jan 4, 2026
09a16d3
Fix sidebar
jp-agenta Jan 4, 2026
29648d6
Add trailing slash to testsets API endpoint in cloneTestset function
ardaerzin Jan 5, 2026
fa73ef5
Add settingsDropdownMenuItems prop to TestcasesTableShell and pass me…
ardaerzin Jan 5, 2026
7a49469
fix patch as delta
jp-agenta Jan 5, 2026
b1d9d3e
Merge branch 'frontend-feat/new-testsets-integration' of github.com:A…
jp-agenta Jan 5, 2026
5ba6d05
preserve ordering upon commit
jp-agenta Jan 5, 2026
f32a7ba
second half of fix
jp-agenta Jan 5, 2026
e8b4653
reduce memory requirements of delta commit from x3 to x2 , still O(n)
jp-agenta Jan 5, 2026
c02e397
Add ImportTestsetRevisionModal component with file upload support for…
ardaerzin Jan 5, 2026
f80c7f2
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Jan 5, 2026
d1160b6
fix fetch/query testcases
jp-agenta Jan 5, 2026
917bf86
Merge branch 'frontend-feat/new-testsets-integration' of github.com:A…
jp-agenta Jan 5, 2026
64ec605
Merge branch 'main' into release/v0.73.0
jp-agenta Jan 5, 2026
82baa27
Merge branch 'release/v0.73.0' into frontend-feat/new-testsets-integr…
jp-agenta Jan 5, 2026
08b0570
Remove client-side CSV export from TestcasesTableShell and exclude ac…
ardaerzin Jan 5, 2026
d19d89d
Rename actions column key to __ui_actions__ to avoid conflict with us…
ardaerzin Jan 5, 2026
9ca8486
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Jan 5, 2026
61f1907
Merge pull request #3351 from Agenta-AI/fix/docker-compose-gh-traefik…
junaway Jan 5, 2026
75efc91
Update CLAUDE.md
junaway Jan 5, 2026
99d8f6d
Merge pull request #3347 from Agenta-AI/chore/claude-md
ashrafchowdury Jan 5, 2026
0208d70
Refactor column width calculation to maintain sum constraint and impr…
ardaerzin Jan 5, 2026
4e6b771
larger cleanup
jp-agenta Jan 5, 2026
9b12cf1
remove web ports
jp-agenta Jan 5, 2026
fdec3af
remove redis ports
jp-agenta Jan 5, 2026
058f5bf
Fix COMPOSE_ env var
jp-agenta Jan 5, 2026
1f5c3bb
fix web entrypoints port
jp-agenta Jan 5, 2026
b37c133
minor fix
jp-agenta Jan 5, 2026
15e736c
remove more redis ports
jp-agenta Jan 5, 2026
d1658d9
Merge branch 'fix/larger-docker-compose-cleanup' into feat/docker-com…
jp-agenta Jan 5, 2026
0ac6508
apply ruff
jp-agenta Jan 5, 2026
ba0b205
organize docker compose files
jp-agenta Jan 5, 2026
311584e
header shrink
jp-agenta Jan 5, 2026
1da3afb
header shrink 2
jp-agenta Jan 5, 2026
69e9db8
Change pagination cursor from id to created_at for testcases and blob…
ardaerzin Jan 5, 2026
1f62c0b
remove extra ports
jp-agenta Jan 5, 2026
fdd1374
Apply ESLint autofix formatting changes across multiple components
ardaerzin Jan 5, 2026
66c9dd1
Add custom ICellRendererParams interface to replace ag-grid dependenc…
ardaerzin Jan 5, 2026
564c61b
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Jan 5, 2026
ce85f39
Add text truncation and prevent layout overflow in testset name column
ardaerzin Jan 5, 2026
bd2c1c8
Increase default minimum column width and prioritize default width ov…
ardaerzin Jan 5, 2026
c13c5b3
Fix final diffs
jp-agenta Jan 5, 2026
7f2e29d
Merge pull request #3350 from Agenta-AI/feat/docker-compose-dev-multi…
junaway Jan 5, 2026
6390f94
Merge branch 'release/v0.73.0' into frontend-feat/new-testsets-integr…
jp-agenta Jan 5, 2026
7858e1a
Improve time-based pagination cursor handling for content-hashed IDs
ardaerzin Jan 5, 2026
2c0f1e3
Add oldest/newest timestamp boundaries to WindowingState for time-bas…
ardaerzin Jan 5, 2026
a755cca
Merge branch 'frontend-feat/new-testsets-integration' of https://gith…
ardaerzin Jan 5, 2026
df98370
Merge pull request #3353 from Agenta-AI/frontend-feat/new-testsets-in…
ardaerzin Jan 5, 2026
4726683
Add UUID validation to prevent SSRF attacks in testset revision endpo…
ardaerzin Jan 5, 2026
73afd3b
Centralize UUID validation utilities to eliminate code duplication ac…
ardaerzin Jan 5, 2026
83f0470
Add UUID validation to testset revision ID parameter to prevent SSRF …
ardaerzin Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
113 changes: 113 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,119 @@ export const createItemAtom = atom(

---

### Entity Controller Pattern

For entities requiring CRUD operations with draft state, loading indicators, and cache management, use the **Entity Controller Pattern**. This provides a unified API that abstracts multiple atoms into a single cohesive interface.

**Full documentation:** `web/oss/src/state/entities/shared/README.md`

**Quick Decision - Which API to Use:**

| Need | API | Returns |
|------|-----|---------|
| Full state + actions | `entity.controller(id)` | `[state, dispatch]` |
| Data only | `entity.selectors.data(id)` | `T \| null` |
| Loading/error | `entity.selectors.query(id)` | `QueryState<T>` |
| Dirty indicator | `entity.selectors.isDirty(id)` | `boolean` |
| Single cell (tables) | `entity.selectors.cell({id, col})` | `unknown` |
| Dispatch in atoms | `entity.actions.update/discard` | Write atom |

**Basic Usage:**

```typescript
import {testcase} from "@/oss/state/entities/testcase"

// Full controller - state + dispatch
function TestcaseEditor({testcaseId}: {testcaseId: string}) {
const [state, dispatch] = useAtom(testcase.controller(testcaseId))

if (state.isPending) return <Skeleton />
if (!state.data) return <NotFound />

return (
<Input
value={state.data.input}
onChange={(e) => dispatch({
type: "update",
changes: {input: e.target.value}
})}
/>
)
}

// Fine-grained selector - only re-renders on data change
function TestcaseDisplay({testcaseId}: {testcaseId: string}) {
const data = useAtomValue(testcase.selectors.data(testcaseId))
if (!data) return null
return <div>{data.input}</div>
}
```

**Reading Multiple Entities:**

```typescript
// Create a derived atom that subscribes to all selected entities
const useMultipleTestcases = (ids: string[]) => {
const dataAtom = useMemo(
() => atom((get) => ids.map(id => get(testcase.selectors.data(id))).filter(Boolean)),
[ids.join(",")]
)
return useAtomValue(dataAtom)
}
```

**Anti-Patterns to Avoid:**

```typescript
// BAD - No reactivity, snapshot read
const globalStore = getDefaultStore()
const data = globalStore.get(testcase.selectors.data(id))

// GOOD - Proper subscription
const data = useAtomValue(testcase.selectors.data(id))
```

```typescript
// BAD - Variable shadowing
import {testcase} from "@/oss/state/entities/testcase"
const {testcase, ...rest} = entity // Shadows import!

// GOOD - Rename destructured variable
const {testcase: testcaseField, ...rest} = entity
```

**Available Controllers:**

| Entity | Import | Description |
|--------|--------|-------------|
| Testcase | `testcase` from `@/oss/state/entities/testcase` | Testcase with cell subscriptions + drill-in |
| Trace Span | `traceSpan` from `@/oss/state/entities/trace` | Trace span with attribute drill-in |
| Revision | `revision` from `@/oss/state/entities/testset` | Revision with column management |
| Testset | `testset` from `@/oss/state/entities/testset` | Testset with list/detail queries |

**Architecture:**

```
┌─────────────────────────────────────────────────────────────────┐
│ Controller │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Query │ │ Draft │ │ isDirty │ │
│ │ (server) │→ │ (local) │→ │ (derived) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ↓ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Entity Atom (merged) ││
│ └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘
```

- **Query atoms** are the single source of truth for server data
- **Draft atoms** store local changes only
- **Entity atoms** merge: `query.data + draft → merged entity`
- **Dirty detection** compares draft to server data

---

**Legacy: SWR Pattern (avoid for new code)**

We previously used SWR with Axios for data fetching. This pattern is still present in older code but should not be used for new features.
Expand Down
7 changes: 7 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Instructions for Claude

Please read and follow all instructions in:

@AGENTS.md

Project conventions, guidelines, and best practices are documented there.
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,10 @@ async def _fetch_project_owner(
WorkspaceMemberDBE.role == "owner",
ProjectDBE.id == project_id,
)
.order_by(WorkspaceMemberDBE.created_at.asc())
)
result = await connection.execute(workspace_owner_query)
owner = result.scalar_one_or_none()
owner = result.scalars().first()
return owner


Expand Down
Loading
Loading