4605 Commits
Author SHA1 Message Date
RockChinQ 49651edd45 Merge pull request #2742 from langbot-app/fix/cloud-projection-startup-window
fix(cloud): keep the directory projection fresh during startup
2026-10-22 01:36:41 +08:00
RockChinQandmultica-agent 5c0236ac3e fix(cloud): keep the directory projection fresh during startup
Boot continues for minutes after the first directory snapshot is committed:
platform ports reconnect, knowledge bases and pipelines reload, and a cold
shared Runtime restore may still be running. The refresh loop only started at
the end of that stage, so any boot slower than the projection staleness window
failed closed while restoring knowledge bases, and Core then exited during
startup - every retry hit the same window.

Start the single refresh task as soon as the first snapshot is committed and
keep the later start as a guarded fallback so the loop is never created twice.

Observed on the production Cloud instance: a boot that took ~120s to reach
knowledge base restore raised 'Cloud directory projection is stale' and the
process exited, while the same image had booted earlier with a faster start.

Co-authored-by: multica-agent <[email protected]>
2026-10-21 17:20:36 +00:00
RockChinQ af013eb077 Merge pull request #2741 from langbot-app/agent/mika/99145c30e373
feat(cloud): add configurable Cloud-only WebUI notice banner
2026-10-22 00:43:46 +08:00
RockChinQandmultica-agent d45b0a3957 feat(cloud): add configurable Cloud-only WebUI notice banner
Cloud deployments need a way to tell readers what is happening to the
instance they are using (maintenance windows, service notices) without
shipping a release per notice.

Add a cloud.banner config block (switch, tone, dismissal, link targets and
per-language copy) and expose the resolved banner on the unauthenticated
/api/v1/system/info payload so the WebUI can render it before login. The
banner resolves to null on OSS deployments, so a self-hosted copy of
config.yaml never shows managed-service copy. Copy is plain text; only
absolute http(s) link targets are rendered.

The WebUI renders it once from the root layout, offsets the fixed app shell
and the wizard through --cloud-banner-height, and keeps a dismissal bound to
the notice it dismissed so new copy reappears.

Co-authored-by: multica-agent <[email protected]>
2026-10-21 16:26:43 +00:00
0d365c98d8 feat(web): change upgrade button to outline variant to match workspace switcher style (#2740)
Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-21 22:18:44 +08:00
RockChinQ 49caa69dbc Merge pull request #2738 from langbot-app/fix/plan-credits-copy-and-upgrade-button
fix(web): outline the plan upgrade control and call the grant 模型积分
2026-10-21 18:41:27 +08:00
Chin Rockandmultica-agent 6bea0f15e1 fix(web): outline the plan upgrade control and call the grant 模型积分
Co-authored-by: multica-agent <[email protected]>
2026-10-21 10:32:21 +00:00
RockChinQ 3eecf0496f Merge pull request #2737 from langbot-app/agent/sg-claude/07b0571b414f
feat(web): rename credits label, shorten workspace switcher, add upgrade button
2026-10-21 16:23:45 +08:00
Chin Rockandmultica-agent 61c59687c2 fix(web): satisfy prettier and align the switcher layout spec after the upgrade control
Co-authored-by: multica-agent <[email protected]>
2026-10-21 08:06:42 +00:00
fa2913a986 feat(web): rename credits label to model credits, shorten workspace switcher, add upgrade button
- creditsLabel: 每月赠送积分 → 模型积分 (zh), Monthly credits → Model credits (en), 毎月のクレジット → モデルクレジット (ja)
- creditsHelp: append note that own model providers remain usable after credits run out, all locales
- WorkspaceSwitcher trigger: cap workspace name to 6rem, remove justify-start
- HomeSidebar: add ArrowUp upgrade icon button next to workspace switcher (cloud_projection only), opens CloudPlansDialog lazy-loaded

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-21 07:45:56 +00:00
彼方 09b373c333 Merge pull request #2735 from langbot-app/fix/image-referrer-policy
fix(web): omit referrer when loading message images
2026-10-21 13:11:35 +08:00
BiFangKNT 726ad5530f fix(web): omit referrer when loading message images
Set no-referrer on message thumbnails and previews to prevent
QQ image requests from returning 400 and triggering ORB.

Add browser coverage for image loading and request headers.
2026-10-21 12:03:00 +08:00
RockChinQ fc62f2ee13 Merge pull request #2734 from langbot-app/agent/mika/be8d90f5d320
chore(release): prepare 4.11.1 with SDK 0.7.16
v4.11.1
2026-10-20 23:52:47 +08:00
RockChinQandmultica-agent 816d7fee3b chore(release): prepare 4.11.1 with SDK 0.7.16
Co-authored-by: multica-agent <[email protected]>
2026-10-20 15:44:50 +00:00
RockChinQandmultica-agent d13ae56ea5 fix: bot routing setup and busy-session response checks (#2728)
Apply group response rules before busy-session steering. Initialize usable private-message and group-mention routes for new bots, including Wizard-created pipelines, and preserve member-configured rules across saves and retries.

Fix empty pipeline configuration, refresh the processor sidebar after automatic creation, and show creation feedback. Align routing regressions and use Node 24 for the browser CI job.

Correct the task's erroneous agent attribution while preserving every code tree and the original human contribution.

Co-authored-by: multica-agent <[email protected]>
2026-10-20 21:22:53 +08:00
RockChinQandmultica-agent f8e32ef14f LANG-134: Finish original inbound monitoring row on pipeline error (#2729)
* fix(inbound-error-state): Finish original inbound monitoring row on pipeline error (LANG-134)

* fix(pipeline): finalize monitoring on early exits and cancellation

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

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-20 20:39:10 +08:00
RockChinQ 819f65bd8a Merge pull request #2731 from langbot-app/task/LANG-136-explicit-response-files
LANG-136: Deliver explicit attachments without implicit Box scan
2026-10-20 19:46:48 +08:00
RockChinQ 71feb33244 Merge pull request #2730 from langbot-app/task/LANG-135-safe-history-indexes
LANG-135: Guard 0039 indexes against missing historical columns
2026-10-20 18:11:30 +08:00
RockChinQ 8cc8243162 Merge pull request #2727 from langbot-app/task/LANG-132-install-diagnostics
LANG-132: Sanitize plugin installation network diagnostics
2026-10-20 17:10:04 +08:00
Chin Rockandmultica-agent c28ae761ac fix(web): format migration diagnostics and tolerate wrapped translations
Co-authored-by: multica-agent <[email protected]>
2026-10-20 09:09:41 +00:00
彼方 4a95a16801 Merge pull request #2732 from langbot-app/chore/update-sdk-0.7.15
chore(deps): update langbot-plugin to 0.7.15
2026-10-20 16:19:02 +08:00
BiFangKNT 6bdd5e8c94 chore(deps): pin released langbot-plugin 0.7.15 2026-10-20 15:59:00 +08:00
Chin Rock 0990cc429d fix(explicit-response-files): Deliver explicit attachments without implicit Box scan (LANG-136) 2026-10-20 07:54:05 +00:00
Chin Rock 4d91903596 fix(safe-history-indexes): Guard 0039 indexes against missing historical columns (LANG-135) 2026-10-20 07:54:02 +00:00
Chin Rock 40d40204cf fix(install-diagnostics): Sanitize plugin installation network diagnostics (LANG-132) 2026-10-20 07:53:56 +00:00
彼方 1baba1b9f9 Merge pull request #2725 from langbot-app/fix/session-summary-persistence
fix(monitoring): persist session summaries to avoid history scans
2026-10-20 11:53:06 +08:00
BiFangKNT 3b1ea56f4f fix(monitoring): avoid historical payload reads in execution filters
- Add covering indexes through migration 0040
- Preserve PostgreSQL FORCE RLS state when marking historical summaries
- Add query-plan and migration regression tests to CI
2026-10-20 10:45:44 +08:00
BiFangKNT 7129e20cf6 fix(monitoring): paginate conversation IDs before loading message payloads
Count and paginate lightweight records, then load payloads only for the
selected page to avoid materializing large historical messages.

Add regression coverage for oversized history, ingress deduplication,
stable pagination, and PostgreSQL tenant isolation.
2026-10-20 09:34:05 +08:00
BiFangKNT 17aa5a75ac test(persistence): align migration fixtures with startup bootstrap 2026-10-20 06:50:07 +08:00
BiFangKNT 810d053df9 fix(monitoring): persist session summaries to avoid history scans
- Maintain counts and display snapshots in source transactions with replay-safe deduplication.
- Read session lists exclusively from summaries and remove execution-only filters.
- Automatically initialize historical summaries in bounded, resumable batches during OSS startup.
- Add behavioral contracts covering accounting, retention, query cost and PostgreSQL concurrency.

Verified with the required session_summary suite and real container upgrade startup.
2026-10-20 06:12:00 +08:00
Chin Rockandmultica-agent b7992e4ea6 fix(ci): align HTTP attachment test with explicit file export
Co-authored-by: multica-agent <[email protected]>
2026-10-19 19:02:21 +00:00
41b55952ff fix(runner): avoid duplicate inline image payloads (#2631)
* fix(runner): avoid duplicate inline image payloads

* fix(runner): preserve attachments and complete HTTP agent delivery

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

---------

Co-authored-by: Qingsong Li <[email protected]>
Co-authored-by: Chin Rock <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-20 02:14:36 +08:00
RockChinQandmultica-agent a10a6eb780 fix(ci): provision real-stack browser dependencies and disambiguate runtime assertion (#2724)
Co-authored-by: multica-agent <[email protected]>
2026-10-20 00:08:14 +08:00
RockChinQandmultica-agent d9e4e7d9df fix(pipeline): decouple Runner from extension permissions (LANG-54) (#2723)
* fix(pipeline): decouple runner from extension allowlist

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

* fix(pipeline): complete runner diagnostics and real runtime coverage

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

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-19 23:07:11 +08:00
RockChinQ 5a6ddbff6f Merge pull request #2656 from fluo-rite/fix/telegram-mention-entities
fix(telegram): respect entity boundaries when parsing bot mentions
2026-10-19 17:51:31 +08:00
RockChinQandmultica-agent 52e8042f51 fix(telegram): match mention usernames case-insensitively
Co-authored-by: multica-agent <[email protected]>
2026-10-19 17:33:51 +08:00
Haoxuan Jiang 841b4df09d fix(lark): preserve incoming rich-text code blocks (#2626) 2026-10-19 16:26:16 +08:00
RockChinQandmultica-agent 42f6f7373b chore(deps): pin released langbot-plugin 0.7.14
Co-authored-by: multica-agent <[email protected]>
2026-10-19 08:06:30 +00:00
947d8addea fix(box): validate and export explicitly selected files (#2641)
* fix(box): retain outbox files when export fails

* test(box): retain ownership evidence in CI logs

* test(box): exercise LocalAgent export repair through real runtime and Docker

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

* fix(box): complete bounded outbox recovery contract

* feat(box): export explicitly selected files

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

* test(box): exercise explicit export on real Docker

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

* test(box): verify explicit exports with live model and Docker

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

* fix(box): align explicit export SDK and integration contracts

* docs(box): describe selected-file export contract

---------

Co-authored-by: HaiYangBG1 <[email protected]>
Co-authored-by: Chin Rock <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-19 15:31:33 +08:00
bce94bd0d9 fix(tools): require python3 for Box native file scripts (#2658)
* fix(tools): require python3 for Box native file scripts

Unversioned `python` is still Python 2 on some host-rootfs nsjail
mounts. Falling back to it made read/write/edit scripts fail with
SyntaxError on f-strings (#2603).

Resolve only `python3`, and return a clear JSON error when it is
missing instead of invoking Python 2.

Fixes #2603

* style(tools): format Box interpreter error command

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

---------

Co-authored-by: Li-john1021 <[email protected]>
Co-authored-by: Chin Rock <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-19 14:46:47 +08:00
Jonathan Neufeld 5c3675f4cc feat(vector): tag the Valkey Search client lib-name for attribution (#2620)
Set client_info_tag='langbot' on the Valkey Search vector store's glide
client, so CLIENT SETINFO LIB-NAME reports GlidePy(langbot) and operators
can attribute Valkey usage to LangBot. client_name is unchanged.

client_info_tag was added in valkey-glide 2.5.2, so raise the floor from
>=2.4.1 to >=2.5.2 (pyproject, install hint, docs) and regenerate uv.lock.
2026-10-19 14:29:19 +08:00
RockChinQ 43c481d74a Merge pull request #2628 from carfeii/fix/lark-webhook-signature-verification
fix(lark): verify webhook event-subscription signature before dispatch
2026-10-19 02:04:37 +08:00
Hyu 868f89a383 merge: integrate master into lark webhook signature fix 2026-10-19 01:53:46 +08:00
Hyu 757f8b7a35 fix(lark): authenticate plaintext webhooks and explain credentials 2026-10-19 01:48:29 +08:00
Martin fef2688225 feat(docker): add health checks to compose services (#2563)
Probe the existing HTTP health endpoints exposed by each service:
- langbot: GET /healthz on 5300
- langbot_plugin_runtime: GET /healthz on 5400
- langbot_box: GET /readyz on 5410 (readiness, 503 until ready)

python is used instead of curl because the image removes curl at build time.
2026-10-19 01:41:20 +08:00
彼方 62b647761f Merge pull request #2718 from langbot-app/fix/nonblocking-console-logging
fix(logging): prevent blocked stdout from freezing LangBot
2026-10-19 01:12:59 +08:00
RockChinQ 4b87bb0a35 Merge pull request #2654 from ShaoLOWu/fix/bootutils-files-global-clobber
fix(core): stop generate_files from clobbering the required_paths global
2026-10-19 00:52:19 +08:00
BiFangKNT de26cebdac fix(logging): make shutdown queue retry explicit 2026-10-18 19:29:36 +08:00
BiFangKNT 4a989dd8aa fix(logging): prevent blocked stdout from freezing LangBot
- Isolate console writes with a bounded queue and daemon thread
- Preserve file logging and WebUI caching when stdout stalls
- Flush startup output before starting the writer to prevent exit hangs
- Add regression tests for backpressure, overflow, and shutdown
2026-10-18 19:13:22 +08:00
Zhang Bowen 9ac9958391 fix(web): hide revoked API keys in integration settings (#2714) 2026-10-18 17:26:39 +08:00