-
Notifications
You must be signed in to change notification settings - Fork 97
docs(Automation): Improve issue triage agent accuracy and add lib descriptions #9035
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| # Library Descriptions | ||
|
|
||
| This directory contains structured descriptions of each library in the monorepo. | ||
| These files are used by the **issue triage agent** (`.github/workflows/issue-triage-agent.md`) | ||
| to understand library responsibilities, boundaries, and common issue patterns when | ||
| analyzing new GitHub issues. | ||
|
|
||
| ## File naming | ||
|
|
||
| Each file is named `{library-directory}.md` (e.g., `designer.md` for `libs/designer/`). | ||
|
|
||
| ## When to update | ||
|
|
||
| Update these files when: | ||
| - A library's responsibilities or boundaries change significantly | ||
| - New common issue patterns emerge that would help triage accuracy | ||
| - A new library is added to `libs/` |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # libs/a2a-core — A2A Protocol Chat Client SDK | ||
|
|
||
| ## Purpose | ||
| React SDK for building chat interfaces that connect to AI agents using the | ||
| Agent-to-Agent (A2A) protocol. Provides real-time streaming, session management, | ||
| agent discovery, and chat persistence. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/logic-apps-chat` | ||
|
|
||
| ## Key Subsystems | ||
| - `api/` — A2A protocol API client | ||
| - `client/` — A2A client implementation | ||
| - `session/` — Session lifecycle management | ||
| - `streaming/` — Real-time response streaming (SSE) | ||
| - `storage/` — Message persistence (IndexedDB) | ||
| - `discovery/` — Agent discovery and capabilities | ||
| - `plugins/` — Plugin system for extensibility | ||
| - `react/` — React hooks and components for chat UI | ||
|
|
||
| ## Key Features | ||
| - Real-time streaming responses (SSE with auto-reconnection and exponential backoff) | ||
| - Multi-session support (multiple concurrent agent conversations) | ||
| - Chat message persistence (IndexedDB via `storage/`) | ||
| - Server-side history persistence support | ||
| - Authentication support (Bearer, OAuth2, API Key, Cookie, custom handler) | ||
| - Agent discovery protocol with capability negotiation | ||
| - File upload support with multipart handling | ||
| - Syntax-highlighted code blocks in responses | ||
| - Zod schema validation for protocol messages | ||
| - Plugin system for analytics, logging, and extensibility | ||
|
|
||
| ## React Exports (react/) | ||
| - `ChatWidget` — Full-featured embeddable chat widget | ||
| - `ChatWindow` — Chat window container | ||
| - `MessageList` — Message history display | ||
| - `MessageInput` — User input composing | ||
| - `AgentCard` — Agent info and capability display | ||
| - React hooks: `useA2AClient`, `useSession`, `useMessages`, `useStreaming` | ||
| - Zustand store for client-side state management | ||
|
|
||
| ## Dependencies | ||
| - No internal dependencies on other libs (standalone SDK) | ||
| - React 19+, Zustand for state management | ||
|
|
||
| ## Common Issue Patterns | ||
|
|
||
| ### Issues that belong HERE: | ||
| - A2A protocol communication failures | ||
| - Chat streaming issues (messages cut off, connection drops) | ||
| - Agent discovery failures | ||
| - Message persistence/storage bugs | ||
| - Authentication flow issues with A2A agents | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Designer chatbot issues → `chatbot` library | ||
| - Copilot workflow editing → `designer` copilot service | ||
| - General chat UI styling → may be `designer-ui` components |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # libs/chatbot — AI Chatbot Integration | ||
|
|
||
| ## Purpose | ||
| AI-powered chatbot integration for the Logic Apps Designer. Provides | ||
| conversational assistance for workflow authoring — helping users with expression | ||
| syntax, error explanations, operation suggestions, and workflow editing. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/logic-apps-chatbot` | ||
|
|
||
| ## Key Components | ||
| - `ChatPanel` — Main chat UI panel for general AI assistance | ||
| - `CopilotChatbot` — Copilot-specific chatbot variant for workflow editing | ||
| (uses `BaseCopilotWorkflowEditorService` from `logic-apps-shared`) | ||
| - `UserMessage` / `AssistantMessage` — Message rendering | ||
| - `CodeBlock` — Code snippet display with syntax highlighting | ||
| - `SuggestionChips` — Quick-action suggestions | ||
|
|
||
| ## Key Exports | ||
| - Chat panel components | ||
| - `Query` model — Structured chat query type | ||
| - Chat message types and utilities | ||
|
|
||
| ## Architecture | ||
| - `core/` — AI service integration and message handling | ||
| - `ui/` — Chat UI components | ||
| - `common/` — Shared utilities and message types | ||
|
|
||
| ## Dependencies | ||
| - `logic-apps-shared` — Utilities | ||
| - `designer-ui` — Shared UI components | ||
|
|
||
| ## Common Issue Patterns | ||
|
|
||
| ### Issues that belong HERE: | ||
| - Chat panel rendering issues | ||
| - AI response formatting problems | ||
| - Suggestion chip behavior | ||
| - Chat history management bugs | ||
| - CopilotChatbot UI issues (not the service — see `logic-apps-shared`) | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Copilot workflow editing **service logic** (tool calling, prompt engineering, | ||
| discover_connectors) → `logic-apps-shared` copilot service | ||
| - General AI/Azure Copilot integration → Portal extension, not this library | ||
| - Expression help accuracy → may be the AI model, not this library's code | ||
| - A2A protocol chat → `a2a-core` library, not this one |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| # libs/data-mapper-v2 — Visual Data Transformation Tool (Current) | ||
|
|
||
| ## Purpose | ||
| The current-generation visual data mapper that allows users to create data | ||
| transformations between schemas. Users visually map source fields to target | ||
| fields and apply transformation functions. Generates XSLT output. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/logic-apps-data-mapper-v2` | ||
|
|
||
| ## Key Export | ||
| `DataMapperDesignerV2` — Main React component | ||
|
|
||
| ## Architecture | ||
|
|
||
| ### Components (components/) | ||
| - `canvas/` — Main mapping canvas (XY Flow v12 based, ELK layout engine) | ||
| - `schema/` — Schema tree views (source and target) using react-arborist | ||
| - `functions/` — Function library panel (string, math, date, collection functions) | ||
| - `codeView/` — XSLT code visualization and editing | ||
| - `commandBar/` — Toolbar with save, undo, redo, test, discard actions | ||
| - `mapChecker/` — Map validation and error reporting | ||
| - `common/` — Shared UI components | ||
|
|
||
| ### Core Logic (core/) | ||
| Redux Toolkit state management with `redux-undo` integration: | ||
| - `appSlice` — Application-level state | ||
| - `dataMapSlice` — Mapping connections and transformation state | ||
| - `errorsSlice` — Validation errors and warnings | ||
| - `functionSlice` — Function library state | ||
| - `modalSlice` — Modal dialog management | ||
| - `panelSlice` — Side panel state | ||
| - `schemaSlice` — Source/target schema state | ||
|
|
||
| ### Map Processing (mapHandling/) | ||
| - XSLT generation from visual mappings | ||
| - YAML-based map definition format (serialization/deserialization) | ||
| - Schema loading and parsing (XSD, JSON Schema) | ||
| - Map definition conversion utilities | ||
|
|
||
| ### Services | ||
| - `dataMapperApiService` — Backend API calls for map testing | ||
| - `dataMapperFileService` — File system operations for schemas/maps | ||
| - `appInsights` — Telemetry and performance tracking | ||
|
|
||
| ## Dependencies | ||
| - `logic-apps-shared` — Utilities and models | ||
| - `designer-ui` — Shared UI components | ||
|
|
||
| ## Common Issue Patterns | ||
|
|
||
| ### Issues that belong HERE: | ||
| - Visual mapping canvas bugs (connections not drawing, nodes misaligned) | ||
| - Schema tree rendering issues (large schemas, nested types) | ||
| - Function panel behavior (function search, parameter editing) | ||
| - XSLT generation errors (incorrect output, missing mappings) | ||
| - Map file loading/saving failures (YAML format) | ||
| - Data type coercion issues in mappings | ||
| - Code view rendering issues | ||
| - Map validation (mapChecker) errors | ||
| - Undo/redo bugs in the data mapper | ||
| - Canvas layout or ELK positioning issues | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Workflow designer bugs → `designer` or `designer-v2` | ||
| - General panel/editor component bugs → may be `designer-ui` | ||
| - Issues mentioning "data mapper" but describing workflow action configuration | ||
| → likely about the designer's parameter editors, not the data mapper tool |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # libs/data-mapper — Legacy Data Mapper (v1) | ||
|
|
||
| ## Purpose | ||
| The original visual data transformation tool. **Superseded by `data-mapper-v2`** | ||
| but maintained for backward compatibility. No active feature development. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/logic-apps-data-mapper` | ||
|
|
||
| ## Key Export | ||
| `DataMapperDesigner` — Main React component | ||
|
|
||
| ## Architecture | ||
| - React Flow v11 based canvas (older version than v2) | ||
| - Redux state management | ||
| - YAML-based map definitions | ||
| - LESS styling (legacy, not migrated to makeStyles) | ||
|
|
||
| ## Dependencies | ||
| - `logic-apps-shared` — Utilities and models | ||
| - `designer-ui` — Shared UI components | ||
| - `designer` — Some shared types | ||
|
|
||
| ## Common Issue Patterns | ||
| Most data mapper issues should be directed to `data-mapper-v2` unless the | ||
| reporter explicitly mentions the legacy data mapper or v1. | ||
|
|
||
| ### Issues that belong HERE: | ||
| - Bugs explicitly reported against the legacy/v1 data mapper | ||
| - Migration issues when converting v1 maps to v2 format | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Any new data mapper bug → likely `data-mapper-v2` |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # libs/designer-ui — Shared Stateless UI Components | ||
|
|
||
| ## Purpose | ||
| A library of **stateless** UI components shared across the designer, data mapper, | ||
| chatbot, and other packages. Components here are purely presentational — they | ||
| receive props and render UI. They do NOT access Redux state, call services, or | ||
| manage business logic. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/designer-ui` | ||
|
|
||
| ## Key Component Categories | ||
| - **Editors**: Array editor, dictionary editor, expression editor (Monaco), date/time | ||
| editor, schema editor, HTML editor, code editor, text editor, condition editor | ||
| - **Panels**: Panel header, panel container, panel tabs | ||
| - **Cards**: Operation cards, connector cards, action cards | ||
| - **Pickers**: Token picker, resource picker, file picker, combo box | ||
| - **Monitoring**: Run history inputs/outputs visualization, status badges | ||
| - **Templates**: Template card, template panel components | ||
| - **Workflow**: Edge components, node components, scope containers | ||
| - **Settings**: Settings sections, setting toggles, setting inputs | ||
| - **AI/Agent**: Agent instruction editor, built-in tools panel, Foundry agent | ||
| details, Foundry agent picker, copilot get-started, copilot chat components | ||
| - **MCP**: MCP resource selection and configuration components | ||
| - **Knowledge**: Knowledge source management components | ||
| - **Unit Testing**: Unit test definition editors, assertion components | ||
| - **Common**: Labels, buttons, checkboxes, dropdowns, dialogs, modals, flyouts, | ||
| copy-to-clipboard controls, recommendation panels, peek overlays | ||
|
|
||
| ## Architecture | ||
| - 68+ component directories under `src/lib/` | ||
| - Fluent UI v8 and v9 components (migration from v8 → v9 in progress) | ||
| - CodeMirror 6 for code editing capabilities | ||
| - Lexical editor for rich text editing | ||
| - All components are props-driven with no internal state management | ||
| - Design tokens centralized in `src/lib/tokens/designTokens.ts` | ||
|
|
||
| ## Dependencies | ||
| - `logic-apps-shared` — Utility functions and type definitions only | ||
|
|
||
| ## Common Issue Patterns | ||
|
|
||
| ### Issues that belong HERE: | ||
| - Visual rendering bugs in editors, cards, panels, pickers | ||
| - Styling/theming issues (dark mode, light mode inconsistencies) | ||
| - Accessibility issues in individual UI components (keyboard nav, screen readers) | ||
| - Component-level interaction bugs (click handlers, focus management) | ||
| - Editor-specific issues (token picker behavior, expression editor, Monaco integration) | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Data not appearing in a panel → usually the parent component in `designer/` | ||
| is not passing the right props (state management issue, not UI issue) | ||
| - "Wrong value shown" → usually a serialization or state issue in `designer/` | ||
| - Connection-specific UI → may be the connection service in `logic-apps-shared` | ||
| - Template content issues → may be template data fetching, not the template UI | ||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| # libs/designer-v2 — Next-Generation Workflow Designer | ||
|
|
||
| ## Purpose | ||
| The next-generation workflow designer with performance improvements, new features, | ||
| and architectural enhancements. Currently in active development alongside v1. | ||
| Accessible at `/designer-v2` in the standalone app. | ||
|
|
||
| ## NPM Package | ||
| `@microsoft/logic-apps-designer-v2` | ||
|
|
||
| ## Architecture | ||
| Same general structure as `libs/designer/` (Redux slices, parsers, serializers) | ||
| but with key improvements and new features: | ||
| - `react-window` for virtualized node lists (better performance with large workflows) | ||
| - Optimized Redux selectors with better memoization | ||
| - ELK (Eclipse Layout Kernel) graph layout engine | ||
| - Compressed undo/redo state snapshots (`lz-string`) | ||
| - Cleaner separation between UI and state layers | ||
|
rllyy97 marked this conversation as resolved.
|
||
|
|
||
| ### Directory Structure | ||
| - `core/` — State management, actions, business logic | ||
| - `ui/` — UI components (canvas, panels, floating controls, custom nodes) | ||
| - `common/` — Shared utilities, models, constants | ||
|
|
||
| ### State Management (core/state/) | ||
| Redux Toolkit with 15+ slices: | ||
| - `workflowSlice` — Workflow graph and structure | ||
| - `operationMetadataSlice` — Node parameters and metadata | ||
| - `connectionSlice` — API connections and references | ||
| - `panelSlice` — Right-side panel state | ||
| - `settingsSlice` — Operation settings validation | ||
| - `designerOptionsSlice` — Services, read-only mode, host options | ||
| - `designerViewSlice` — Viewport, minimap, zoom state | ||
| - `tokensSlice` — Expression tokens and autocomplete | ||
| - `workflowparametersSlice` — Workflow parameters validation | ||
| - `staticresultsSlice` — Static test result schemas | ||
| - `undoRedoSlice` — **v2 NEW**: Undo/redo with compressed state snapshots | ||
| - `unitTestSlice` — **v2 NEW**: Unit test definitions and assertions | ||
| - `customcodeSlice` — **v2 NEW**: Custom code management | ||
| - `notesSlice` — **v2 NEW**: Canvas sticky notes | ||
| - `modalSlice` — Modal dialog state | ||
|
|
||
| **Separate stores:** `mcpStore` (MCP wizard), `templateStore` (template config) | ||
|
|
||
| ### New Features (not in v1) | ||
| - **Canvas Notes** — Sticky notes on the workflow canvas (`notesSlice`, `NoteNode`) | ||
| - **FloatingRunButton** — Workflow execution button with agent chat integration, | ||
| payload preview, and authentication flows | ||
| - **Agent Support** — Agent connector operations, agentChat panel, `isAgentWorkflow` | ||
| detection, Foundry agent integration | ||
| - **MCP Integration** — Model Context Protocol resource selection and management | ||
| - **Compressed Undo/Redo** — `Uint8Array` state snapshots with `lz-string` compression | ||
| - **Unit Testing** — Test definition serialization, assertions panel | ||
|
rllyy97 marked this conversation as resolved.
|
||
| - **Run History Panel** — In-designer run history viewer with tree view | ||
| - **Canvas Finder** — Node search/finder overlay | ||
| - **Performance Debug** — Performance metrics display | ||
|
|
||
| ### UI Components (ui/) | ||
| - `Designer.tsx` — Top-level designer with hotkeys | ||
| - `DesignerReactFlow.tsx` — React Flow canvas | ||
| - `Controls.tsx`, `Minimap.tsx` — Designer controls | ||
| - `FloatingRunButton/` — Workflow run trigger with chat | ||
| - `CustomNodes/` — OperationCard, ScopeCard, SubgraphCard, CollapsedCard, | ||
| GraphContainer, Placeholder, Hidden, **NoteNode** (sticky notes) | ||
| - Panels: agentChat, assertionsPanel, connectionsPanel, errorsPanel, | ||
| nodeDetailsPanel, nodeSearchPanel, runHistoryPanel, runTreeView, | ||
| templatePanel, workflowParametersPanel, recommendation | ||
| - `exportconsumption/` — Export workflow wizard | ||
| - `templates/` — Template gallery and designer | ||
| - `mcp/` — MCP UI | ||
|
|
||
| ## Dependencies | ||
| - `logic-apps-shared` — Service interfaces, utilities | ||
| - `designer-ui` — Shared stateless UI components | ||
| - `chatbot` — AI assistant integration | ||
|
|
||
| ## Common Issue Patterns | ||
|
|
||
| ### Issues that belong HERE: | ||
| - Bugs specific to the v2 designer canvas or layout | ||
| - Performance issues in the v2 designer | ||
| - Feature parity gaps between v1 and v2 | ||
| - FloatingRunButton or agent chat issues (v2 only) | ||
| - Canvas notes behavior | ||
| - Undo/redo bugs in v2 (compressed snapshots) | ||
| - Unit test panel or assertions issues | ||
| - Run history panel within the designer | ||
|
|
||
| ### Issues that are often MISATTRIBUTED here: | ||
| - Most designer bugs currently affect v1 (`libs/designer/`) since v2 is not | ||
| yet the default in production | ||
| - Unless the reporter explicitly mentions designer-v2 or the `/designer-v2` | ||
| route, assume the issue is about v1 | ||
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.