Uh oh!
There was an error while loading. Please reload this page.
feat: JIT escalation apps support - #1823
Conversation
There was a problem hiding this comment.
Pull request overview
Adds support for JIT (debug) Action Center “escalation apps” task creation by allowing callers to bypass deployed-app schema resolution and instead send app identity hints (project key / app type) so Orchestrator can resolve a not-yet-deployed app.
Changes:
- Extend
TasksService.create/create_asyncto support JIT (debug) creation viais_debug,app_project_key,app_type, and optionalaction_schema. - Include additional escalation channel property fields in the agent models to carry app metadata.
- Add tests covering debug-mode behavior and request payload expectations.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| packages/uipath/src/uipath/agent/models/agent.py | Adds app-related fields to escalation channel properties to represent JIT escalation app metadata. |
| packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py | Adds JIT/debug parameters and logic to task creation + taskSource enhancements (solutionId/isDebug). |
| packages/uipath-platform/tests/services/test_actions_service.py | Adds tests for debug-mode creation and payload contents. |
Comments suppressed due to low confidence (1)
packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py:134
- _create_spec calls _apply_task_source with two arguments, but _apply_task_source now requires the new is_debug parameter. This will raise a TypeError at runtime when creating app tasks.
json_payload, priority, labels, is_actionable_message_enabled
)
_apply_task_source(json_payload, source_name)
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
a40e999 to
dafe935Comparedafe935 to
1da4c4cCompare🚨 Heads up: |



Summary
Adds just-in-time (JIT) escalation apps support: an escalation can target a not-yet-deployed ("inline") Action Center app during a debug run, instead of only deployed apps. During a debug run the runtime resolves the app's project key and action schema at runtime (from the solution) and stamps the task as a debug task, so a developer can exercise HITL escalations against an app they haven't published yet.
This is the
uipath-python(SDK) half of the change. It is consumed by the correspondinguipath-langchain-pythonand Studio Web (frontend) PRs.What changed
Debug-run detection & config (
common/_config.py,orchestrator/job.py)Jobgains aparent_contextfield (ParentContext), whose{"IsDebug": true}payload identifies a debug run.UiPathConfig.is_rooted_to_debug_jobis now settable (runtime override + setter, cleared byreset()). The debug status is resolved once and recorded here, so it does not have to be threaded through every task-creation call.App type helper (
action_center/tasks.py)is_low_code_app(app_type)helper andAPP_TYPE_LOW_CODEconstant."Custom"denotes a low-code (Studio Web) app;"Coded"denotes a coded app.Task creation (
action_center/_tasks_service.py)app_project_keyis supplied for a low-code app, the task's action schema is built from the suppliedaction_schemaand the deployed-app schema lookup is skipped (the app isn't deployed yet);appType/appProjectKeyare sent so Orchestrator can resolve the inline app.taskSource.isDebug/solutionIdare stamped fromUiPathConfig.is_rooted_to_debug_job— a single source of truth, not a per-call parameter, so the publiccreate*signatures stay clean. Both these parameters are now sent to Action Center all the time for potential future use (debug licensing)Escalation channel model (
agent/models/agent.py)app_type(appType) andaction_schema(actionSchema), so the app type and its schema can travel with the escalation resource.Versioning
uipath-platformanduipath, and raises theuipath→uipath-platformminimum pin so a standalone install can't resolve an older platform without these APIs. Lockfiles regenerated.Backward compatibility
app_project_key, noappProjectKey/appTypeis sent and the normal deployed-app path runs.isDebugis only stamped when the run is actually rooted to a debug job, so release runs are unaffected.Testing
test_config_env_vars.py:is_rooted_to_debug_jobsetter / override precedence / reset.test_actions_service.py:is_low_code_app, JIT low-code create (uses supplied schema, skips lookup, sends project key), no project key on the deployed path, andtaskSource.isDebugdriven by config (on and off).Related
uipath-langchain-pythonPR (runtime resolution of the inline app + escalation flow) depends on theis_low_code_app/ debug-config APIs added here, so this PR must be released first.appType/actionSchema/appVersionfor the updated-frontend path.