Skip to content

fix(portal): lock profile-managed run resources - #1629

Closed
Cedric Vidal (cedricvidal) wants to merge 3 commits into
microsoft:mainfrom
cedricvidal:cedricvidal-lock-profile-resources
Closed

Cedric Vidal (cedricvidal) wants to merge 3 commits into
microsoft:mainfrom
cedricvidal:cedricvidal-lock-profile-resources

Conversation

@cedricvidal

Copy link
Copy Markdown
Collaborator

Summary

  • move Resources into the /runs/new agent/runtime integration area beside MCP Servers and Skills
  • lock profile-managed resource bindings, revisions, and preset parameter values while preserving editable parameter gaps allowed by the single-profile API contract
  • keep resources fully editable when the selected profile does not declare resource bindings
  • add focused regression coverage, ResourcePicker Storybook states, and architecture documentation

Relates to #1626.

This PR depends on #1614. Because #1614 has not merged yet, this PR temporarily targets main with the parent commits included in its diff. Once #1614 merges, the diff will reduce to only the profile-managed resource locking changes.

Demos

Before

N/A — no recording attached.

After

Headless walkthrough showing resource placement, profile-managed locks, editable run-owned parameter gaps, and profiles without resource bindings:

profile-managed-resources.mp4

Testing

  • Passed: pnpm exec vitest run apps/portal/src/pages/SubmitRun.variations.test.tsx apps/portal/src/components/ResourcePicker.test.tsx --reporter=default (2 files, 4 tests)
  • Passed: pnpm --filter portal build
  • Passed: pnpm --filter portal build-storybook --quiet
  • Passed: authenticated Playwright smoke test against the Compose stack covering runtime placement, profile-owned binding/revision/preset locks, editable run-owned parameter gaps, and profiles without resource bindings
  • Passed: headless 1440×900 walkthrough playback verification (H.264, yuv420p, 25.44 seconds)

Documentation and compatibility

  • Updated docs/architecture/resources.md with the run-wizard location and profile/run ownership behavior.
  • No API contract, CLI behavior, database schema, migration, dependency, or upgrade changes.

Checklist

  • If Portal features changed, keep CLI capabilities in sync. (N/A — this UI enforcement reflects the existing API/CLI contract.)
  • If Portal components changed, update their Storybook stories.
  • If database changes require a migration, include up() / down() and keep it CosmosDB-compatible. (N/A — no database changes.)
  • If dependencies changed, update the lockfile and regenerate NOTICE / NOTICE-REVIEW.txt with pnpm notice as needed. (N/A — no dependency changes.)
  • Video showing the behavior before the suggested change
  • Video showing the behavior after the suggested change

Move profile fan-out ownership into the API so every profile resolves against fresh shared run intent. Keep Portal and CLI payloads free of profile-managed fields and document the cross-client ownership invariant.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@cedricvidal

Copy link
Copy Markdown
Collaborator Author

Superseded by the clean upstream stacked draft: #1632

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant