[release] v0.112.0 - #5827
Open
github-actions[bot] wants to merge 93 commits into
Open
Conversation
…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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…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.
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
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
chore: never track QA gate run artifacts
…itcher fix(frontend): project/org switcher inside the agent-scoped sidebar
fix(tests): stop swallowing strict-mode violations across the acceptance suite
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New version v0.112.0 in