Skip to content

Config: demote magic-constant config keys to module-local constants #442

@lonix

Description

@lonix

Problem

Several config keys exist because someone needed a number and reached for getNumber(), not because operators ever change them in production. They add noise to the Settings page and demand label/type metadata for #436/#439 that won't pay off.

Confirmed candidates:

  • quotes.cleanup_interval (default 5 min) — internal cleanup loop tick in src/services/quote-channel-manager.ts.
  • notices.cleanup_interval (default 5 min) — same pattern in src/services/notices-channel-manager.ts:242.

Likely candidates (confirm during implementation):

  • quotes.max_length (default 1000) — Discord's hard limit is 2000; this is an internal bound, not operator preference.
  • voicechannels.ownership.grace_period_seconds (default 30s) — internal transfer-delay constant; arguable but very unlikely to be tuned in practice.

Proposed change

  • Move the confirmed candidates from ConfigSchema to consts in their respective modules.
  • For the likely candidates: decide per-key during implementation. Default plan: demote both.
  • Add a startup migration step to drop orphan rows from the configs collection.
  • Remove from defaultConfig and settingsMetadata.

Acceptance

  • Demoted keys no longer in ConfigSchema.
  • Modules use module-local constants; values unchanged.
  • Existing tests still pass; if any test asserts these values, update to import the new constant.

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions