- Fix registry SDK detection: use 'workspace_operations' not in RunnerPermissions.model_fields instead of hasattr
- Remove raw_manifest fallback from declared_workspace_operations and resource_builder so 0.7.19 safely disables declared grants
- Unify is_local_agent check across descriptor.py and resource_builder.py, fail-closed when descriptor is None
- Add unmocked tests for real installed 0.7.19 SDK and real new SDK
- Add tests/demo_e2e_workspace_runner.py for reproducible end-to-end verification
Co-authored-by: multica-agent <[email protected]>
A processor granted pipeline.extensions.update / pipeline.update / agent.update
derives resource.manage, which let it add any resource.manage operation to its
own grants. Granting is a human authorization act, so processor principals may
only keep or remove grants, and the catalog marks nothing grantable for them.
LANG-226
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-authored-by: multica-agent <[email protected]>
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]>
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]>
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]>
- Add test_referenced_operation_ids_exist asserting all 'get it from X' and 'Call X' targets exist in the catalog
- Add assertions for model_uuid, server_uuid, mcp.server.* risk and exposure
Ref: LANG-229
Co-authored-by: multica-agent <[email protected]>
- Map model_uuid to model.embedding.list / model.rerank.list / model.llm.list based on operation_id prefix
- Map server_uuid to mcp.server.list and clarify server_uuid vs server_name in OperationDoc descriptions
- Restrict mcp.server.create and mcp.server.update to exposure='assistant' and risk='dangerous'
- Add input parameter descriptions to PipelineRunInput and RoutePreviewInput
Ref: LANG-229
Co-authored-by: multica-agent <[email protected]>
* 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]>