Commit Graph
160 Commits
Author SHA1 Message Date
RockChinQandmultica-agent 3378ecfcfb test(api-tools): tests for runner workspace operations delivery and execution API (LANG-227)
Co-authored-by: multica-agent <[email protected]>
2026-11-01 04:37:18 +00:00
RockChinQandmultica-agent d41959effd feat(api-tools): preserve run_id is required error message in from_handler mode
LANG-231: Restore backward-compatible 'run_id is required' error message when run-scoped actions are invoked via handler without run_id, resolving regression in agent auth tests.
Co-authored-by: multica-agent <[email protected]>
2026-10-31 22:52:45 +08:00
RockChinQandmultica-agent 8c5ee20283 fix(api-tools): accept runtime_list cursor and float stale_after_seconds, verify 69 operation dispatches
LANG-231: Fix SDK 0.7.19 input compatibility regressions by accepting optional
cursor in ExecutionRuntimesInput and float | None stale_after_seconds in
ExecutionRuntimeReconcileInput. Update test_all_69_operations_route_through_execution_api
to drive real SDK 0.7.19 payloads through handler and assert raw execution dispatch.
Add autouse fixture in plugin tests to isolate transfer root environment leaks.

Co-authored-by: multica-agent <[email protected]>
2026-10-31 21:34:04 +08:00
RockChinQandmultica-agent 9ab64baa63 feat(api-tools): route plugin actions through ExecutionAPI facade and accept SDK 0.7.19 payloads
LANG-231: Route all plugin/runner actions to Core through ExecutionAPI facade.
Support real SDK 0.7.19 payloads across query, model, storage, and RAG schemas.
Add integration routing test for all 69 operations and catalog export script.

Co-authored-by: multica-agent <[email protected]>
2026-10-31 21:00:04 +08:00
RockChinQandmultica-agent a159b27b8e fix(api-application): enforce processor allowed operation intersection and remove privilege escalation (LANG-224)
Co-authored-by: multica-agent <[email protected]>
2026-10-31 12:37:41 +00:00
RockChinQandmultica-agent 50abaf83e8 test(api-tools): add processor principal sweep integration test
LANG-224

Co-authored-by: multica-agent <[email protected]>
2026-10-31 12:20:14 +00:00
huanghuoguoguo 8f2f537e34 fix(api): preserve integer knowledge ingestion task IDs 2026-10-29 15:47:56 +08:00
huanghuoguoguo d2176eaa27 test(persistence): require PostgreSQL release upgrade regression 2026-10-29 14:43:13 +08:00
huanghuoguoguo 7295639423 feat(api): provide Workspace and execution API foundations 2026-10-29 12:45:02 +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
BiFangKNT 95a378a8f1 fix(persistence): reclaim oversized SQLite WAL files
- Require successful WAL truncation before starting application producers
- Preserve completed migrations and retry checkpoint failures on restart
- Set a 64 MiB WAL retention limit on every SQLite connection
- Preserve default automatic checkpoint behavior and reader snapshots
- Cover startup failures, connection recreation, and WAL reclamation
2026-10-24 02:03:41 +08:00
BiFangKNT 93e5ae4689 fix(persistence): replace online SQLite VACUUM with incremental reclamation
- Add migration 0042 to enable incremental vacuum with verified backup and restore
- Enable incremental vacuum before creating tables in new SQLite databases
- Adapt reclamation batches to elapsed time and lock contention
- Cover migration recovery, WAL mode, and concurrent writes with regression tests
2026-10-23 23:59:00 +08:00
BiFangKNT 3456668497 feat(media): centralize resource URLs and persist refreshed image URLs
- Deduplicate message and history resource URLs using stable catalog references
- Persist renewed URLs with concurrent refresh protection
- Refresh OneBot images via get_msg intervals or NapCat rkey TTL
- Migrate historical payloads and cover SQLite and PostgreSQL behavior
2026-10-23 12:49:56 +08:00
RockChinQandmultica-agent 01789e498a LANG-145: bind WebAuthn to server config and make passkeys OSS-only (#2744)
* LANG-145: bind WebAuthn to server config and make passkeys OSS-only

Two problems in the passkey implementation:

1. The RP ID and expected origin came from the request: a JSON 'origin' field,
   then the Origin/Referer headers, then the request URL. WebAuthn's
   anti-phishing guarantee depends on values the server chose; trusting the
   request lets a sibling host under the same registrable domain obtain a valid
   assertion for a victim's credential. Resolution now follows the same rule the
   OAuth and invitation links already use: api.webui_url, then
   api.webhook_prefix, then the configured port on loopback.

2. Passkeys are now an OSS-only feature. Cloud deployments authenticate through
   their own account service, so every passkey route (register options/verify,
   auth options/verify, list, rename, delete) refuses with
   edition_unsupported, and /account-info advertises neither passkey_login_enabled
   nor passkey_supported. Both cloud flavours are covered: system.edition ==
   'cloud' and deployment.mode == 'cloud'.

Tests:
- New unit suite for the edition matrix and for origin resolution (including
  that client-supplied origin/Origin/Referer are ignored).
- The three 'reverse proxy scenario' tests asserted the old, unsafe behaviour
  (server trusting the request). They now assert the server-config contract.
- test_smoke cloud capabilities expectation updated to passkey_* = false.

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

* style(api): drop the typing import left unused by the WebAuthn origin change

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

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-22 20:39:21 +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 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
BiFangKNT 57077740bd chore(merge): sync master and preserve monitoring test coverage 2026-10-18 12:43:44 +08:00
BiFangKNT b73f66a234 feat(persistence): enforce image reference storage contract
- Reject structured inline images on ORM and Core writes
- Route plugin run results through the media-aware journal
- Redact legacy inline images before merging run metadata
- Cover storage contracts and regressions on SQLite and PostgreSQL
2026-10-18 12:26:09 +08:00
BiFangKNT 80b8358d8d test(monitoring): add status column to monitoring messages table 2026-10-18 11:10:35 +08:00
huanghuoguoguo 13b8edeace Merge pull request #2705 from langbot-app/test/required-contract-suites
test(ci): decouple required suites from test names and counts
2026-10-17 23:12:59 +08:00
huanghuoguoguo 407e352e5d Merge pull request #2695 from langbot-app/test/quality-migration-oracles-20261017
test(migrations): reuse historical data contracts and measure startup peaks
2026-10-17 20:12:34 +08:00
huanghuoguoguo fc877f73df Merge pull request #2693 from langbot-app/test/quality-box-platform-oracles-20261017
test(runtime): verify sandbox and platform behavior contracts
2026-10-17 20:12:22 +08:00
huanghuoguoguo c9f886a203 Merge pull request #2692 from langbot-app/test/quality-valkey-search-oracles-20261017
test(vector): verify real Valkey search and deletion results
2026-10-17 20:12:15 +08:00
huanghuoguoguo 64cdb7095d Merge pull request #2691 from langbot-app/test/quality-bot-api-oracles-20261017
test(api): verify bot response and service delegation contracts
2026-10-17 20:12:09 +08:00
huanghuoguoguo da4c987976 Merge pull request #2687 from langbot-app/test/quality-persistence-core-oracles-20261017
test: strengthen startup and persistence boundary oracles
2026-10-17 20:11:42 +08:00
huanghuoguoguo 1d9e551908 Merge pull request #2681 from langbot-app/test/quality-auth-boundary-oracles-20261017
test(auth): verify revocation and authorization ordering
2026-10-17 20:11:06 +08:00
huanghuoguoguo 98cc2ec2d6 Merge pull request #2680 from langbot-app/fix/auth-invalid-json-contract-20261017
fix(auth): reject malformed credential payloads before authentication
2026-10-17 20:11:01 +08:00
huanghuoguoguo 0b0201a3f5 Merge pull request #2679 from langbot-app/test/quality-api-observability-20261017
test(api): verify monitoring payloads and embed side effects
2026-10-17 20:10:55 +08:00
huanghuoguoguo ecea4c3d41 Merge pull request #2675 from langbot-app/test/quality-self-duplicates-20261017
test: remove redundant backend checks and migration aliases
2026-10-17 20:10:30 +08:00
huanghuoguoguo 567ce3a841 Merge pull request #2674 from langbot-app/test/quality-api-response-contracts-20261017
test(api): verify resource payloads and scoped service arguments
2026-10-17 20:10:20 +08:00
huanghuoguoguo 0f522e5286 test(persistence): verify migration data and startup task bounds 2026-10-17 16:08:08 +08:00
huanghuoguoguo 9b350132f4 test(api): cover send delegation and reuse the prior list contract 2026-10-17 15:57:35 +08:00
huanghuoguoguo c03f33d855 test(runtime): verify sandbox and platform contracts 2026-10-17 15:57:15 +08:00
huanghuoguoguo 4a2780b841 test(vector): verify real Valkey search and deletion results 2026-10-17 15:53:26 +08:00
huanghuoguoguo cbc049400c test(api): verify bot response and service delegation contracts 2026-10-17 15:53:00 +08:00
huanghuoguoguo 1c0fd7d0ba test: strengthen startup and persistence boundary oracles 2026-10-17 15:45:09 +08:00
huanghuoguoguo efe1e4a758 test(auth): verify revocation and authorization ordering 2026-10-17 15:29:39 +08:00
huanghuoguoguo 569dd07024 fix(auth): reject malformed credential payloads before authentication 2026-10-17 15:25:16 +08:00
huanghuoguoguo d25c1e0f0c test(api): verify monitoring payloads and embed side effects 2026-10-17 15:16:26 +08:00
huanghuoguoguo 4afd86c1f6 test: consolidate duplicate backend contracts and strengthen stage checks 2026-10-17 15:03:50 +08:00
huanghuoguoguo 8bad1a14fe test(api): verify resource payloads and scoped service arguments 2026-10-17 15:02:41 +08:00
huanghuoguoguo 24300adc72 test(runtime): assert filter and message delivery semantics 2026-10-17 15:01:09 +08:00
huanghuoguoguo 3f2d52e557 Merge pull request #2512 from langbot-app/feat/2410-sdk-skill-store
feat(skill): decouple read-only skills from Box execution
2026-10-17 10:13:26 +08:00
huanghuoguoguo d54e533985 fix(skill): pin revisions per run and preserve shared Box state 2026-10-17 09:32:41 +08:00
huanghuoguoguo 2b79b04d36 Merge pull request #2635 from langbot-app/test/core-contract-coverage-gaps
test(core): verify runtime behavior and close PostgreSQL coverage gaps
2026-10-17 09:13:07 +08:00
RockChinQandClaude Opus 5.5 16cfb6f8bd feat(cloud): show purchased plan revision alongside the latest revision
- Expose the workspace's purchased plan revision from the entitlement
  snapshot.
- Stack the purchased revision card in front of the latest revision in
  the plan comparison dialog; both cards share the same layout, and the
  purchased card's copy and prices come from the Space revision endpoint
  while benefits stay on the entitlement snapshot.
- Add a cancel-first tooltip for subscribing to the newer revision.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 00:25:41 +08:00
RockChinQ 338b856eec fix(monitoring): restore Cloud in-flight snapshots and collapsed dock 2026-10-15 16:42:24 +08:00
RockChinQ 625ee67113 fix(ci): align workspace fixtures and constrain mobile tours 2026-10-15 05:31:04 +00:00
Hyu e29fd27f02 feat(i18n): localize backend messages by workspace language 2026-10-15 05:31:04 +00:00