This release adds 1 notable feature for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+11 more
Summary
AI summaryAuto‑discovery of plug‑in scanners by dropping .mjs files in server/lib/sources/.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds auto-discovery for plug-in scanners in `server/lib/sources/`. Adds auto-discovery for plug-in scanners in `server/lib/sources/`. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Feature | Low |
Requires each adapter to export a self‑describing `meta` block with `value`, `label`, `region`, and optional `configKey`. Requires each adapter to export a self‑describing `meta` block with `value`, `label`, `region`, and optional `configKey`. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Feature | Low |
Adds comprehensive test suite `tests/sources-registry-discovery.test.mjs` covering discovery, malformed meta rejection, and ordering. Adds comprehensive test suite `tests/sources-registry-discovery.test.mjs` covering discovery, malformed meta rejection, and ordering. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Bugfix | Low |
Validates `meta` exports and logs a single warning per malformed adapter file. Validates `meta` exports and logs a single warning per malformed adapter file. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Refactor | Low |
Replaces static source list with dynamic `readdirSync` + dynamic import at module boot. Replaces static source list with dynamic `readdirSync` + dynamic import at module boot. Source: llm_adapter@2026-06-13 Confidence: high |
— |
Full changelog
[1.69.0] — 2026-06-12
feat(scan): P-14 plug-in scanner auto-discovery — drop a .mjs in server/lib/sources/ to register a new source. Pre-v1.69 the source list in server/lib/sources/registry.mjs was a static hand-maintained array — adding a new adapter required editing both <id>.mjs AND registry.mjs. Closes the partial half of the roadmap item P-14 (docs/ROADMAP.md). Now every *.mjs in server/lib/sources/ is auto-loaded at module boot; each adapter contributes its identity via a self-describing export const meta = { value, label, region, configKey? } block. The 12 shipped adapters (ashby / greenhouse / lever / rss / smartrecruiters / workable / workday + geekjob / getmatch / habr / hh / trudvsem) each grew a meta export; registry.mjs now uses readdirSync + dynamic import() resolved at module-eval via top-level await (Node 18+ ESM standard). The public API (SOURCES, SOURCES_BY_REGION, RU_CONFIG_KEYS, getRegionalSources) is unchanged — every existing import keeps working. Validation rejects malformed meta (missing value/label/region, RU without configKey, region outside 'en'|'ru') and logs a single console.warn per offending file so half-migrated branches stay diagnostic-friendly. The bundled registry.mjs is excluded from self-import. New tests/sources-registry-discovery.test.mjs adds 14 cases covering shipped-adapter coverage, drop-in adapter discovery, helper-module skip, malformed-meta rejection, self-import exclusion, missing-directory tolerance, and deterministic ordering. Suite 1065 → 1079.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Career Ops UI
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]