Repository navigation
feat(studio): A12 agent detail actions - #990
Merged
Merged
Conversation
- AgentActionsMenu: Duplicate (POST /agents { from: { copyOf } }),
Export YAML (client-side downloadYaml), Delete agent behind a
ConfirmDialog; wired as the detail header's overflow menu.
- Extract agentTabItems() shared by the detail header and the new
BuilderTabs strip above the builder toolbar.
- Factor downloadText() out of downloadSpec(); add downloadYaml().
- .app.app-builder-tabs grid row for the 40px strip.
…x BuilderTabs test for built runs tab)
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.
Summary
Implements ticket A12 (agent detail actions + canvas tab strip):
AgentActionsMenu(screens/agentDetail/): the detail header's overflowMenu— Duplicate (POST /agents { from: { copyOf } }→ toastDuplicated as "<name>"→ opens the copy's Overview), Export YAML (client-sidedownloadYaml→<id>.yaml), separator, Delete agent… (danger) behind aConfirmDialog(alertdialog, pending disables both buttons, errors stay in the dialog). On success it navigates to#/agentsbefore toasting so the detail screen never refetches the deleted record; if the deleted agent is the builder's open document it falls back toswitchAgent('untitled-agent').agentTabItems(id)extracted intoscreens/agents/agentTabs.ts; the A05 header now uses it too.BuilderTabs+builderTabs.css: the same agent tab strip (Canvas current) as a 40px row above the builder toolbar on#/agents/:id/canvas, rendered only for saved agents;.app.app-builder-tabsgrid rows40px 52px minmax(0,1fr) auto.importExport.ts: factored the Blob/anchor download intodownloadText()(shared bydownloadSpecand newdownloadYaml).Test plan
npm run typecheck --workspace apps/agent-forge— cleannpx vitest run(apps/agent-forge) — 177 files / 3441 tests pass, incl. newAgentActionsMenu.test.tsx(5),BuilderTabs.test.tsx(2),polishCss.test.tsadditions;AgentDetailRoute.test.tsxupdated with AppState mock + ToastProvider for the menunpm run build --workspace apps/agent-forge— clean (rootnpm run buildalso run to producedist/for theloushoworkspace dep)npx fallow dead-code/npx fallow dupes— clean (barenpm run fallowneeds CI's coverage-final.json; dead-code + dupes gates pass)npx eslinton changed files — clean