WING-196 adapter composition blockers¶
This lane adds the server-side adapter contract for Desktop, YC, Flow, and Studio surfaces. The
contract composes the canonical JobQueryService and projects tenant-safe metadata for company
classification, layoff/benefits freshness, application readiness, and apply-engine capability.
Deliberate scope boundaries¶
- Query predicates/facets for company type, industry, cohorts, benefits, and health are still owned by the model/query lane. This adapter layer does not add duplicate filter semantics.
- Location, commute, office, and tax semantics remain owned by the location/comparison lane.
- Angular filter-rail and disabled-state wiring remains blocked until the backend model/query and location contracts are present.
Server composition blockers¶
JobQueryhas no first-class tenant-scope property. The adapter enforces scope by wrappingIJobQuerySourceand running the existingJobQueryServiceover that scoped source, which keeps totals and facets tenant-safe. A future API route should bind tenant scope from the authenticated surface context, not from user-editable client state.- Company type, industry, and cohorts now have a sourced projection shape, but no live adapter writes
CompanyBriefing.Classificationyet. Unknown remains the correct output until a source populates it. - Health freshness currently derives from layoff history already attached to the job. A richer
CompanyHealthread still belongs in the health/model composition path before it becomes filterable. - Benefits provenance composes
BenefitsInsightand the localCompanyBenefitsProfilestore. It is projection-only; benefit predicates must still land in the shared query contract. - Application readiness is category-only by design. It reports missing artifacts and blockers, never profile values, referral contacts, vault entries, or tenant hosts.
- Non-desktop surfaces expose capability metadata but cannot run apply automation because browser driving is local desktop state.