Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
7f15b7f
Add unit tests for utility functions and configuration for Vitest
bekossy Jun 3, 2026
a1ded4a
chore(test): gitignore test-results and coverage dirs for shared and …
bekossy Jun 3, 2026
6b8a802
fix(test): address PR review comments — typed fixtures, falsy-root co…
bekossy Jun 3, 2026
a85e135
Merge branch 'main' into fe-test/add-unit-tests-shared-annotation-pac…
ardaerzin Jun 4, 2026
724f827
v0.102.0
junaway Jun 4, 2026
6c32b05
fix(frontend): re-enable full-page playground for evaluator workflows
ardaerzin May 28, 2026
becb486
fix(frontend): address PR #4474 review comments
ardaerzin May 28, 2026
4eb3071
Merge branch 'main' into fe-fix/app-workflow-router-unification-regre…
ardaerzin May 28, 2026
d3bf2fe
Merge branch 'main' into fe-fix/app-workflow-router-unification-regre…
ardaerzin May 29, 2026
1ac6771
Merge branch 'release/v0.100.7' into fe-fix/app-workflow-router-unifi…
junaway May 29, 2026
12be989
Merge branch 'release/v0.100.7' into fe-fix/app-workflow-router-unifi…
ardaerzin May 31, 2026
f6d1100
Merge branch 'main' into fe-fix/app-workflow-router-unification-regre…
ardaerzin Jun 2, 2026
52e4ff4
fix(playground): filter root-node inputs by entity schema (#4525)
ardaerzin Jun 2, 2026
d925746
fix(playground-ui): dark-mode classes on evaluator info callout
ardaerzin Jun 2, 2026
970c18c
fix(playground-ui): readable dark-mode text on evaluator callout
ardaerzin Jun 2, 2026
1d8cddc
fix(playground): close depth>0 leak path for stale chat fields (#4525)
ardaerzin Jun 2, 2026
c4a2f3a
chore(playground): log when input-schema filter falls back or strips …
ardaerzin Jun 2, 2026
ea7da19
fix(playground): reconcile testcase rows when primary entity swaps (#…
ardaerzin Jun 2, 2026
96b2492
fix(playground): resolve input allow-list from inputPorts, not inputS…
ardaerzin Jun 3, 2026
d0442d3
fix(playground): clean shared testcase row before run, not just app i…
ardaerzin Jun 3, 2026
de548da
fix(playground): clean stale row on app swap + drop diagnostic logs (…
ardaerzin Jun 3, 2026
07bc27d
fix(frontend): render markdown headings by level instead of uppercasing
mmabrouk Jun 4, 2026
b5d2676
fix(frontend): remove copyright and social-links footer bar
mmabrouk Jun 4, 2026
a8529a4
fix(frontend): correct playground message text/markdown view and styling
mmabrouk Jun 5, 2026
f0d60d1
feat(frontend): add Run-on mode selector to the evaluator playground
mmabrouk Jun 5, 2026
8c270b5
fix(frontend): drop now-unused StyleProps cast in Layout
mmabrouk Jun 5, 2026
66248d2
Merge branch 'release/v0.102.0' into fe-test/add-unit-tests-shared-an…
bekossy Jun 5, 2026
1b80a4e
test(@agenta/shared): align template-variable tests with permissive J…
bekossy Jun 5, 2026
f91b707
Merge pull request #4550 from Agenta-AI/fix/remove-footer-bar
bekossy Jun 5, 2026
dbedb44
Merge pull request #4548 from Agenta-AI/fix/markdown-heading-styles
bekossy Jun 5, 2026
72c020f
Merge pull request #4553 from Agenta-AI/fe-feat/evaluator-run-on-mode
mmabrouk Jun 5, 2026
5e2ccc6
fix(frontend): coerce shared view mode to a valid message mode
mmabrouk Jun 5, 2026
140bcb4
feat(frontend): bring the Run-on modes to the evaluator creation drawer
mmabrouk Jun 5, 2026
de0fdc8
fix(frontend): bind evaluator run controls to the default jotai store
mmabrouk Jun 5, 2026
3a7df2c
fix(evaluator): guard local-draft ids in refs + filter non-playground…
ardaerzin Jun 5, 2026
b29b103
chore(evaluator): TEMP [B-repro] diagnostics for re-select-app QA bug
ardaerzin Jun 5, 2026
7312e6f
fix(evaluator): reflect reconnect in UI after disconnect (#4474 QA)
ardaerzin Jun 5, 2026
e2ae75c
fix(playground): strip non-UUID reference ids from invoke body (#4474…
ardaerzin Jun 5, 2026
12928a4
feat(playground): surface trace-link icon on evaluator result cards (…
ardaerzin Jun 5, 2026
754eead
feat(evaluations): surface evaluations of an evaluator on its Evaluat…
ardaerzin Jun 6, 2026
310344f
fix(evaluators): hide deploy actions on evaluator workflows
ardaerzin Jun 6, 2026
455c2b8
fix(apps): align Archived Apps layout with Archived Evaluators
ardaerzin Jun 6, 2026
9b50b49
fix(evaluations): support evaluator workflows in the app-scoped New E…
ardaerzin Jun 6, 2026
32914ee
Merge pull request #4474 from Agenta-AI/fe-fix/app-workflow-router-un…
mmabrouk Jun 8, 2026
e18b038
Merge pull request #4554 from Agenta-AI/fix/playground-message-view-mode
mmabrouk Jun 8, 2026
3a6319e
Merge branch 'release/v0.102.0' into fe-feat/evaluator-drawer-run-on
mmabrouk Jun 8, 2026
e585887
Merge pull request #4539 from Agenta-AI/fe-test/add-unit-tests-shared…
bekossy Jun 8, 2026
4d9b1c0
fix(evaluators): list all automatic evaluators in the sidebar switcher
ardaerzin Jun 8, 2026
a2dc2f3
ci: stop PR bot over-closing on missing checklist + reopen loop
mmabrouk Jun 8, 2026
52d6389
Merge pull request #4581 from Agenta-AI/ci/pr-contribution-relax
mmabrouk Jun 8, 2026
2e83559
fix(frontend): run-on gate for the workflow revision evaluator drawer
mmabrouk Jun 8, 2026
fa7b3be
Merge pull request #4557 from Agenta-AI/fe-feat/evaluator-drawer-run-on
mmabrouk Jun 8, 2026
2b78963
Merge branch 'main' into release/v0.102.0
bekossy Jun 8, 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
24 changes: 12 additions & 12 deletions .github/workflows/13-check-pr-contribution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ name: "13 - check PR contribution"
# It never checks out or runs the PR's code, so this is safe.

on:
# No 'reopened': a maintainer who manually reopens a flagged PR should win,
# otherwise the reopen event would immediately re-close it. Auto-reopen on a
# fixed description still works through 'edited' and 'synchronize'.
pull_request_target:
types: [opened, edited, synchronize, reopened, ready_for_review]
types: [opened, edited, synchronize, ready_for_review]
workflow_dispatch:
inputs:
pr_number:
Expand Down Expand Up @@ -134,27 +137,24 @@ jobs:

const reasons = [];

// 1) Template is present and filled.
const headers = ['Summary', 'Testing', 'Demo', 'Checklist'];
const lower = body.toLowerCase();
const missing = headers.filter((h) => !lower.includes('## ' + h.toLowerCase()));
// 1) The PR is described. We only require a non-empty Summary, not the
// full template. Missing Testing/Checklist sections do not close a PR;
// a thorough PR with a demo should never be closed over a checklist.
if (!body.trim()) {
reasons.push('The pull request description is empty. Please fill in the PR template.');
} else if (missing.length) {
reasons.push('The description is missing required sections (' + missing.join(', ') + '). Please use the PR template without removing its sections.');
} else if (!section('Summary')) {
reasons.push('The **Summary** section is empty. Describe what changed and why.');
reasons.push('The **Summary** section is missing or empty. Describe what changed and why using the PR template.');
}

// 2) Demo is present for functional changes.
// 2) Demo is present for functional changes. Scan the whole body, not
// just the Demo section, so a screenshot or video placed anywhere counts.
const files = await github.paginate(github.rest.pulls.listFiles, {
owner, repo, pull_number: number, per_page: 100,
});
const functional = files.some((f) => !EXEMPT.some((r) => r.test(f.filename)));
const demo = section('Demo') || '';
const hasMedia = MEDIA.some((r) => r.test(demo));
const hasMedia = MEDIA.some((r) => r.test(body));
if (functional && !hasMedia) {
reasons.push('This PR changes functional code (SDK, API, or frontend) but the **Demo** section has no screenshot or video. A short demo recording is required. Only test-only, docs-only, or chore changes may mark Demo as N/A.');
reasons.push('This PR changes functional code (SDK, API, or frontend) but includes no demo. Add a screenshot or short video of the change. Only test-only, docs-only, or chore changes may skip it.');
}

async function upsertComment(text) {
Expand Down
2 changes: 1 addition & 1 deletion api/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "api"
version = "0.101.1"
version = "0.102.0"
description = "Agenta API"
requires-python = ">=3.11,<3.14"
authors = [
Expand Down
6 changes: 3 additions & 3 deletions api/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion clients/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agenta-client"
version = "0.101.1"
version = "0.102.0"
description = "Fern-generated Python client for the Agenta API."
requires-python = ">=3.11,<3.14"
authors = [
Expand Down
2 changes: 1 addition & 1 deletion clients/python/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions hosting/kubernetes/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: agenta
description: A Helm chart for deploying Agenta (OSS or EE) on Kubernetes
type: application
version: 0.101.1
appVersion: "v0.101.1"
version: 0.102.0
appVersion: "v0.102.0"
keywords:
- agenta
- llm
Expand Down
2 changes: 1 addition & 1 deletion sdks/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agenta"
version = "0.101.1"
version = "0.102.0"
description = "The SDK for agenta is an open-source LLMOps platform."
readme = "README.md"
requires-python = ">=3.11,<3.14"
Expand Down
4 changes: 2 additions & 2 deletions sdks/python/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion services/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "services"
version = "0.101.1"
version = "0.102.0"
description = "Agenta Services (Chat & Completion)"
requires-python = ">=3.11,<3.14"
authors = [
Expand Down
6 changes: 3 additions & 3 deletions services/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion web/ee/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agenta/ee",
"version": "0.101.1",
"version": "0.102.0",
"private": true,
"engines": {
"node": "24.x"
Expand Down
2 changes: 1 addition & 1 deletion web/oss/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agenta/oss",
"version": "0.101.1",
"version": "0.102.0",
"private": true,
"engines": {
"node": "24.x"
Expand Down
11 changes: 11 additions & 0 deletions web/oss/src/components/EvaluationRunsTablePOC/atoms/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ export interface EvaluationRunsTableOverrides {
evaluationKind: EvaluationRunKind
includePreview: boolean
scope?: TableScope
/**
* Over-fetch successive server pages until a full page of subject runs is
* collected. Set by fixed-size, non-paginating surfaces (the Overview
* summary) so the subject filter doesn't leave them falsely empty.
*/
fillToLimit?: boolean
}

type TableScope = "app" | "project"
Expand All @@ -34,6 +40,7 @@ export interface EvaluationRunsTableContext {
storageKey: string
createSupported: boolean
createEvaluationType: "auto" | "human" | "online" | "custom"
fillToLimit: boolean
}

export const defaultEvaluationRunsTableOverrides: EvaluationRunsTableOverrides = {
Expand Down Expand Up @@ -66,6 +73,7 @@ export const evaluationRunsTableContextAtom = atom<EvaluationRunsTableContext>((

const evaluationKind = overrides.evaluationKind
const includePreview = overrides.includePreview
const fillToLimit = overrides.fillToLimit ?? false

const projectId =
overrides.projectIdOverride ?? identifiers.projectId ?? fallbackProjectId ?? null
Expand Down Expand Up @@ -130,6 +138,7 @@ export const evaluationRunsTableContextAtom = atom<EvaluationRunsTableContext>((
storageKey,
createSupported,
createEvaluationType,
fillToLimit,
}

return context
Expand Down Expand Up @@ -188,6 +197,7 @@ export const evaluationRunsMetaContextSliceAtom = selectAtom(
includePreview: context.includePreview,
evaluationKind: context.evaluationKind,
derivedPreviewFlags: context.derivedPreviewFlags,
fillToLimit: context.fillToLimit,
}),
(a, b) =>
a.projectId === b.projectId &&
Expand All @@ -196,6 +206,7 @@ export const evaluationRunsMetaContextSliceAtom = selectAtom(
a.activeAppId === b.activeAppId &&
a.includePreview === b.includePreview &&
a.evaluationKind === b.evaluationKind &&
a.fillToLimit === b.fillToLimit &&
arrayEquals(a.effectiveAppIds, b.effectiveAppIds) &&
shallowEqualFlags(a.derivedPreviewFlags, b.derivedPreviewFlags),
)
Expand Down
Loading
Loading