Friction Version Awareness - cprima-forks/uipath-ai-skills GitHub Wiki
Friction: No Version Awareness
The generators emit attributes for UiPath Studio 24.10 regardless of the package versions specified in the target project's project.json.
The Current State
Every attribute emitted by every generator was derived from Studio 24.10 exports. When a user's project.json specifies UiPath.UIAutomation.Activities 23.10.x, the generator still emits 24.10 attributes — including any that were added after 23.10.
Conversely, when a new package version introduces new attributes (such as self-healing attributes added in a later release), the generators do not emit them unless the f-strings are manually updated.
A Critical Distinction: Activity Version vs Package Version
The Version="V5" attribute present on most Modern UI activities is not the NuGet package version. It is an internal schema revision number in UiPath's activity model — an identifier for the activity's data contract version. It is a fixed attribute value, not a version-awareness mechanism.
These are unrelated:
Version="V5"onuix:NTypeInto— activity schema revision, fixed at authoring timeUiPath.UIAutomation.Activities 24.10.3— the NuGet package version inproject.json
Conflating the two leads to incorrect assumptions: V5 does not mean "this activity requires package version 5.x".
The Gap
A version-aware generator would:
- Read
project.jsondependencies at generation time - Look up the valid attribute set for each activity at the specified package version from a registry keyed by
(packageId, packageVersion) - Emit only the attributes present in that version
For example, if HealingAgentBehavior was introduced in UiPath.UIAutomation.Activities 24.4.x, a generator targeting 23.10.x would omit it; a generator targeting 24.10.x would include it with its default value.
Why This Is Currently Acceptable
The skill documentation states it targets Studio 2024.10+ and expects this to remain valid for approximately two years. Within that window, the hardwired 24.10 attribute sets are correct for all supported users.
The limitation becomes material when:
- Users run older Studio versions (23.10.x or earlier)
- UiPath ships a major activity package release with structural changes
- Plugin skills target different package version ranges than the core
Path Forward
See External Registry and Validation Pipeline for the proposed approach: a registry extracted from .nupkg files, keyed by (packageId, version), consulted at generation time.