fetch_auftragskatalog_state() hardcoded absent as the default when no device_merkmale row exists (COALESCE(dm.aktiv, FALSE)), regardless of whether the Merkmal is part of the device's workspace. Since the catalog is meant to be the same pool of Merkmale that workspaces are composed from (see ADR-0010's clarification), that default was wrong: flagging an already workspace-composed, actively-in-use Merkmal as catalog-eligible would silently remove it from every device using that workspace on their next check-in, without anyone ever deselecting it. Now joins workspace_merkmale for the device's assigned workspace and defaults to present when the Merkmal is a member, absent otherwise; an explicit device_merkmale row always overrides that default in either direction. Verified against anode: catalog-eligible + already workspace-composed Merkmal now defaults to present with no device_merkmale row, explicit aktiv=false overrides to absent, explicit aktiv=true overrides back to present. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Description
Provisioning Activation Service
Languages
Python
86.6%
PLpgSQL
13.4%