Ten links in dev-docs/agent-runner-pluginization/ pointed to the non-existent ./RUNNER_QA_GUIDE.md; point them to AGENT_RUNNER_QA_GUIDE.md. Rebased onto the docs/ -> dev-docs/ move.
Co-authored-by: RockChinQ <[email protected]>
* feat(line): EBA LINE adapter skeleton (WO-LINE-01-SKELETON-1018)
- pkg/platform/adapters/line/ 9 files (LineAdapter hybrid inheritance +
Capability + event namespace + config env load, zero hardcoded secrets)
- LINE SDK calls all stub (NotImplementedError) pending WO-LINE-00/02/03
- Verified: compileall 7/7 + ruff 0 + import chain green against
v4.11.0-hotfixed SDK (container-extracted, read-only)
- Source: handoff box WO-LINE-01-SKELETON-1018 (sha256 9/9 matched)
Co-authored-by: multica-agent <[email protected]>
* feat(line): implement WO-LINE-02 message.received loop and converter
Co-authored-by: multica-agent <[email protected]>
* feat(line): implement WO-LINE-03 streaming and send API
Co-authored-by: multica-agent <[email protected]>
* feat(line): implement WO-LINE-04 group and user event extensions
Co-authored-by: multica-agent <[email protected]>
* feat(line): implement WO-LINE-05 group and user event extensions
Co-authored-by: multica-agent <[email protected]>
* docs(line): add EBA LINE adapter architecture guide and documentation
Co-authored-by: multica-agent <[email protected]>
* feat(line): resolve Ruff warnings and manifest spec update
Co-authored-by: multica-agent <[email protected]>
* feat(line): add webhook_url config and help_links to PR_DESCRIPTION.md
Co-authored-by: multica-agent <[email protected]>
* feat(line): add webhook_url config and help_links for PR #2736
Co-authored-by: multica-agent <[email protected]>
* fix(line): ruff format, update help_links, remove nested duplicate dir
Co-authored-by: multica-agent <[email protected]>
* fix(line): resolve 12 test failures, align types, and move architecture docs to dev-docs
Co-authored-by: multica-agent <[email protected]>
* fix(line): resolve ruff lint and formatting issues for CI
Co-authored-by: multica-agent <[email protected]>
* docs(line): sanitize internal orchestration notes and standardize documentation
Co-authored-by: multica-agent <[email protected]>
* clean(line): remove internal tracking ticket references from source code
Co-authored-by: multica-agent <[email protected]>
* fix(line): resolve MessageReceivedEvent and Friend entity mapping for 100% test pass
Co-authored-by: multica-agent <[email protected]>
* fix(line): resolve E402 import order in event_converter.py
Co-authored-by: multica-agent <[email protected]>
* feat(line): implement the LINE Omni adapter on the legacy messaging flow
Replace the placeholder skeleton with a working unified-webhook adapter:
- verify X-Line-Signature with WebhookParser and acknowledge before dispatch
- build real LINE messaging clients from channel_access_token and drop
the adapter's own messages using the account id from get_bot_info
- map message/image/voice events to message.received, unsend to
message.deleted, membership changes to group/bot events, and the
remaining LINE event types to platform.specific with chat identity
- send and reply through MessagingApi with LINE's five-message budget,
a reply-token to push fallback, and honest NotSupportedError paths
- expose get_user_info, get_group_info, leave_group and the get_bot_info,
get_profile, get_group_summary pass-through actions
- keep the legacy FriendMessage/GroupMessage listeners working
- move tests to tests/unit_tests/platform, add the adapter doc, and
register line in OMNI_ADAPTER_NAMES
Co-authored-by: multica-agent <[email protected]>
---------
Co-authored-by: multica-agent <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
Fixes#2814
After a session reset, keep the reset generation marker out of provider-facing external conversation state so Runner plugins start a new remote conversation.
LocalAgent declared langbot-plugin>=0.7.18, and the published 0.2.2 artifact
pinned langbot-plugin==0.7.16. The plugin runtime rejects any SDK requirement
its own SDK version does not satisfy, so both directions were dead ends: 4.11.4
(SDK 0.7.19) could not install the published build, and a 0.7.18 floor would
have locked out 4.11.2/4.11.3 (SDK 0.7.16) from the next one.
Use a bounded range from the 4.11.2 baseline instead, matching every other
official Runner and KnowledgeEngine plugin. Verified on SDK 0.7.16 and 0.7.19:
327 tests pass on both, including the runtime dependency admission contract.
Co-authored-by: multica-agent <[email protected]>
The packaging job pinned langbot-plugin 0.7.18 while Core runs 0.7.19, so it
would validate archives with a CLI that no longer matches the SDK contracts the
plugins are shipped against. Follow the Core pin.
Co-authored-by: multica-agent <[email protected]>
0041_resource_urls could not be rolled back through the supported entry point
(`python -m langbot.pkg.persistence.alembic_runner downgrade`):
- SQLite failed with `no such function: langbot_expand_resource_urls`. The UDF
is registered by an Engine `connect` hook that only runs when the application
installs the catalog, so a standalone migration process held a connection
without it.
- Both backends failed with `AttributeError: 'Engine' object has no attribute
'_langbot_resource_aliases'`, because `uninstall()` assumed `install()` had
already run on that engine.
Register the expansion UDF on the migration connection for SQLite, and let
`uninstall()` skip the alias cache when the engine never installed it. The
downgrade still rewrites retained payloads back to literal URLs and drops the
catalog; only the missing hooks were at fault.
Co-authored-by: multica-agent <[email protected]>
- webhook handler: run listener in a tracked background task so the
HTTP ACK is not coupled to the Agent run lifetime (prevents in-flight
cancellation when the request scope ends); exceptions are logged
- send_message: implement LINE Push API path (text + image) instead of
the empty stub, separated from the reply-token path
Verified in production on a self-hosted v4.11.0 deployment (LangBot
community edition, rootless Docker).
Co-authored-by: leonoxo <[email protected]>