# QSP-39749 - Not version-specific signals should consider summary version

When generating a `scorecards.result` event for a specific release version, versionless signals
(Snyk, Code Coverage, Code Quality, Code Security) were always scored 0 because they live under
`asset.version == "summary"` but the signal query filtered by the deployment version.

**Commit:** `fix: versionless signals use summary version in scorecard result generation QSP-39749`

---

## What Changed

- `buildSignalEventsQuery` in `src/api/signals/signal-event.ts` now accepts `versionedSignalIds`
  and `versionlessSignalIds` as separate arrays, generating an OR-based DQL query.
- `generate-scorecards-result-event.function.ts` splits `matchingSignalDefs` by `versionSpecific`.
- Unit tests updated and extended for both files.

---

## Acceptance Criteria

- AC-1: Versionless signals are fetched with `asset.version == "summary"` when `assetVersion` is a semver
- AC-2: When `assetVersion == "summary"`, all signals continue to use `"summary"` (no regression)
- AC-3: Versioned signals continue to use `asset.version == "${assetVersion}"`
- AC-4: Fix uses a single DQL query with OR condition — no extra Grail round-trip
- AC-5: All unit tests pass with ≥90% coverage
