Skip to content

feat: JIT escalation apps support - #1823

Open
Sandeepan-Ghosh-0312 wants to merge 1 commit into
mainfrom
feat/JITEscalationAppsSupport
Open

feat: JIT escalation apps support#1823
Sandeepan-Ghosh-0312 wants to merge 1 commit into
mainfrom
feat/JITEscalationAppsSupport

Conversation

@Sandeepan-Ghosh-0312

@Sandeepan-Ghosh-0312 Sandeepan-Ghosh-0312 commented Jul 21, 2026

Copy link
Copy Markdown

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 corresponding uipath-langchain-python and Studio Web (frontend) PRs.

What changed

Debug-run detection & config (common/_config.py, orchestrator/job.py)

  • Job gains a parent_context field (ParentContext), whose {"IsDebug": true} payload identifies a debug run.
  • UiPathConfig.is_rooted_to_debug_job is now settable (runtime override + setter, cleared by reset()). 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)

  • New is_low_code_app(app_type) helper and APP_TYPE_LOW_CODE constant. "Custom" denotes a low-code (Studio Web) app; "Coded" denotes a coded app.

Task creation (action_center/_tasks_service.py)

  • When an app_project_key is supplied for a low-code app, the task's action schema is built from the supplied action_schema and the deployed-app schema lookup is skipped (the app isn't deployed yet); appType / appProjectKey are sent so Orchestrator can resolve the inline app.
  • taskSource.isDebug / solutionId are stamped from UiPathConfig.is_rooted_to_debug_job — a single source of truth, not a per-call parameter, so the public create* 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)

  • Escalation channel properties gain app_type (appType) and action_schema (actionSchema), so the app type and its schema can travel with the escalation resource.

Versioning

  • Bumps uipath-platform and uipath, and raises the uipathuipath-platform minimum pin so a standalone install can't resolve an older platform without these APIs. Lockfiles regenerated.

Backward compatibility

  • Deployed-app escalations are unchanged: with no app_project_key, no appProjectKey/appType is sent and the normal deployed-app path runs.
  • isDebug is 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_job setter / 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, and taskSource.isDebug driven by config (on and off).

Related

  • uipath-langchain-python PR (runtime resolution of the inline app + escalation flow) depends on the is_low_code_app / debug-config APIs added here, so this PR must be released first.
  • Studio Web (frontend) PR supplies appType / actionSchema / appVersion for the updated-frontend path.

Copilot AI review requested due to automatic review settings July 21, 2026 10:58
@github-actions github-actions Bot added test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-integrations labels Jul 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_async to support JIT (debug) creation via is_debug, app_project_key, app_type, and optional action_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.

Comment thread packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py Outdated
Comment thread packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py Outdated
Comment thread packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py Outdated
Comment thread packages/uipath-platform/src/uipath/platform/action_center/_tasks_service.py Outdated
@Sandeepan-Ghosh-0312
Sandeepan-Ghosh-0312 force-pushed the feat/JITEscalationAppsSupport branch 4 times, most recently from a40e999 to dafe935 Compare July 27, 2026 21:38
@Sandeepan-Ghosh-0312
Sandeepan-Ghosh-0312 force-pushed the feat/JITEscalationAppsSupport branch from dafe935 to 1da4c4c Compare July 27, 2026 21:45
@github-actions

Copy link
Copy Markdown

🚨 Heads up: uipath-langchain cross-tests are FAILING 🚨

Your changes may break the uipath-langchain-python integration.

⚠️ These checks are NOT enforced by branch protection rules. Please review the failures before merging.

🔍 Inspect the failed run →

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants