Context
packages/loopover-engine/src/focus-manifest.ts's parseFocusManifest (lines 4003-4032) has an
aggregate condition that decides whether to emit a "Manifest contained no recognized focus fields..."
warning and force manifest.present = false. The condition checks !manifest.X.present for every
other optional block — !manifest.gate.present, !manifest.publicStats.present,
!manifest.draftFlow.present, ... !manifest.federatedIntelligence.present (full list spans lines
4011-4028) — but fairnessAnalytics is missing from this list, even though it is parsed and assigned
just a few lines earlier (fairnessAnalytics: parseFairnessAnalyticsConfig(record.fairnessAnalytics, warnings), line 3993) exactly like every other optional block.
Concrete failure case: a .loopover.yml containing only a populated fairnessAnalytics: block
(e.g. fairnessAnalytics: { enabled: true }) and nothing else is correctly parsed into
manifest.fairnessAnalytics = { present: true, enabled: true }, but because fairnessAnalytics isn't
part of the aggregate emptiness check, the condition still evaluates to "nothing recognized was
found," so the manifest is incorrectly marked present: false and a misleading "no recognized focus
fields" warning is emitted — even though a real, populated, correctly-parsed field exists.
test/unit/focus-manifest.test.ts has a dedicated "makes the manifest present" test for features,
experimental, contentLane, repoDocGeneration, reviewRecap, and other sibling blocks (lines
1573-2070+), but no equivalent test exists for fairnessAnalytics, confirming this was missed rather
than intentional.
Requirements
- Add
!manifest.fairnessAnalytics.present to the aggregate emptiness-check condition in
parseFocusManifest, in the same position/style as every other block already listed there.
- Do not change
parseFairnessAnalyticsConfig itself or any other block's condition — this issue is
scoped to adding the missing check for fairnessAnalytics only.
Deliverables
Test Coverage Requirements
This repo's Codecov patch gate is 99%+ of changed lines and branches
(packages/loopover-engine/src/** is covered). The new condition term must be exercised by both the
new test above (fairnessAnalytics-only manifest → present) and confirm the existing "truly empty
manifest → not present" test still passes unmodified.
Expected Outcome
A .loopover.yml whose only recognized content is a fairnessAnalytics: block is correctly marked
present: true with no spurious "no recognized focus fields" warning, matching every other optional
manifest block's behavior.
Links & Resources
packages/loopover-engine/src/focus-manifest.ts:4003-4032 — the aggregate condition to fix
packages/loopover-engine/src/focus-manifest.ts:3993 — where fairnessAnalytics is parsed
test/unit/focus-manifest.test.ts:1573-2070 — the sibling "makes the manifest present" tests to
mirror
Context
packages/loopover-engine/src/focus-manifest.ts'sparseFocusManifest(lines 4003-4032) has anaggregate condition that decides whether to emit a
"Manifest contained no recognized focus fields..."warning and force
manifest.present = false. The condition checks!manifest.X.presentfor everyother optional block —
!manifest.gate.present,!manifest.publicStats.present,!manifest.draftFlow.present, ...!manifest.federatedIntelligence.present(full list spans lines4011-4028) — but
fairnessAnalyticsis missing from this list, even though it is parsed and assignedjust a few lines earlier (
fairnessAnalytics: parseFairnessAnalyticsConfig(record.fairnessAnalytics, warnings), line 3993) exactly like every other optional block.Concrete failure case: a
.loopover.ymlcontaining only a populatedfairnessAnalytics:block(e.g.
fairnessAnalytics: { enabled: true }) and nothing else is correctly parsed intomanifest.fairnessAnalytics = { present: true, enabled: true }, but becausefairnessAnalyticsisn'tpart of the aggregate emptiness check, the condition still evaluates to "nothing recognized was
found," so the manifest is incorrectly marked
present: falseand a misleading "no recognized focusfields" warning is emitted — even though a real, populated, correctly-parsed field exists.
test/unit/focus-manifest.test.tshas a dedicated "makes the manifest present" test forfeatures,experimental,contentLane,repoDocGeneration,reviewRecap, and other sibling blocks (lines1573-2070+), but no equivalent test exists for
fairnessAnalytics, confirming this was missed ratherthan intentional.
Requirements
!manifest.fairnessAnalytics.presentto the aggregate emptiness-check condition inparseFocusManifest, in the same position/style as every other block already listed there.parseFairnessAnalyticsConfigitself or any other block's condition — this issue isscoped to adding the missing check for
fairnessAnalyticsonly.Deliverables
fairnessAnalyticsincluded in the aggregate!manifest.X.presentcondition inparseFocusManifest.test/unit/focus-manifest.test.tsmirroring the existing "makes the manifestpresent" tests for sibling blocks (e.g.
features,contentLane) — asserting a manifestcontaining only a populated
fairnessAnalytics:block setsmanifest.present = trueand emitsno "no recognized focus fields" warning.
Test Coverage Requirements
This repo's Codecov patch gate is 99%+ of changed lines and branches
(
packages/loopover-engine/src/**is covered). The new condition term must be exercised by both thenew test above (fairnessAnalytics-only manifest → present) and confirm the existing "truly empty
manifest → not present" test still passes unmodified.
Expected Outcome
A
.loopover.ymlwhose only recognized content is afairnessAnalytics:block is correctly markedpresent: truewith no spurious "no recognized focus fields" warning, matching every other optionalmanifest block's behavior.
Links & Resources
packages/loopover-engine/src/focus-manifest.ts:4003-4032— the aggregate condition to fixpackages/loopover-engine/src/focus-manifest.ts:3993— wherefairnessAnalyticsis parsedtest/unit/focus-manifest.test.ts:1573-2070— the sibling "makes the manifest present" tests tomirror