openclaw/extensions/device-pair
Peter Steinberger 218dcd815a
feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) (#105132)
* fix(extensions): make indexed access explicit across channel plugins

Transport-payload-safe burn-down: malformed Telegram/Discord/QQ/LINE
and sibling channel input keeps existing skip paths; no synthesized
fields, no new throws in delivery loops. Zalo escape sentinels preserve
literal matches instead of undefined replacements.

* fix(extensions): make indexed access explicit across provider and memory plugins

Stream and model iteration, tool-block guards, capture guards, and
sparse accumulators; singleton model reads carry named invariants.

* fix(extensions): make indexed access explicit across tooling plugins, flip the extensions lane

Remaining plugins (oc-path, qa-lab, browser, logbook, and siblings) plus
the tsconfig.extensions.json flag flip. Cleanup: logbook sampleFrames
NaN index at max=1, QA retry clamp at non-positive attempts, dead Canvas
probe and OpenShell no-op slice removed, twitch test setup leak excluded
from the prod lane.

* refactor(plugin-sdk): expose expectDefined via a focused SDK subpath

Extensions imported @openclaw/normalization-core directly, crossing the
external-plugin packaging boundary (it only worked because the runtime
builder bundles undeclared workspace helpers). expect-runtime joins the
canonical entrypoints JSON, generated exports, API baseline, docs, and
subpath contract test; all 78 extension imports now use the SDK seam.
Two scanner-shaped locals renamed for review-bundle hygiene.

* chore(plugin-sdk): raise surface budgets for the expect-runtime subpath

One new entrypoint with one callable export, added intentionally as the
packaging-honest seam for extension invariant helpers.
2026-07-12 09:17:31 +01:00
..
api.ts fix(pairing): advertise reachable Tailnet routes (#100317) 2026-07-05 07:43:43 -07:00
doctor-contract-api.test.ts fix: store device-pair notify state in sqlite 2026-06-06 16:10:16 -07:00
doctor-contract-api.ts refactor: consolidate duplicated plugin state and doctor migration plumbing onto SDK seams (#99850) 2026-07-04 01:51:03 -07:00
index.test.ts fix(device-pair): resolve QR senders by own key (#101652) 2026-07-09 22:31:07 +01:00
index.ts fix(device-pair): resolve QR senders by own key (#101652) 2026-07-09 22:31:07 +01:00
notify-state.ts refactor(plugins): localize private declarations (#101406) 2026-07-06 23:26:47 -07:00
notify.test.ts fix: store device-pair notify state in sqlite 2026-06-06 16:10:16 -07:00
notify.ts refactor(extensions): remove unused helper exports 2026-06-19 00:33:04 +08:00
openclaw.plugin.json
pair-command-approve.ts feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) (#105132) 2026-07-12 09:17:31 +01:00
pair-command-auth.test.ts docs: document small extension sources 2026-06-04 21:02:07 -04:00
pair-command-auth.ts docs: document small extension sources 2026-06-04 21:02:07 -04:00
pairing-qr-channel-data.ts refactor(plugins): localize private declarations (#101406) 2026-07-06 23:26:47 -07:00
qr-image.ts docs: document small extension sources 2026-06-04 21:02:07 -04:00