mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 14:21:34 +00:00
* refactor(media): delete internal MsgContext.Media* parallel fields for fact-only runtime Internal runtime now carries a fact-only RuntimeMsgContext: the legacy MediaPath/MediaUrl/MediaType parallel fields (and plural/transcribed variants), their alignment and default helpers, and bundled legacy payload builders are removed from internal paths. Staging, hooks, Gateway, media understanding, and the Telegram, QQ, Signal, Slack, iMessage, Discord, QA, and Zalo plugins consume ordered MediaFact[] directly. Retained boundaries per the program audit: public Plugin SDK MsgContext, persisted transcript Media* rows, and documented template variables keep working via projectMediaFacts at the five declared seams (fact owner, channel payload, inbound-event, transcript persistence, SDK adapter). Review-round hardening, each with regressions: - hasStagedMediaProjection requires every path-bearing fact staged (was any-satisfied; mixed contexts skipped staging unstaged facts). - finalizeInboundContext returns Omit<T, LegacyMediaContextKey> so deleted legacy fields leave the type when they leave the object. - QQ image facts carry explicit kind: "image" (remote URLs have no MIME). - resolveStagedMediaFacts adopts staged legacy paths positionally while retaining canonical fact metadata and cardinality (staged projections previously replaced canonical facts wholesale). 1,615 tests across 47 files; goldens untouched; delegated check:changed green (run 30009882062). * test(media): migrate remaining legacy Media* consumer suites to structured facts Exact-head CI caught suites outside the curated affected set that still asserted internal legacy fields. All were stale internal-field assertions migrated to facts, except QA Channel, which had a real migration gap: it still constructed the bundled legacy payload internally and now normalizes saved attachments with toInboundMediaFacts and passes the declared media parameter directly. Exhaustive rg sweep over every test referencing the deleted fields (133 files, each run individually) is green.
OpenClaw LINE
Official OpenClaw channel plugin for LINE Bot API chats.
Install from OpenClaw:
openclaw plugin add @openclaw/line
Configure LINE channel credentials in OpenClaw, then connect the bot to the chats where agents should receive and send messages.