github Fighter90/career-ops-ui v1.155.0

latest releases: v1.239.4, v1.239.3, v1.239.2...
one month ago

[1.155.0] — 2026-08-12

Refactor — split config.js under the file-size limit (P-15). public/js/views/config.js was 1030 lines, over the project's 800-line hard limit. Two cohesive, behavior-preserving modules were extracted, bringing it to 783.

Changed

  • config/field-specs.js (new) — the pure, read-only field-spec data: the curated per-provider model lists + the FIELDS descriptor table (API keys / runtime / regional). window.ConfigFieldSpecs, loaded before the view.
  • config/tab-controller.js (new) — the #/config tab-bar controller (ARIA tablist + keyboard nav + panel swapping) as a createConfigTabController(c, panelHost) factory returning { tabBtn, activate }.
  • config.js now references both; the render logic (fieldRow, profile/section editors, save flow) is unchanged. Both new files are wired into index.html before config.js.

Notes

  • Pure refactor, zero behavior change — no route, no server, no i18n key, no CSS. Six source-reading tests were repointed to the new files (they assert on the moved field/model/tab markup); the assertions are otherwise identical.
  • scan.js (906) is intentionally left as-is. Its results-rendering was already extracted to lib/scan-results.js (v1.132.0); the remaining core is a tightly-coupled event-wiring closure bound to ~18 filter/DOM refs, where a mechanical factory extraction would need an 18-argument signature and worsen coupling — the opposite of the rule's intent. A proper split needs a filter-state model refactor, deferred rather than force-fit.
  • Suite: 2396 tests (unchanged — tests repointed, not added).

Don't miss a new career-ops-ui release

NewReleases is sending notifications on new releases.