@@ -234,20 +234,24 @@ Those settings may affect runtime behavior, but they are not the same concept
234234as target selection and should evolve through a separate installation-config
235235surface.
236236
237- ### Disconnect and uninstall are soft
237+ ### Disconnect and uninstall release the active workspace claim
238238
239- Provider uninstall or product-side disconnect should soft-disconnect the
240- installation, not hard-delete it immediately .
239+ Provider uninstall or product-side disconnect should release the active
240+ installation claim for that route .
241241
242242Pinned rule:
243243
244244- routing stops immediately
245- - provider auth may be cleared according to deployment policy
246- - the durable installation record remains
247- - the logical concierge binding may remain for later reuse
245+ - provider auth tied to the released installation should be cleared or revoked
246+ according to deployment policy
247+ - the active installation row should no longer reserve that route
248+ - any retained concierge/runtime may remain only as detached history or a
249+ reusable artifact, not as an active claim
250+ - a later install for the same route should be treated as a fresh install,
251+ even when the same runtime is reused under the hood
248252
249- This keeps reconnect flows simple and consistent with the existing shared
250- channel lifecycle model.
253+ History and audit may still be retained, but they should not live in the same
254+ table or record that answers "who currently owns this workspace route."
251255
252256## UX Consequences For Spritz
253257
@@ -264,9 +268,13 @@ For each manageable installation, Spritz should show at least:
264268The minimum action set is:
265269
266270- change target
267- - reconnect
268271- disconnect
269272
273+ ` reconnect ` may still exist as a repair action for an active installation that
274+ is temporarily broken or missing provider auth, but it is not the path after a
275+ user-facing disconnect. After disconnect, the route has been released and the
276+ next claim should come from a fresh install flow.
277+
270278When an installation is in a broken but still durable state, the UI should
271279still render the row and show a repair-needed state through ` problemCode `
272280rather than dropping the installation from the page.
@@ -286,22 +294,29 @@ shapes vary by deployment:
286294 installation
287295- install-management APIs must authorize against the effective owner, not just
288296 the original installer
289- - reinstall APIs must detect effective-owner mismatch and return conflict
297+ - reinstall APIs must detect effective-owner mismatch and return conflict only
298+ while an active claim still exists for that route
290299- management-target-change APIs must update target and owner together
291300- mutable installation-config APIs must stay separate from target-selection APIs
301+ - disconnect APIs must release the active claim instead of keeping a
302+ disconnected reservation behind
303+ - audit/history for released installations must stay separate from the active
304+ registry used for ownership conflicts and route resolution
292305
293306These behaviors matter more than the exact transport details.
294307
295308## Validation
296309
297310At minimum, an implementation should validate:
298311
299- - reinstall of the same route and same effective owner updates in place
300- - reinstall of the same route and different effective owner returns conflict
312+ - reinstall of the same active route and same effective owner updates in place
313+ - reinstall of the same active route and different effective owner returns
314+ conflict
301315- changing to a new valid target updates the installation atomically
302316- changing to a target owned by a different principal updates effective owner
303317- deleting or invalidating the saved target blocks routing until repair
304- - disconnect stops routing but preserves the installation for reconnect
318+ - disconnect stops routing and releases the route for a later fresh install by
319+ the same or a different authorized owner
305320- install rows expose the correct ` allowedActions ` and ` problemCode `
306321- future provider-specific configuration can change without rewriting saved
307322 target selection
@@ -315,7 +330,7 @@ needs for:
315330
316331- listing manageable installations
317332- updating the selected target on an installation
318- - reconnecting a disconnected installation
333+ - reconnecting an active but temporarily broken installation
319334- surfacing repair-needed state when the saved target is no longer valid
320335- defining the generic installation-config surface for provider-specific
321336 mutable settings
0 commit comments