feat(maestro-case): add RPA process leg to create-on-missing#1803
Draft
song-zhao-25 wants to merge 2 commits into
Draft
feat(maestro-case): add RPA process leg to create-on-missing#1803song-zhao-25 wants to merge 2 commits into
song-zhao-25 wants to merge 2 commits into
Conversation
Widen the Rule 17 gate's creatable set from {agent} to {agent, rpa}.
The RPA leg delegates a deterministic scaffold to uipath-rpa (uip rpa
init, always XAML/VB — no kind prompt): registry/local token is
process (not rpa), the I/O contract lives in project.json entryPoints
(.NET FQNs; case-vocab map added), the binding omits resourceSubType
entirely, and folderPath stays "" with the solution_folder sentinel
only in resourceKey.
Runtime-verified 2026-07-01 on alpha via full solution pack/publish/
deploy run: the sibling provisions as a runnable process, the case
invokes it, and outputs round-trip into case vars (argument-name
matching is case-insensitive). uip maestro case debug does NOT
provision non-agent siblings — incident 170007 is documented as a
debug-path limitation, with a scaffold caveat that outputs must be
assigned defaults (an empty Sequence returns null).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review of cdad5a1 confirmed 11 findings; all fixed: - Bridge incident 170007 into the debug path: Phase-5 Debug notes bullet, Step-13a by-design short-circuit (do not "fix" the runtime-correct folderPath:""), and a troubleshooting-guide Step-2 known-incident entry distinguishing inline-sibling (expected) from tenant-resolved (real) occurrences. - Generalize the shared bindings layer the first pass missed: bindings-v2-sync.md both decoupling callouts and the canonical bindings/impl-json.md blockquote now cover agent / RPA process and state that rpa omits resourceSubType / metadata.subType. - Close the two ways Create could fire wrongly: port the match-priority ladder into rpa Registry Resolution (folder mismatch resolves, never Creates), and add the cross-kind name-collision guard at gate §1 plus kind-checks in both legs' already-exists recovery (shared solution_folder.<name> namespace). - Placeholder upgrade §3/§4 no longer order tenant tasks describe for local-only sibling EntityKeys; schema source qualified in the table. - Bound the retry loop ("2nd consecutive failed Retry create") consistently at connector/agent/rpa failure contracts; add the case→.NET type map into the builder brief (brief-only sub-agent); built-inline caseplan I/O types pinned to case vocabulary; ambiguity tiebreaker surfaces at the gate instead of silently foreclosing Create; already-exists recovery restores the if-not-already-registered hedge; Step-3/4 execution order annotated; Step 4 deduplicated to deltas + pointer; non-creatable enumerations marked non-exhaustive. Shared-doc wording mirrors the api-workflow branch byte-identically where both legs touch the same lines (agent/planning.md, gate §1) so the second-to-merge unions cleanly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
song-zhao-25
added a commit
that referenced
this pull request
Jul 2, 2026
…adopt contract; fix two live-run gaps Surfaced by the api-workflow L4 suite (T2b, on-disk-unregistered residual) and verified live on CLI 1.198; both gaps also affect the merged agent leg: 1. registry list --local enumerates only .uipx-registered projects — an unregistered on-disk residual is invisible to it, so the adopt path's kind-check is now two-step (registered name -> list --local Category; unregistered dir -> on-disk project.uiproj ProjectType). 2. uip solution project add refuses 'Project name already exists' even when the name is absent from .uipx Projects[] — the collision check keys on stale resource declaration files left by a prior registration. Remediation: delete resources/solution_folder/package/<Name>.json + the kind's process/<category>/<Name>.json, re-run project add (verified: 'Added successfully'), then resources refresh regenerates them. The corrected contract now lives ONCE, kind-agnostically, in registry-discovery.md § Create-on-Missing 3b; agent/planning.md's residual blockquote shrinks to a pointer + agent-specific tokens. Open create-on-missing legs (#1802 api-workflow, #1803 rpa, #1723 agentic) inherit on their next rebase and should slim their per-type blockquotes to the same pointer shape. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
song-zhao-25
added a commit
that referenced
this pull request
Jul 2, 2026
…adopt contract; fix two live-run gaps Surfaced by the api-workflow L4 suite (T2b, on-disk-unregistered residual) and verified live on CLI 1.198; both gaps also affect the merged agent leg: 1. registry list --local enumerates only .uipx-registered projects — an unregistered on-disk residual is invisible to it, so the adopt path's kind-check is now two-step (registered name -> list --local Category; unregistered dir -> on-disk project.uiproj ProjectType). 2. uip solution project add refuses 'Project name already exists' even when the name is absent from .uipx Projects[] — the collision check keys on stale resource declaration files left by a prior registration. Remediation: delete resources/solution_folder/package/<Name>.json + the kind's process/<category>/<Name>.json, re-run project add (verified: 'Added successfully'), then resources refresh regenerates them. The corrected contract now lives ONCE, kind-agnostically, in registry-discovery.md § Create-on-Missing 3b; agent/planning.md's residual blockquote shrinks to a pointer + agent-specific tokens. Open create-on-missing legs (#1802 api-workflow, #1803 rpa, #1723 agentic) inherit on their next rebase and should slim their per-type blockquotes to the same pointer shape. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Widens the Rule 17 gate's creatable set from {agent} to {agent, rpa}: a case task typed
rpawhose registry lookup is empty can now be built inline as an in-solution sibling (delegated touipath-rpa), registered, rediscovered via--local, and bound — instead of falling to a placeholder.Create the missing resource(s) inline.rpa/planning.mdsections: pre-gate in-solution sibling check (--type process --local— the registry has norpatype) and Creating an RPA process inline (pinned I/O + case↔.NET type map, no kind prompt — v1 always XAML/VB, deterministicuip rpa initscaffold brief, no-resourceSubTypebinding,project.jsonentryPointsread-back, failure/adopt contract). Matching Built-inline note inrpa/impl-json.md.bindings-v2-sync.md,variables/bindings/impl-json.md) generalized: decoupledfolderPath:""vsresourceKey="solution_folder.<name>"now covers agent / RPA; rpa omitsresourceSubType/metadata.subType.170007bridged into the debug path (Phase-5 Debug notes, Step-13a short-circuit, troubleshooting-guide): an inline RPA sibling faulting undercase debugis by design — debug does not provision non-agent siblings; do not "fix" the runtime-correctfolderPath:"".Runtime verification (alpha, 2026-07-01)
Full path proven live twice with a scratch case +
RpaClassifysibling:solution pack → publish → deploy runprovisions the sibling as a runnable process; the case's stage-entry rule starts the job (serverless, 4s,Successful); an assigned output round-trips into case vars (TaskCompletedOutputs). Engine composes PascalCaseJobArgumentsfrom camelCase XAML args — matching is case-insensitive both directions.case debugon the same case reproduces170007("process could not be found"), confirming the debug-path-only limitation the docs now describe.Review
Second commit addresses an 11-finding skill review (170007 debug bridge, bindings-layer generalization, match-priority ladder in rpa Registry Resolution, cross-kind name-collision guard, placeholder-upgrade contradiction, bounded retry, type map in the builder brief).
Merge coordination
Independent of #1723 (agentic stays non-creatable here). Sibling branch
feat/case-create-missing-api-workflowtouches the same enumeration lines; shared-doc hunks (agent/planning.md, gate §1 rename rule) are byte-identical across both branches so the second-to-merge unions cleanly.🤖 Generated with Claude Code