Commit Graph
5623 Commits
Author SHA1 Message Date
fdc310 72068e41fa fix(dify): merge HITL resume streaming into in-tree plugin 2026-10-30 12:49:15 +08:00
fdc310 67115d431b Merge remote-tracking branch 'origin/master' into feat/cross-platform-ai-cards 2026-10-30 12:13:31 +08:00
huanghuoguoguo 292fe43731 test(plugins): use in-tree sources without hash pins
Use the in-tree plugins directly for consumer contracts and avoid per-edit hash refreshes.
2026-10-30 11:11:31 +08:00
huanghuoguoguo 70fb56e274 fix(agent): keep reset generation out of external conversation ID (#2818)
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.
2026-10-30 10:21:33 +08:00
huanghuoguoguo 98a242320b test(cli): add compatibility job with semantic assertions (#2813)
Squash merge after rebasing onto the merged companion suites and passing all required checks.
2026-10-30 09:33:00 +08:00
huanghuoguoguo 7119cc94ba test(regression): add plugin lifecycle recovery job (#2812)
Squash merge after resolving companion-suite conflicts and passing all required checks.
2026-10-30 09:20:37 +08:00
huanghuoguoguo 21ff044df1 test(regression): add concurrent conversation isolation job (#2811)
Squash merge after conflict resolution and all required checks passed.
2026-10-30 09:06:07 +08:00
huanghuoguoguo 52b07cb01f fix(regression): tolerate sandbox removal during resource sampling
Squash merge after all required checks passed.
2026-10-30 08:53:23 +08:00
huanghuoguoguo 687fc52b36 Merge pull request #2810 from langbot-app/test/state-lifecycle-job
test(regression): add durable state lifecycle job
2026-10-30 08:35:09 +08:00
fdc310 e4f36490b1 fix(plugins): refresh LocalAgent source hashes 2026-10-30 02:13:38 +08:00
fdc310 fe739135c7 chore(merge): sync master into interactive cards 2026-10-30 02:03:05 +08:00
fdc310 983e12acdf fix(lark): stream replies after HITL submissions 2026-10-30 01:06:10 +08:00
Chin Rockandmultica-agent 75e1630550 fix(localagent): keep the SDK constraint installable across 0.7.x
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]>
2026-10-29 15:48:06 +00:00
Chin Rockandmultica-agent 3ac4eef3ec chore(release): bump version to 4.11.4
Co-authored-by: multica-agent <[email protected]>
v4.11.4
2026-10-29 13:40:29 +00:00
Chin Rockandmultica-agent a9ad6ac00b ci(plugins): build plugin packages with the current SDK CLI
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]>
2026-10-29 13:40:29 +00:00
Chin Rockandmultica-agent 1f81966606 fix(persistence): make resource URL catalog downgrade work standalone
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]>
2026-10-29 12:30:28 +00:00
fdc310 21e2187c6c fix(dingtalk): show submitted HITL choices in cards 2026-10-29 20:23:06 +08:00
fdc310 d611f687eb fix(wecombot): stream replies after HITL cards 2026-10-29 19:29:32 +08:00
leonoxoandleonoxo c1284be8fc fix(line): decouple webhook processing lifecycle and use Push API for proactive sends (#2721)
- 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]>
2026-10-29 14:54:31 +08:00
huanghuoguoguo 31bcd673e7 Merge pull request #2806 from langbot-app/ci/daily-api-contract
ci(daily): add API contract regression job
2026-10-29 11:10:46 +08:00
huanghuoguoguo f5924164d2 ci(daily): run API contracts alongside endurance 2026-10-29 11:00:11 +08:00
huanghuoguoguo b19315b078 test: add isolated API contract regression job 2026-10-29 10:57:16 +08:00
huanghuoguoguo 96ec96baf2 Merge pull request #2805 from langbot-app/fix/mcp-mode-validation
fix(mcp): reject unsupported modes before persistence
2026-10-29 10:41:57 +08:00
huanghuoguoguo 3969c3d25d fix(mcp): reject unsupported modes before persistence 2026-10-29 10:14:02 +08:00
fdc310 2721a213e8 fix(wecombot): handle native select card callbacks 2026-10-29 04:23:54 +08:00
Chin Rockandmultica-agent 117e3bb350 fix(dify-agent): separate final answers and release 0.2.5
Co-authored-by: multica-agent <[email protected]>
2026-10-28 15:15:48 +00:00
huanghuoguoguo 0ce6eee2f4 Merge pull request #2784 from langbot-app/ci/daily-endurance
ci(regression): exercise monorepo plugins in daily functional cycles
2026-10-28 21:45:12 +08:00
huanghuoguoguo c21b3bc0ad Merge pull request #2803 from langbot-app/fix/localagent-latest-sdk
fix(localagent): follow the latest stable SDK in dependency checks
2026-10-28 21:43:07 +08:00
huanghuoguoguo 63a00d1856 Merge pull request #2798 from langbot-app/test/box-cancel-persistent-oracle
test(regression): preserve cancellation evidence across Box retirement
2026-10-28 21:42:31 +08:00
huanghuoguoguo e3792184bf test(localagent): refresh source hashes for updated SDK requirements 2026-10-28 21:08:53 +08:00
Guanchao Wang ce3a4e7bfd Merge pull request #2564 from Smilewithoutfalling/fix/wecombot-throttle-stream-push
fix(wecombot): throttle intermediate stream frames in WS mode
2026-10-28 13:03:37 +00:00
huanghuoguoguo 21be11766b ci(regression): build monorepo plugins and exercise local command and page APIs 2026-10-28 20:46:53 +08:00
WangCham bab86430e6 fix(wecombot): preserve throttled snapshots for empty final frames 2026-10-28 20:46:15 +08:00
huanghuoguoguo b21d150c4c fix(localagent): test against the latest stable SDK 2026-10-28 20:31:31 +08:00
huanghuoguoguo 67419699b4 test(regression): preserve cancellation evidence across Box retirement 2026-10-28 20:27:02 +08:00
huanghuoguoguo 1f842381df test(regression): preserve cancellation evidence across Box retirement 2026-10-28 20:01:13 +08:00
huanghuoguoguo f684d7f3f1 ci(regression): run daily functional cycles with selectable scenarios 2026-10-28 20:01:13 +08:00
RockChinQandmultica-agent 0608408352 chore(deps): pin langbot-plugin 0.7.19 (#2801)
* chore(deps): pin langbot-plugin 0.7.19

Co-authored-by: multica-agent <[email protected]>

* test(agent): accept the SDK 0.7.19 cancel_peer_on_cancel handoff in runtime doubles

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-28 19:26:01 +08:00
RockChinQandmultica-agent 62c24c43e3 fix(i18n): add missing spaceUpload keys to all locales (#2800)
Co-authored-by: multica-agent <[email protected]>
2026-10-28 18:45:57 +08:00
RockChinQandmultica-agent 0219007acd fix(qqofficial): correct group mentions and reply sequences (LANG-181) (#2799)
* fix(qqofficial): preserve native mentions and reply sequences (LANG-181)

Co-authored-by: multica-agent <[email protected]>

* fix(qqofficial): respect group mention rendering capability

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-28 18:43:18 +08:00
4b537973f9 feat(plugin): upload debug plugin to LangBot Space with optional GitH… (#2612)
* feat(plugin): upload debug plugin to LangBot Space with optional GitHub sync

- SDK: reusable in-memory .lbpkg packaging + git sync helper (local git by default, optional repo/token override)
- routing: space-upload config/upload/git-sync endpoints; debug plugins resolved via OSS bridge without touching get_plugin_info
- frontend: debug-card entry + upload dialog with multi-language metadata, icon upload and changelog
- i18n across 8 locales; operation-trace + action allowlist entries

* fix(plugin-space-upload): stable dialog width, single-line locale tabs, broader error surfacing

- fixed dialog width so toggling the GitHub section no longer resizes it
- language tabs render on one line (horizontal scroll when needed)
- surface the real upload/git error message (msg field) instead of [object Object]
- hint that a missing GitHub repo is auto-created when a token is provided

* fix(plugin-space-upload): narrow dialog and reset sm:max-w clamp

The base DialogContent applies sm:max-w-lg at the sm breakpoint, which overrode the unprefixed max-w-none and clamped the upload card to 32rem on desktop. Set an explicit sm:max-width and size the card to ~36rem. Locale tabs now wrap instead of scrolling horizontally.

* fix

* fix(plugin-space-upload): address CI and UX feedback

- narrow the upload dialog to ~36rem and reset the sm:max-w clamp
- guide the publisher to the Space review page after a successful upload
- drop the redundant null comparison flagged by code quality
- update the operation-action expectation and Space/LangBot Account wording
- ruff format the touched API modules

* feat(plugin-space-upload): public repo, editable author/license, card red dot

* fix(market): replace yellow download count with update available badge

* style(market): unify installed and update indicators into badges

* feat(plugin): redesign debug card banner, style debug icon, and prioritize debug plugins

* feat(plugin-space-upload): simplify upload dialog layout, add creator verification and market redirection

* fix(i18n): use LangBot Account terminology in Space upload dialog

Co-authored-by: multica-agent <[email protected]>

* style(i18n): reflow reworded locale strings for prettier

Co-authored-by: multica-agent <[email protected]>

* test(utils): stop timing out the pattern-count cap test on loaded runners

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: Hyu <[email protected]>
Co-authored-by: RockChinQ <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-28 18:23:09 +08:00
Chin Rockandmultica-agent 4687fc96e7 fix(auth): allow sole OSS account to adopt Space email
Co-authored-by: multica-agent <[email protected]>
2026-10-28 10:21:35 +00:00
RockChinQandmultica-agent 3a77306c3c feat(plugins): consolidate official plugins with independent releases (LANG-180) (#2797)
Co-authored-by: multica-agent <[email protected]>
2026-10-28 17:32:24 +08:00
huanghuoguoguo d099033d79 test(regression): verify callback retries and owned service restarts (#2796)
* test(regression): add selectable resource lifecycle cases

* test(regression): exercise local execution faults and cleanup

* test(regression): verify callback retries and owned service restarts
2026-10-28 16:23:46 +08:00
huanghuoguoguo a7bc48f601 test(regression): exercise local execution faults and cleanup (#2795)
* test(regression): add selectable resource lifecycle cases

* test(regression): exercise local execution faults and cleanup
2026-10-28 16:20:15 +08:00
huanghuoguoguo 77dfa17c57 test(regression): add selectable resource lifecycle cases (#2794) 2026-10-28 16:11:19 +08:00
Smilewithoutfalling 76873c85e7 fix(wecombot): throttle intermediate stream frames in WS mode
Drop intermediate stream frames that land inside the pacing window so a fast
runner cannot flood the WeCom wire. The first frame of a stream is released
immediately because there is no prior timestamp to compare against, and final
frames always bypass the throttle.

Frames carry complete snapshots since a2b7f6b7, so dropping an intermediate
frame loses no content: the next frame already carries everything.
2026-10-28 12:26:37 +08:00
huanghuoguoguo f837083781 test(regression): run expanded scenarios within a shared execution budget (#2793)
* test(regression): expand finite scenarios and share bounded execution lifecycle

* fix(regression): continue job cleanup after state persistence failure
2026-10-28 12:16:36 +08:00
huanghuoguoguo 50e7175066 test(regression): report behavior assertions and observed HTTP routes (#2792)
* test(regression): report asserted behavior coverage and observed HTTP routes

* fix(regression): finalize all callers and classify HTTP evidence safely
2026-10-28 11:49:42 +08:00
huanghuoguoguo 84dd3708fb test(tools): resolve and install latest published plugins with replay evidence (#2791) 2026-10-28 11:49:34 +08:00