Conversation
…alidation and execution contracts
…constraints
- Replaced `@umijs/max` history import with a local navigation shim in multiple console web pages for improved consistency.
- Enhanced port constraint documentation to prohibit the use of port `5000` across all services, ensuring alignment with system requirements.
- Added new endpoints for `/primitives` and `/actors/{actorId}/graph-enriched` in the ChatQuery API, with corresponding tests to validate functionality.
- Updated various tests to reflect changes in the workflow and ensure comprehensive coverage.
…2026-03-20_frontend-scripts
…te default Studio URL and port in CLI.
…vocation, lifecycle, and scope management, including error handling.
… 5100 and clean up unused usings.
…kflow validation - Add new AppPlatform capability with abstractions, core, application, infrastructure, and hosting layers - Introduce app registry, access control, route resolution, and query services - Enhance workflow validator to detect missing role IDs and improve error reporting - Add support for workflow stop events in sub-workflow orchestrator - Remove deprecated Aevatar.App.Tests project and consolidate test dependencies - Update test projects to reference new Studio.* assemblies and adjust namespace imports - Add observation session fields to execution record storage model - Simplify app CLI command structure by removing restart subcommand
…ow integration Add core interfaces and services for app-level function invocation, operation tracking, and workflow connector resolution. Extend scope workflow capability to support app-aware workflows with explicit appId parameter. Introduce app resource management for connectors and secrets in releases. Update access control to include new mutation actions and public invoke permissions. Provide OpenAPI document generation and request serialization for app functions. The changes enable a unified app-level abstraction where functions can be invoked and streamed without exposing underlying workflow implementation details. This aligns with the architectural direction of converging external API surface to app/function semantics while maintaining backward compatibility for existing scope+workflowId paths.
Add regex validation to ensure app and function IDs contain only alphanumeric, underscore, and hyphen characters. This prevents potential security issues and malformed requests when using published functions.
The app platform module has been removed to consolidate platform services into a unified architecture. This includes: - Abstractions: Interfaces, DTOs, and access control models - Application services: Query and command handlers - Infrastructure: In-memory stores and configuration - Hosting: Web API endpoints and serialization - Core utilities: Path normalization and type registries - Test projects: Unit tests for authorization and services The removal eliminates duplication and aligns with the platform's evolving service boundaries.
…cripts' into feature/app-services # Conflicts: # apps/aevatar-console-web/src/shared/studio/api.test.ts # apps/aevatar-console-web/src/shared/studio/api.ts
- Add scope binding API port and models for workflow/script/gagent implementations - Add scope-first endpoints: binding management, draft-run, and invoke/chat:stream - Update frontend to support scope-first workflow binding and draft runs - Add scope binding UI to scripts workbench for binding saved scripts - Update runtime runs page to support draft mode with scope draft-run endpoint - Add documentation for scope-first architecture and implementation checklist - Set default localhost URL for mainnet host API
- Add scope overview page as the new landing page for scopes - Implement generic endpoint invocation for scripts and GAgents - Extend runs console to support service invocation drafts - Update binding APIs to support multiple implementation kinds - Add protobuf payload utilities for endpoint invocations
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 53100b1725
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| EnsureNotBlank(request.ScopeId ?? string.Empty, nameof(request.ScopeId)); | ||
| EnsureNotBlank(request.Workflow ?? string.Empty, nameof(request.Workflow)); |
There was a problem hiding this comment.
Allow YAML-only chat runs in SDK
StartRunStreamAsync now rejects requests unless Workflow is non-empty, but ChatRunRequest still models inline execution via WorkflowYamls. This means callers that provide only inline YAML (a valid draft-run scenario) now fail client-side before any HTTP request, so those runs can no longer be started through the SDK.
Useful? React with 👍 / 👎.
| new | ||
| { | ||
| prompt = request.Prompt, | ||
| sessionId = request.SessionId, | ||
| headers = request.Metadata, |
There was a problem hiding this comment.
Serialize stream overrides from ChatRunRequest
The stream payload now includes only prompt, sessionId, and headers, so ChatRunRequest.WorkflowYamls and ChatRunRequest.AgentId are silently ignored. If a caller sets either field, the run executes with default service behavior instead of the requested override, which is a behavior regression that is hard to detect at call site.
Useful? React with 👍 / 👎.
…tion
- Add scope-aware draft run endpoint for scripts at `/api/scopes/{scopeId}/scripts/draft-run` with scope validation
- Enhance scope scripts page with binding status display and revision activation UI
- Restrict auto-encoding to only StringValue and AppScriptCommand payload types
- Fix frontend state management for endpoint invocation to properly handle accepted vs finished runs
- Update scope binding service to validate scripting artifact hash when reusing revisions
- Add comprehensive tests for new scope-first endpoints and payload validation
…ervice endpoints Wrap service invocation in try-catch to map common client errors (FormatException, InvalidOperationException) to appropriate HTTP status codes (400, 404, 409) instead of returning 500. Add helper methods to detect and categorize invocation failures. Update binding endpoint target selection to prioritize by serving state (Active > Paused > Draining > Disabled) before allocation weight, ensuring the most relevant target is shown. Add corresponding integration tests for invalid payload, missing target, and unavailable service scenarios.
- Introduce `/health/live`, `/health/ready`, and `/api/health` endpoints for liveness and readiness probes - Add OpenAPI document endpoint at `/api/openapi.json` with health endpoint documentation - Implement health contributor system for capabilities (workflow, studio, gagent-service, scripting) to report readiness - Update health check URL from `/api/app/health` to `/api/health` across codebase and documentation - Enhance authentication middleware to return proper 403 response when authentication is missing - Add test coverage for mainnet health endpoints and authentication behavior
…-start workflow runs - Add `revision_id` to `ServiceInvocationRequest` for explicit revision selection - Introduce `RetireRevisionAsync` command and endpoint for revision lifecycle management - Extend `ServiceRevisionEntryReadModel` with typed implementation fields (static, scripting, workflow) - Enhance `ServiceRevisionCatalogSnapshot` with state version, last event ID and typed implementation snapshots - Add `GetActorReportAsync` query for workflow run insights - Extend `WorkflowActorBinding` with source version and timestamps for binding queries - Implement auto-start of workflow draft runs handed off from Studio to Runs page - Separate `canOpenRunWorkflow` and `canRunWorkflow` in Studio UI to allow prompt input after dialog opens - Update architecture docs with scope-first governance endpoints and typed revision governance
Add routing from workflow library to Studio with template parameter Introduce template fallback logic to display catalog workflow content Update test cases to verify Studio routing and template graph rendering
…/feat/2026-03-20_frontend-scripts # Conflicts: # apps/aevatar-console-web/src/pages/runs/index.test.tsx # apps/aevatar-console-web/src/pages/runs/index.tsx
…/feat/2026-03-20_frontend-scripts # Conflicts: # apps/aevatar-console-web/src/pages/studio/index.tsx
…scripts Codex/feat/2026 03 20 frontend scripts
The test no longer requires clicking "Open editor" as the workflow graph is now displayed directly. Also adjust expected node count from 3 to 2 to match the updated template.
…nto feature/app-services
Add a new proxy entry to route requests to the Studio API host for the scope script draft-run endpoint. This enables the console web app to forward draft-run requests to the appropriate backend service. Add a corresponding test to verify the proxy configuration correctly routes the endpoint to the Studio host and maintains existing API routing.
- Remove appId from ServiceIdentityQuery and related API calls, UI components, and tests - Update governance and service query cards to reflect tenantId as scopeId - Simplify scope resolution to rely solely on auth session, removing app context fallback - Add runtime primitives to workflow validation to support custom step types - Introduce boot scripts for mainnet host API and console web development servers - Update API endpoint paths for scripts and workflows to align with new routing structure - Ensure workflow editor validates step types against runtime-provided primitives
- Introduce NyxId LLM provider for gateway-backed LLM access - Add implicit 'assistant' role for bare llm_call steps without target_role - Update workflow execution to automatically create default assistant role - Extend CLI config to support NyxId provider with endpoint auto-detection - Add AGUI event format support to scope draft-run endpoint - Improve error handling in studio catalog controllers
…nto feature/app-services
Handle 404 responses from chrono-storage download URLs by returning null/empty catalogs instead of throwing exceptions. This aligns with the expected behavior where missing objects should be treated as absent catalogs rather than errors. Update related tests to verify this behavior for both connector and role catalogs.
…scripts Refactor console shell routes and settings
… from scope overview - Extend ServiceIdentityQuery model with optional appId field - Add appId input to service query card and update query parameter handling - Introduce new /scopes/invoke route for service invocation - Add "Invoke Services" button to scope overview page - Update service detail page to include appId in binding navigation - Enhance service invocation resolution to fallback to serving set when traffic view is missing - Add workflow binding projection activation to ensure proper projection lifecycle - Improve error message readability by parsing RFC 9110 problem details - Update CLI documentation to reflect nyxid provider naming convention - Add identity gateways section to config tool UI
…nto feature/app-services
Add observed run session persistence and replay capability, allowing users to restore and replay previously observed runs. This enables better debugging and analysis workflows by preserving run events and allowing them to be replayed in the timeline view. - Add ObservedRunSessionPayload type and save/load functions to draftRunSession - Store observed events in recent runs for persistence across sessions - Enhance buildTimelineGroups to generate unique keys for repeated timeline segments - Add UI styles for improved trace tab layout - Hydrate observed sessions in Runs page without starting new invokes - Update ScopeInvokePage to save observed sessions when opening in Runs
Fix timeline grouping logic to compare items' timelineKey instead of group key, ensuring proper grouping of related events. Add overflow hidden to workbench trace tab panel to prevent content from exceeding container boundaries. Update test to handle both possible class names for tab content containers.
Use a custom CSS class to apply consistent flexbox styles to the trace pane tabs and their content containers. This prevents layout issues where content might not expand to fill the available height, ensuring the tabs and their active panes correctly use the full vertical space.
Ensure scope workflow services always use fixed identity (appId="default", namespace="default") regardless of configuration overrides. This prevents runtime identity mismatch between scope workflow assets and scope binding services. Add comprehensive documentation explaining the end-to-end backend flow for app workflow operations, covering Save vs Bind scope, Run draft vs Invoke services, and definition vs run actor separation. Update tests to verify service identity overrides are ignored and improve test cleanup by resetting session state.
No description provided.