Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
b068e9f
feat(entities): add annotation entity module
ardaerzin Mar 11, 2026
2e76693
feat(entities): add evaluationQueue entity module
ardaerzin Mar 11, 2026
323d8ec
feat(entities): add evaluationRun entity module
ardaerzin Mar 11, 2026
6af7a03
feat(entities): add simpleQueue entity module
ardaerzin Mar 11, 2026
b695e61
feat(entities): add queue controller and evaluator templates
ardaerzin Mar 11, 2026
a51887e
feat(entities): update shared user, trace, and evaluator exports
ardaerzin Mar 11, 2026
3d84d5b
feat(annotation): add @agenta/annotation package
ardaerzin Mar 11, 2026
2ec93e8
feat(annotation-ui): add @agenta/annotation-ui package
ardaerzin Mar 11, 2026
17ff98b
feat(ui): add cell renderers and PageLayout component
ardaerzin Mar 11, 2026
79672c9
feat(entity-ui): update selection adapters and UnifiedEntityPicker
ardaerzin Mar 11, 2026
e7d2ec8
feat(oss): add annotation pages and components
ardaerzin Mar 11, 2026
c27afbe
feat(oss): add annotations to sidebar navigation
ardaerzin Mar 11, 2026
b149113
refactor(oss): update observability and trace drawer components
ardaerzin Mar 11, 2026
1126407
refactor(oss): update evaluation components to use shared metric util…
ardaerzin Mar 11, 2026
322c250
refactor(oss): update Layout and component imports
ardaerzin Mar 11, 2026
0f0e380
refactor(oss): update Playground and page components
ardaerzin Mar 11, 2026
886a4e6
chore(oss): update misc pages and config
ardaerzin Mar 11, 2026
ea2e2ec
chore: update package dependencies and build config
ardaerzin Mar 11, 2026
0a63af7
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 11, 2026
413ef89
fix lint
ashrafchowdury Mar 11, 2026
6b9644a
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 12, 2026
a0a8067
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 12, 2026
1cf2cc5
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 13, 2026
965dd38
Merge branch 'frontend-feat/annotation-queues-checkpoint-1' of https:…
ashrafchowdury Mar 13, 2026
55a602b
adjusted ui
ashrafchowdury Mar 16, 2026
0c932e3
Merge branch 'main' of https://github.com/Agenta-AI/agenta into front…
ashrafchowdury Mar 16, 2026
fc2eeb3
added testcase support
ashrafchowdury Mar 16, 2026
28bc7be
fix lint
ashrafchowdury Mar 16, 2026
99922db
fix lint
ashrafchowdury Mar 16, 2026
07b0b07
filter dedup_id
ashrafchowdury Mar 16, 2026
a5658b7
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 17, 2026
57d4ca0
implemented testset annotation and sync back to testset
ashrafchowdury Mar 17, 2026
f8adc87
fix build error
ashrafchowdury Mar 17, 2026
1bb072c
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ashrafchowdury Mar 17, 2026
74a0207
refactor: Merge evaluation run flags, refine annotation link and refe…
ashrafchowdury Mar 17, 2026
df5cfcb
Refactor: streamline annotation references handling and remove redund…
ashrafchowdury Mar 17, 2026
a7a1cd9
refactor: Update evaluation run flags by merging explicit changes wit…
ashrafchowdury Mar 17, 2026
85cbfee
feat: exclude successful queues from the add-to-queue popover and add…
ashrafchowdury Mar 17, 2026
b8d09fd
fix
ashrafchowdury Mar 17, 2026
4abc65b
feat: Introduce `AddActionsDropdown` to consolidate "Add to testset" …
ashrafchowdury Mar 17, 2026
303d746
feat: Refactor testcase actions into new `AddActionsDropdown` and `Te…
ashrafchowdury Mar 17, 2026
a4936ab
improved ui
ashrafchowdury Mar 17, 2026
7e5fe69
added evaluator selector with an enhanced entity picker supporting hi…
ashrafchowdury Mar 17, 2026
d524df4
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ashrafchowdury Mar 17, 2026
6008a0a
Incorporate evaluator names as column keys for testset synchronizatio…
ashrafchowdury Mar 17, 2026
7e0fa22
scenario status filtering and navigation in annotation sessions, and …
ashrafchowdury Mar 18, 2026
85078b1
Merge branch 'frontend-feat/annotation-queues-checkpoint-1' of https:…
ardaerzin Mar 18, 2026
90b50cb
feat: Implement bulk and single deletion for simple and annotation qu…
ashrafchowdury Mar 18, 2026
12015b7
Merge branch 'frontend-feat/annotation-queues-checkpoint-1' of https:…
ashrafchowdury Mar 18, 2026
034607b
feat: Enhance `extractOutputs` to provide detailed failure informatio…
ashrafchowdury Mar 18, 2026
ecbf35a
focus status filter with "hide completed" and "auto next" switches fo…
ashrafchowdury Mar 18, 2026
c243d78
scenario loading states and robustly extract trace/testcase IDs from…
ashrafchowdury Mar 19, 2026
bf98aa7
replace AddActionsDropdown with a dedicated "Add row" button and a ne…
ashrafchowdury Mar 19, 2026
5418397
add fallback data display to annotation cells and enforce metric comp…
ashrafchowdury Mar 19, 2026
12e8120
stabilize annotation session scenario order and refine navigation log…
ashrafchowdury Mar 19, 2026
d20bb25
simple queue cache invalidation to use QueryClient directly to preven…
ashrafchowdury Mar 19, 2026
3ab310d
refactor: move AllCaughtUp component check to top-level render logic
ashrafchowdury Mar 19, 2026
bf7cf1b
add data formatting utilities and integrate them into the table's exp…
ashrafchowdury Mar 23, 2026
a44658a
refactor: Update `openTraceDetail` to accept an object parameter and …
ashrafchowdury Mar 23, 2026
060e64c
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 23, 2026
19b0ed3
refactor: await step result upserts during annotation submission and …
ardaerzin Mar 23, 2026
738b703
refactor: enhance annotation trace ID resolution with suffix-based st…
ardaerzin Mar 23, 2026
92ef740
refactor: format long debug console.log statements in scenarioAnnotat…
ardaerzin Mar 23, 2026
78a6cab
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 23, 2026
f041139
fix(annotation): flatten evaluator outputs in testset sync preview
ardaerzin Mar 24, 2026
62ec04e
fix(entities): invalidate evaluator list cache on workflow/evaluator …
ardaerzin Mar 24, 2026
66a6670
Merge branch 'main' into frontend-feat/annotation-queues-checkpoint-1
ardaerzin Mar 24, 2026
f9e23cd
ntroduce and use `useEnrichedHumanEvaluatorAdapter` for selecting hum…
ashrafchowdury Mar 25, 2026
8c9e28d
data export helpers for the scenario list view
ashrafchowdury Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 7 additions & 14 deletions api/oss/src/core/annotations/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
first_link,
parse_simple_trace,
)
from oss.src.core.tracing.dtos import (
SimpleTraceReferences,
)
from oss.src.core.annotations.types import (
AnnotationOrigin,
AnnotationKind,
Expand Down Expand Up @@ -378,10 +381,6 @@ async def edit(
is_evaluation=annotation.kind == AnnotationKind.EVAL,
)

annotation_references = AnnotationReferences(
**annotation.references.model_dump(),
)

annotation_link = await self._edit_annotation(
organization_id=organization_id,
project_id=project_id,
Expand All @@ -395,8 +394,8 @@ async def edit(
#
data=annotation_edit.data,
#
references=annotation_references,
links=annotation.links,
references=annotation_edit.references,
links=annotation_edit.links,
)

if annotation_link is None:
Expand Down Expand Up @@ -466,13 +465,7 @@ async def query(
annotation_tags = annotation.tags if annotation else None
annotation_meta = annotation.meta if annotation else None

annotation_references = (
AnnotationReferences(
**annotation.references.model_dump(),
)
if annotation and annotation.references
else None
)
annotation_references = annotation.references if annotation else None

_annotation_links = annotation.links if annotation else None

Expand Down Expand Up @@ -734,7 +727,7 @@ async def _query_annotation(
tags: Optional[Tags] = None,
meta: Optional[Meta] = None,
#
references: Optional[AnnotationReferences] = None,
references: Optional[SimpleTraceReferences] = None,
links: Optional[AnnotationLinks] = None,
#
annotation_links: Optional[List[Link]] = None,
Expand Down
2 changes: 1 addition & 1 deletion api/oss/src/core/evaluations/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -3705,7 +3705,7 @@ def _parse_queue(
description=queue.description,
#
created_at=queue.created_at,
updated_at=queue.updated_at,
updated_at=queue.updated_at or queue.created_at,
deleted_at=queue.deleted_at,
created_by_id=queue.created_by_id,
updated_by_id=queue.updated_by_id,
Expand Down
2 changes: 2 additions & 0 deletions api/oss/src/core/tracing/dtos.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,8 @@ class SimpleTraceEdit(BaseModel):
meta: Optional[Meta] = None

data: Data
references: Optional[SimpleTraceReferences] = None
links: Optional[SimpleTraceLinks] = None


class SimpleTraceQuery(BaseModel):
Expand Down
12 changes: 10 additions & 2 deletions api/oss/src/dbs/postgres/evaluations/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ async def edit_run(
return None

run_flags = run_dbe.flags or {}
base_flags = EvaluationRunFlags(**run_flags)

if run_flags.get("is_closed", False):
raise EvaluationClosedConflict(
Expand All @@ -294,7 +295,10 @@ async def edit_run(

run_references = edit_run_references(run)

run.flags = edit_run_flags(run)
run.flags = edit_run_flags(
run,
base_flags=base_flags,
)

run_dbe = edit_dbe_from_dto(
dbe=run_dbe,
Expand Down Expand Up @@ -348,6 +352,7 @@ async def edit_runs(

for run_dbe in run_dbes:
run_flags = run_dbe.flags or {}
base_flags = EvaluationRunFlags(**run_flags)

if run_flags.get("is_closed", False):
raise EvaluationClosedConflict(
Expand All @@ -364,7 +369,10 @@ async def edit_runs(

run_references = edit_run_references(run)

run.flags = edit_run_flags(run)
run.flags = edit_run_flags(
run,
base_flags=base_flags,
)

run_dbe = edit_dbe_from_dto(
dbe=run_dbe,
Expand Down
23 changes: 18 additions & 5 deletions api/oss/src/dbs/postgres/evaluations/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,24 @@ def query_run_references(

def _make_run_flags(
run: Optional[Union[EvaluationRun, EvaluationRunEdit]] = None,
*,
base_flags: Optional[EvaluationRunFlags] = None,
) -> Optional[EvaluationRunFlags]:
flags = EvaluationRunFlags()
if not run:
return base_flags.model_copy(deep=True) if base_flags else EvaluationRunFlags()

if not run or not run.data or not run.data.steps:
return flags
flags = base_flags.model_copy(deep=True) if base_flags else EvaluationRunFlags()

flags = run.flags or EvaluationRunFlags()
if run.flags:
explicit_updates = {
field_name: getattr(run.flags, field_name)
for field_name in run.flags.model_fields_set
}
if explicit_updates:
flags = flags.model_copy(update=explicit_updates)

if not run.data or not run.data.steps:
return flags

flags.has_queries = False
flags.has_testsets = False
Expand Down Expand Up @@ -131,5 +142,7 @@ def create_run_flags(

def edit_run_flags(
run: Optional[EvaluationRunEdit] = None,
*,
base_flags: Optional[EvaluationRunFlags] = None,
) -> Optional[EvaluationRunFlags]:
return _make_run_flags(run)
return _make_run_flags(run, base_flags=base_flags)
2 changes: 2 additions & 0 deletions web/ee/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ const config = {
"@agenta/entity-ui",
"@agenta/playground",
"@agenta/playground-ui",
"@agenta/annotation",
"@agenta/annotation-ui",
],
},
typescript: {
Expand Down
2 changes: 2 additions & 0 deletions web/ee/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
"types:watch": "tsc -w"
},
"dependencies": {
"@agenta/annotation": "workspace:../packages/agenta-annotation",
"@agenta/annotation-ui": "workspace:../packages/agenta-annotation-ui",
"@agenta/entities": "workspace:../packages/agenta-entities",
"@agenta/entity-ui": "workspace:../packages/agenta-entity-ui",
"@agenta/oss": "workspace:../oss",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import AnnotationSessionPage from "@agenta/oss/src/pages/w/[workspace_id]/p/[project_id]/annotations/[queue_id]"

export default AnnotationSessionPage
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import AnnotationQueuesPage from "@agenta/oss/src/pages/w/[workspace_id]/p/[project_id]/annotations"

export default AnnotationQueuesPage
4 changes: 4 additions & 0 deletions web/oss/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ const COMMON_CONFIG: NextConfig = {
"@agenta/entity-ui",
"@agenta/playground",
"@agenta/playground-ui",
"@agenta/annotation",
"@agenta/annotation-ui",
// Icon libraries - ensure tree-shaking works for individual icon imports
"@phosphor-icons/react",
"lucide-react",
Expand All @@ -78,6 +80,8 @@ const COMMON_CONFIG: NextConfig = {
"@agenta/entity-ui",
"@agenta/playground",
"@agenta/playground-ui",
"@agenta/annotation",
"@agenta/annotation-ui",
...(!isDevelopment
? [
"rc-util",
Expand Down
2 changes: 2 additions & 0 deletions web/oss/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
"types:watch": "tsc -w"
},
"dependencies": {
"@agenta/annotation": "workspace:../packages/agenta-annotation",
"@agenta/annotation-ui": "workspace:../packages/agenta-annotation-ui",
"@agenta/entities": "workspace:../packages/agenta-entities",
"@agenta/entity-ui": "workspace:../packages/agenta-entity-ui",
"@agenta/playground": "workspace:../packages/agenta-playground",
Expand Down
Loading
Loading