Extract contracts, default settings, and helpers from `js/ui/profileModalController.js` to `js/ui/profileModalContract.js`.
This reduces the file size of `js/ui/profileModalController.js` by 884 lines.
- Moved `SERVICE_CONTRACT`, `STATE_CONTRACT` and their builders.
- Moved internal settings helpers (`createInternalDefaultNwcSettings`, etc).
- Moved badge helpers (`resolveProviderBadgeClass`).
- Updated `scripts/check-file-size.mjs` with new line count.
- Cleaned up imports in `profileModalController.js`.
Co-authored-by: PR0M3TH3AN <[email protected]>
Three CI-enforced lint scripts to prevent common codebase growth problems:
- lint:file-size — enforces 1000-line max for new JS files, grandfathers
existing oversized files and prevents them from growing further
- lint:innerhtml — tracks innerHTML usage per-file with a baseline count,
blocks new innerHTML additions (guides agents toward safe DOM APIs)
- Relay constants consolidated from duplicate definitions in client.js and
ConnectionManager.js into shared js/nostr/relayConstants.js
- AGENTS.md Section 13: documents all three rules with examples
- docs/scheduled-agent-prompts.md: copy-paste prompts for recurring
file decomposition, innerHTML migration, and constant dedup tasks
https://claude.ai/code/session_01LzErpH9FNw4hAPsjoYb1v9