Peter Steinberger
8e0ab35b0e
refactor(plugins): decouple bundled plugin runtime loading
2026-03-29 09:10:38 +01:00
Peter Steinberger
c48e0f8e6a
style: normalize import order and formatting
2026-03-29 16:33:22 +09:00
Jackjin
a0407c7254
fix(line): preserve underscores inside words in stripMarkdown ( #47465 )
...
Fixes #46185 .
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm test -- extensions/line/src/markdown-to-line.test.ts src/tts/prepare-text.test.ts
Note: `pnpm check` currently fails on unchanged `extensions/microsoft/speech-provider.test.ts` lines 108 and 139 on the rebased base, outside this PR diff.
2026-03-28 21:31:09 -05:00
Tak Hoffman
f1970b8aef
fix(line): normalize canonical ACP targets ( #56713 )
2026-03-28 21:05:34 -05:00
Tak Hoffman
6f7ff545dd
fix(line): add ACP binding parity ( #56700 )
...
* fix(line): support ACP current-conversation binding
* fix(line): add ACP binding routing parity
* docs(changelog): note LINE ACP parity
* fix(line): accept canonical ACP binding targets
2026-03-28 20:52:31 -05:00
Masato Hoshino
9449e54f4f
feat(line): add outbound media support for image, video, and audio
...
pnpm install --frozen-lockfile
pnpm build
pnpm check
pnpm vitest run extensions/line/src/channel.sendPayload.test.ts extensions/line/src/send.test.ts extensions/line/src/outbound-media.test.ts
Co-authored-by: masatohoshino <246810661+masatohoshino@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-03-28 20:51:16 -05:00
Peter Steinberger
148a65fe90
refactor: share webhook channel status helpers
2026-03-29 02:11:22 +01:00
karesansui
acbdafc4f4
fix: propagate webhook mode to health monitor snapshot
...
Webhook channels (LINE, Zalo, Nextcloud Talk, BlueBubbles) are
incorrectly flagged as stale-socket during quiet periods because
snapshot.mode is always undefined, making the mode !== "webhook"
guard in evaluateChannelHealth dead code.
Add mode: "webhook" to each webhook plugin's describeAccount and
propagate described.mode in getRuntimeSnapshot.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 02:01:25 +01:00
Peter Steinberger
acca306665
fix: polish LINE status snapshot checks ( #45701 ) (thanks @tamaosamu)
2026-03-29 00:57:04 +00:00
劉超
03941e2dbf
fix(line): use configured field in collectStatusIssues instead of raw token
...
collectStatusIssues previously checked account.channelAccessToken directly,
but this field is stripped by projectSafeChannelAccountSnapshotFields for
security. This caused 'openclaw status' to always report WARN even when the
token is valid and the LINE provider starts successfully.
Use account.configured instead, which is already computed by
buildChannelAccountSnapshot and correctly reflects whether credentials
are present. This is consistent with how other channels (e.g. Telegram)
implement their status checks.
Fixes #45693
2026-03-29 00:57:04 +00:00
Peter Steinberger
fcc9fd1623
fix: land LINE timing-safe signature validation ( #55663 ) (thanks @gavyngong)
2026-03-29 00:43:17 +00:00
gavyngong
7626d18c64
fix(line): eliminate timing side-channel in HMAC signature validation
...
Pad both buffers to equal length before constant-time comparison.
Key fix: call timingSafeEqual unconditionally and store the result
before the && length check, ensuring the constant-time comparison
always runs regardless of buffer lengths. This avoids JavaScript's
&& short-circuit evaluation which would skip timingSafeEqual on
length mismatches, preserving the timing side-channel.
Changes:
- Pad hash and signature buffers to maxLen before comparison
- Store timingSafeEqual result before combining with length check
- Add explanatory comment about the short-circuit avoidance
2026-03-29 00:43:17 +00:00
Peter Steinberger
838013c87a
refactor: expose webhook request guard sdk seam
2026-03-28 05:17:19 +00:00
Tak Hoffman
b9415ca24b
fix(regression): preserve line pairing account context
2026-03-27 23:09:05 -05:00
Peter Steinberger
0d0d46f5e9
refactor: route line media temp paths through temp-path sdk
2026-03-28 03:57:46 +00:00
Peter Steinberger
491969efb0
refactor: route channel activity through channel runtime
2026-03-28 02:53:03 +00:00
Peter Steinberger
05719648a1
test(line): isolate status probe fallback import state
2026-03-28 02:31:39 +00:00
Peter Steinberger
4031bb1914
refactor: trim secret and ssrf helper runtime seams
2026-03-28 02:25:28 +00:00
Tak Hoffman
b9b84f2572
fix(regression): restore line cold-runtime status probing
2026-03-27 20:33:09 -05:00
Peter Steinberger
992b30604d
refactor: move extension-owned tests to extensions
2026-03-27 21:37:09 +00:00
Peter Steinberger
cb5aefb790
fix: sync plugin sdk guardrails and test drift
2026-03-27 20:47:36 +00:00
Peter Steinberger
ae7d93adc4
fix(ci): restore green check after upstream API changes
2026-03-27 20:30:35 +00:00
Peter Steinberger
c28e76c490
refactor: move provider model helpers into plugins
2026-03-27 20:20:31 +00:00
Peter Steinberger
496a1a35bd
fix(test): stabilize line and irc extension suites
2026-03-27 19:32:57 +00:00
Peter Steinberger
605c9306ab
fix(ci): repair extension and discord test gates
2026-03-27 19:26:25 +00:00
Ayaan Zaidi
8b13710c09
refactor(plugin-sdk): expose zod subpath
2026-03-27 09:55:47 +05:30
Peter Steinberger
ef56d79a6a
refactor: collapse zod setup validators
2026-03-27 03:48:15 +00:00
Peter Steinberger
e6c5ce136e
refactor: share zod setup validators across channels
2026-03-27 03:41:40 +00:00
Peter Steinberger
cb76ba2406
test: collapse line channel suites
2026-03-25 04:25:02 +00:00
Peter Steinberger
6f6468027a
refactor: dedupe test and runtime seams
2026-03-24 23:33:30 +00:00
Peter Steinberger
bcd61f0a38
refactor: dedupe helpers and source seams
2026-03-24 21:00:36 +00:00
Peter Steinberger
4029ce738c
test: speed up targeted unit suites
2026-03-24 19:36:08 +00:00
Peter Steinberger
a3f2fbf5a2
refactor: harden extension runtime-api seams
2026-03-23 19:39:20 -07:00
Peter Steinberger
3725b38335
fix: restore ci gates
2026-03-23 14:32:10 +00:00
Peter Steinberger
08b5ba1a12
test: reset line webhook mocks between cases
2026-03-23 12:13:11 +00:00
Vincent Koc
59105fd614
fix(ci): restore plugin manifests and boundary tests
2026-03-22 20:01:25 -07:00
Vincent Koc
ac0fd26e16
fix(ci): resync generated baselines and line runtime seam
2026-03-22 19:53:26 -07:00
Vincent Koc
ac7b7f5536
fix(line): narrow plugin-sdk seams after refactor
2026-03-22 19:44:30 -07:00
Vincent Koc
3ad652fa9e
fix(build): restore plugin-sdk and line compat after refactor
2026-03-22 19:37:27 -07:00
Vincent Koc
2131981230
refactor(plugins): move remaining channel and provider ownership out of src
2026-03-22 19:13:25 -07:00
Peter Steinberger
5c8ea0a175
refactor: share channel setup status helpers
2026-03-23 01:56:01 +00:00
Peter Steinberger
4cc0d05cfb
refactor: share channel runtime state defaults
2026-03-22 23:37:12 +00:00
Peter Steinberger
7f65b3463b
refactor: simplify chat plugin pairing configs
2026-03-22 22:45:06 +00:00
Peter Steinberger
cb4ae1a56d
refactor: adopt chat plugin builder in line
2026-03-22 22:00:25 +00:00
Peter Steinberger
99462776d1
refactor: compose shared channel security adapters
2026-03-22 21:37:31 +00:00
Peter Steinberger
87b2672126
refactor: centralize computed channel status adapters
2026-03-22 21:37:31 +00:00
Peter Steinberger
87722d6327
refactor: extend shared account status snapshot helpers
2026-03-22 20:55:16 +00:00
Peter Steinberger
a2472dc31b
refactor(test): dedupe channel startup test setup
2026-03-22 03:50:41 +00:00
Peter Steinberger
89bc66feef
refactor(test): dedupe startup channel test helpers
2026-03-22 03:41:25 +00:00
Peter Steinberger
f1b2c5639a
refactor(test): dedupe startup and nostr test fixtures
2026-03-22 01:12:31 +00:00