Skip to content

D1011 — status judges a workspace-scoped provider projection by projection

Decision. For a provider in workspace scope (D193), status builds the same per-projection manifests sync applies (manifestsForProjections) and compares the bundle-only global projection with the global lock and each workspace with its own lock, merging the findings into the provider's card.

Why. It compared one provider-wide manifest, built from every bound KB, with the global lock, which in workspace scope holds only the transversal bundle: a clean sync reported drift and exit 1, listing every KB artifact as missing.

Alternatives rejected. Filtering the provider-wide manifest to the bundle and ignoring workspaces: it would hide a workspace that lost a file. Filtering that manifest by KB per workspace: it re-implements the per-projection strict merge and fails on a collision legal across workspaces (D193 decision 6).

Consequences. status and sync share one definition of what a projection receives; a change to projectionsFor changes both. A bound workspace that is gone reports drift (sync would refuse it).