Wave 2 — One product graph and policy authority

Wave 2 — One product graph and policy authority

Wave 2 of #914 moves synlynk's graph to the product store at ~/.synlynk/workspaces/<identity_slug>/state.db. Legacy databases are copied once, never overwritten, and pytest continues to use isolated databases.

The same product boundary now owns policy. A repository policy may provide local settings, but merge and connector authority come from the product policy. Merge checks resolve known type IDs: only canonical qa types can merge, while unknown IDs retain the legacy string check for compatibility.

Stories keep a nullable repo_id, and jobs and costs keep a nullable type_id, so one product graph can relate work without pretending that constituent repos are the same codebase.