Summary
utils/density.ts (readDensityPreference/persistDensityPreference) and state/uiPrefs.ts (getDensityPreference/setDensityPreference) both read and write 'callora.density' with separate DensityPreference types.
Why this matters
Two sources of truth drift: one guards storage errors and one does not, and future changes must be made twice.
Scope
Keep a single module (state/uiPrefs.ts), re-export from the other temporarily, update MarketplacePage and tests, then delete the duplicate.
Relevant code in CalloraOrg/Callora-Frontend:
src/utils/density.ts
src/state/uiPrefs.ts
src/pages/MarketplacePage.tsx
Priority
Low
Acceptance criteria
- Only one module owns the callora.density key
- MarketplacePage imports the canonical module
- Storage access is guarded
- density and uiPrefs tests are consolidated
Validation
npm test -- --run src/utils/density.test.ts src/state/uiPrefs.test.ts
Non-goals
- Typo-only, formatting-only, or cosmetic changes.
- Unrelated refactors, dependency upgrades, or broad rewrites.
- Removing safeguards or weakening validation to make tests pass.
Contributor application
Before coding, describe the affected modules, proposed state/invariant changes, test strategy, compatibility considerations, and an estimate. Wait for assignment before starting implementation.
PR requirements
Use a feature branch and include Closes #<issue-number>. Address every criterion, map criteria to code and tests, explain security and failure-mode handling, and ensure CI passes.
Quality review
A maintainer will assess correctness, completeness, test depth, compatibility, observability, and adverse-case handling. A substantive implementation is required; merge or CI status alone does not guarantee reward eligibility.
Generated by Claude Code
Summary
utils/density.ts (readDensityPreference/persistDensityPreference) and state/uiPrefs.ts (getDensityPreference/setDensityPreference) both read and write 'callora.density' with separate DensityPreference types.
Why this matters
Two sources of truth drift: one guards storage errors and one does not, and future changes must be made twice.
Scope
Keep a single module (state/uiPrefs.ts), re-export from the other temporarily, update MarketplacePage and tests, then delete the duplicate.
Relevant code in CalloraOrg/Callora-Frontend:
src/utils/density.tssrc/state/uiPrefs.tssrc/pages/MarketplacePage.tsxPriority
Low
Acceptance criteria
Validation
npm test -- --run src/utils/density.test.ts src/state/uiPrefs.test.ts
Non-goals
Contributor application
Before coding, describe the affected modules, proposed state/invariant changes, test strategy, compatibility considerations, and an estimate. Wait for assignment before starting implementation.
PR requirements
Use a feature branch and include
Closes #<issue-number>. Address every criterion, map criteria to code and tests, explain security and failure-mode handling, and ensure CI passes.Quality review
A maintainer will assess correctness, completeness, test depth, compatibility, observability, and adverse-case handling. A substantive implementation is required; merge or CI status alone does not guarantee reward eligibility.
Generated by Claude Code