Skip to content

[release] v0.112.0 - #5827

Open
github-actions[bot] wants to merge 93 commits into
mainfrom
release/v0.112.0
Open

[release] v0.112.0#5827
github-actions[bot] wants to merge 93 commits into
mainfrom
release/v0.112.0

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

New version v0.112.0 in

  • web
    • web/oss
    • web/ee
  • services
  • api
  • sdks
    • sdks/python
  • clients
    • clients/python
    • clients/typescript
  • kubernetes
    • kubernetes/helm

ardaerzin and others added 13 commits August 6, 2026 10:34
…expose its last message

Sessions started by an automation carry origin and trigger references, and the list hides them by default (origin filter). The list also filters by liveness and an explicit id set, and each session can report its last message for previews.
PanelSurface, PanelScroll, PanelSection and PANEL_ACTION_CLASS graduate from the oss app into @agenta/ui's presentational layer so every surface (and later mobile) shares one section language. The composer fill on RichChatInput rides along. The sessions-packages plan doc records the lane decisions.
Filters (mode/include semantics), pins, the infinite list query, row helpers (title, status, preview, trigger), the SessionRowVm view-model, and the grouping hooks useSessionsList/useSessionCardList move into a headless package with zero UI imports (eslint-enforced). The session entity keeps what it owns: schema, listOptions, rowStatus and the query itself in @agenta/entities/session.
…antd-free

SessionRow (VM-driven, neutral menu shape, revealActionsOnHover for touch), the list states, group header, pager, and the four filter controls bound to useSessionFilters. Anything not yet portable (the agent picker) arrives as a slot. Eslint bans antd and the @agenta/ui root barrel — subpaths only. timeAgo graduates to @agenta/shared/utils before it grows a third copy.
AgentCard takes a neutral AgentCardData plus callbacks, with the data-connected cells arriving as activity/owner slots; the avatar colour hashes the workflow id, not the name. NextTriggersSection reads trigger data via @agenta/entities/gatewayTrigger and takes display names as an agentNames map. The antd ban is eslint-scoped to src/agent/**. UsageSummary and NewAgentButton stay app-side deliberately: a port would leave an empty shell.
…ut the agent

Home becomes a workspace: a task composer, the sessions and automation-runs columns, the agents roster and usage as rail cards, next triggers, and a page-level New agent action. The agent overview gets its configuration, files, sessions and triggers on the same section language. Cross-page sections (UsageSummary, NextTriggers, SeedAttachments, AgentCard, NewAgentButton) move up to components/ for reuse, all composing the packages below — no list or grouping logic lives in the pages.
An upload's optimistic tile is dropped the moment the write lands, and the real
file takes its place from the refetched listing — unless a drive filter hides it
(a dotfile with hidden files off, or a git-ignored .env). The tile then blinked
out into nothing, which reads as a failed upload, and nothing else confirmed the
write: the drive only toasted for downloads.

Every completed batch now toasts, and whatever the filters would have swallowed
is revealed. Hidden-ness is decidable from the path, so it flips before the
toast. Git-ignored-ness is not — the listing simply omits the entry — so the file
is confirmed against the refetched directory, and one still missing from a
settled listing flips the git-ignored toggle, with the toast saying why the view
changed.

The settle rule is pure and tested: it only rules once the destination directory
is loaded and no longer fetching, either from observing the invalidation's own
refetch or after a 1.5s floor when that refetch was too quick to see. A directory
that never loads ages out and is dropped without touching a filter.
…gents

The rail card rendered the whole roster, so a project with many agents pushed
the sessions below the fold. It now sorts by updatedAt (the query's descending
window follows creation) and shows five; the full list stays one click away
behind All agents.
The agents page renders the shared AgentCard grid with a create cell, waiting badges from the session list, and the same column actions as the home roster.
… page

Template cards take the agent card shape, the gallery gets the detail page's rail, and a detail page renders each template from the fields it declares — example session included, honestly labelled. The route is registered in OSS and EE so neither edition 404s.
…rs rail

A render-only SessionsPage over @agenta/sessions' groups and @agenta/sessions-ui's rows, with the filters as a 280px rail (status, mode, archived, search; the agent picker injected as a slot). Pinned and recent sessions surface in the sidebar, session actions work from the list and the session bar, and the routes land in OSS and EE.
…versation

The conversation reads the first-run seed and sends the attachments Home and the overview collected with the opening message. This is the last step of the seeding flow; the composers below already collect into the seed state.
@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
agenta-documentation Error Error Aug 9, 2026 10:05pm

Request Review

@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Aug 9, 2026
ardaerzin and others added 5 commits August 9, 2026 18:50
…t cron names

triggerBoundAgentId reads the bound workflow out of a trigger's references in one place, and the cron describer names a schedule by what it does. GatewaySchedulesSection adopts both.
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Aug 9, 2026
mmabrouk and others added 6 commits August 9, 2026 20:54
f915825 uses baseAppURL in handleSelectTemplate's template literal and dep
array but never obtains it, so next build's type check fails and the web image
does not build - on the release branch and every PR based on it. The repo's
TS lint jobs do not run next build, which is why nothing caught it earlier.
Same useURL() pattern as NewAgentButton and usePlaygroundNavigation.
Behind the baseAppURL type error hid a second image-build breaker from the
same commit: TemplateDetail's markdown renderer imports x-markdown's Latex
plugin, whose CJS build requires katex.min.css - Node evaluates the CSS as
JS during prerender and dies on the leading '.'. ssr:false on the dynamic
import (the settings page's established pattern) keeps the page client-only;
it reads template_key from the client router anyway. Full local next build:
all 44 pages generate.
fix(frontend): give the templates gallery its baseAppURL
The brand row top-aligns with 8px top and left padding instead of centering in
its 48px band, and the wordmark grows from 20px to 22px tall. 99x22 keeps the
SVG's intrinsic 361:80 ratio; the 85x20 box did not match it.
A 22px square with a 16px icon, so the toggle's optical centre sits on the
same line as the resized logo; the old 28px pill rode 3px low against the
top-aligned brand row. Verified by screenshot in expanded, collapsed and
dark states.
Margin, not padding: the first pass converted the row to top-aligned 8px
padding, which moved the logo UP (the 48px row's centring already held it
14px down) and read as no margin at all. Restore the centring and give the
row mt-2/ml-2 so the logo visibly sits 8px further from the top and left.
Collapsed keeps the toggle centred in the rail.
style(frontend): nudge the sidebar brand row (8px top/left, 22px logo)
fix(frontend): session rows match the homepage — pin, status icons, sizes
fix(frontend): shared page gutters and centered max-width column
fix(frontend): home scrolls with the page; the rail stays pinned
feat(frontend): templates pages join the shared layout
feat(frontend): create-agent flow — picking a template IS creating the agent
mmabrouk and others added 9 commits August 9, 2026 23:22
Mahmoud's approved scale (audit artifact 783b0df0): base 12->14 with
line-height 1.6667->1.4286 (the body box stays exactly 20px, so default
and small controls do not grow), titles 20->24/32, fontSizeSM 10->12,
fontSizeLG 14->16, and the ~230 token values that mirror them; Tailwind
xs -> 13/18 (the new secondary step); control ramps to 14/16; and the
per-surface sweep - 15/14.5/13.5/12.5/11.5/11px -> the scale, 10px ->
12px, hero 20->24 (first-run 30 kept), section headings 16/600 both
columns, sidebar nav and switcher on body size. Four @agenta/ui shadcn
parity shims updated to the new antd values so the shared package stays
in parity. Icon/monogram geometry (9px avatars, badge dots) untouched;
61 text-[13px] sites left as-is (13 IS the new secondary step).

181 files. Verified: resolved Tailwind config emits the new ladder, the
generated theme files are byte-identical (fonts never fed them), eslint
zero new findings, 312/312 entity-ui tests, live stack compiles and
serves the new scale.
Without a description the title is one 24px line top-aligned against a
40px avatar, so the name rode high - Mahmoud's report. items-center holds
for the with-description case too (the two-line block centres against the
circle).
The JSX comment sat directly inside the ternary's parenthesised branch,
which must be a single expression - the build broke. And per Mahmoud:
centre the name against the avatar only when there is NO description;
a described card keeps top alignment.
14px regular instead of 16px semibold - the rail's names read louder than
the session rows beside them. The agents-page grid card keeps its heading
weight; there the name IS the card's title.
The switcher lived only in the main and settings scopes' bottom slot, so
entering an agent hid it. The workflow scope mounts the same afterBottom
slot; collapsed behavior comes with the component.
Two more selectors missed by the earlier antd -> Radix migration passes,
both confirmed live against the EE dev stack:

- auto-evaluation/tests.ts's openAutoEvaluationModal matched `.ant-modal`.
  NewEvaluationModal renders through EnhancedModal, a facade over the
  @agenta/ui (Radix) Dialog, so the wrapper is `[data-slot="dialog-content"]`.
  This was failing "should run a single evaluation", "should show an error
  when attempting to create an evaluation with a mismatched testset", and
  "should delete an evaluation run" — the modal itself never matched, so
  every test that opens it timed out at 60s before reaching its own
  assertions.

- providerHelpers' selectMockModel matched `.ant-popover`/`.ant-select`/
  `.ant-select-dropdown` for the playground's model-configure popover and
  its nested model picker. Both are now @agenta/ui (Radix) Popovers
  (useFieldSlots.tsx's Popover wrapping useModelConfigurePopover.tsx, and
  SelectLLMProviderBase's own nested Popover) — matched via
  `[data-slot="popover-content"]`, the trigger's `aria-haspopup="listbox"`,
  and `getByRole("option")` for the list items instead of antd classes.
  This is the shared helper behind most of the playground/observability
  failures: every acceptance test that needs to pick the mock test model
  (all 6 observability "view traces" tests, plus "Should run single view
  variant for chat") failed here before reaching the rest of the test.

Both fixes verified against a live rerun on the EE dev stack: the modal
fix turns "should show an error..." from a 60s .ant-modal timeout into a
14s pass, and the popover fix turns 6/6 observability failures into
passes reaching real trace data (one had a one-off slow-indexing retry,
unrelated to the selector).

Left uninvestigated (confirmed NOT a selector issue, so out of scope
here): "should run a single evaluation" and "should delete an evaluation
run" now advance past the modal into openAutoEvaluationRunFromList's
search-input flow and fail there on a toHaveValue mismatch — looks like a
typing/re-render race, not a stale selector.
The qa-gate-runs outputs carry per-run probe tokens (QA-CWD-*) that trip
secret scanners as generic-api-key hits, and the untracked pile once rode
a blanket commit onto a pushed branch (caught by gitleaks, verified to
contain no real keys - the tokens are the gate's own synthetic sentinels).
Ignoring the directory removes the recurrence path.
feat(frontend): the 14px type scale — one ladder for the whole app
fix(frontend): centre the agent name against its avatar in the rail card
fix(tests): retire the remaining stale antd selectors
…itcher

fix(frontend): project/org switcher inside the agent-scoped sidebar
fix(tests): stop swallowing strict-mode violations across the acceptance suite
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants