detach_product_from_portfolio
Remove a product from a portfolio's `products[]` in `.upg/portfolio.upg` (the product stays registered and in any other container). The inverse of `attach_product_to_portfolio`.
Workspace & Portfoliosatomic (single portfolio.upg flush).
Arguments
product_idstringrequiredProduct id (from list_local_products)
portfolio_idstringrequiredPortfolio id (from list_portfolios)
Returns
Shape
{ product_id, container_id, container_kind: "portfolio", container_title?, removed }removed: false (not an error) when the product was not a member, so retries are idempotent.