Commit Graph
903 Commits
Author SHA1 Message Date
Hyu 8548b5b951 test(web): align browser regressions with current processor and monitoring UI 2026-10-11 01:31:24 +08:00
Hyu 353b452453 fix(ci): align SDK dependency and validate acceptance migrations 2026-10-11 00:59:51 +08:00
Hyu e3e5f88809 feat(bots): highlight empty routing action with amber glow 2026-10-11 00:50:49 +08:00
Hyu 4185f0252e feat(bots): guide event routing and create processors inline 2026-10-11 00:44:14 +08:00
Hyu 8fa5df6c77 feat(slack): support standard events and interactive callbacks 2026-10-11 00:17:27 +08:00
Hyu 49d2af9379 fix(monitoring): display processing errors on the assistant side 2026-10-11 00:17:02 +08:00
Hyu 4a700ac0f3 feat(slack): add guided app setup and Socket Mode support 2026-10-10 23:37:30 +08:00
Hyu 1c70218383 feat: reset bot session context while retaining monitoring history 2026-10-10 22:35:27 +08:00
Hyu 38aa06e149 feat(monitoring): add shared SSE in-flight monitor with draggable dock 2026-10-10 21:30:03 +08:00
Hyu d2ec53ec91 feat(dingtalk): support group subscriptions and card interaction events 2026-10-10 21:29:49 +08:00
Hyu 0a18440faf fix(dingtalk): improve card replies and attachment delivery 2026-10-10 20:31:56 +08:00
Dongchuan FuandRockChinQ 339dd56722 fix(web): hide duplicate connection mode control (#2621)
* fix(web): hide duplicate connection mode control

* fix(web): restore event processor guide target

---------

Co-authored-by: RockChinQ <[email protected]>
2026-10-10 18:52:52 +08:00
Hyu 4f43da0fb3 fix(wecombot): improve event routing and sandbox attachment delivery 2026-10-10 18:41:57 +08:00
Hyu a2b7f6b7bb fix: stabilize native streaming and improve bot controls 2026-10-10 18:02:42 +08:00
Hyu e8da99be63 fix(wecomcs): handle service events and prevent duplicate replies 2026-10-10 16:25:36 +08:00
Hyu 36a167cd16 fix(bots): clarify message pagination and hide single-page controls 2026-10-09 23:51:42 +08:00
Hyu 846d1f14e6 fix(bots): restore sessions across processor types 2026-10-09 23:49:35 +08:00
Hyu 6ecd0f68cf fix(bots): inline disabled routes with enable switches 2026-10-09 21:24:42 +08:00
Hyu 96280b3bcc fix(events): restrict pipeline routes and load agent prompts 2026-10-09 21:22:34 +08:00
Hyu ce3a9020af fix(web): unify load error states and retry actions 2026-10-09 21:00:27 +08:00
Hyu 396b09ecce fix(acceptance): repair official account replies and processor navigation 2026-10-09 20:13:51 +08:00
Hyu fea35e8b3f fix(acceptance): improve execution monitoring and processor navigation 2026-10-09 18:54:32 +08:00
Hyu c5c3ec0b2c feat(models): add workspace starred model and processor defaults 2026-10-09 18:34:29 +08:00
Hyu 4c70977a1d fix(acceptance): refine processor setup and dashboard monitoring 2026-10-09 18:19:08 +08:00
Hyu e22bea7f1e fix(acceptance): improve bot setup and execution log presentation 2026-10-09 17:03:15 +08:00
Hyu 113bb0b773 fix(web): refresh assistant model state and refine model actions 2026-10-09 00:46:51 +08:00
Hyu fe324fac81 fix(web): improve assistant setup and model login guidance 2026-10-09 00:29:39 +08:00
Hyu ec3a396f1d feat(web): install event processor plugins from selector 2026-10-08 21:21:15 +08:00
Hyu 6c6718d72b feat(web): persist assistant size and draggable position 2026-10-08 15:39:30 +08:00
Hyu b718c7b5dd fix(web): reduce form rerenders and stabilize assistant model labels 2026-10-08 15:21:59 +08:00
RockChinQ 3f698bd1c9 fix(assistant): preserve auto-follow during delayed scroll events 2026-10-08 13:26:27 +08:00
RockChinQ f96f663a80 feat(assistant): add streaming background sessions and refresh workspace UI 2026-10-08 13:24:46 +08:00
Hyu d05d98fcb9 test(monitoring): scope tool call assertion to its heading 2026-10-08 12:46:58 +08:00
Hyu 40a3a941a3 fix(monitoring): unify execution records and stabilize streaming cleanup 2026-10-08 03:02:37 +08:00
Hyu 5f0ef7e48e fix(monitoring): complete translations and align frontend checks 2026-10-07 22:48:49 +08:00
Hyu 9f76037e64 feat(monitoring): unify execution views and trace tool calls 2026-10-07 22:36:10 +08:00
RockChinQ 2e5bbc8bdd feat(web): integrate ecosystem social preview images 2026-10-02 02:16:38 +00:00
RockChinQ 8549369d48 fix(ci): format pipeline extensions and plugin icon hook (#2623) 2026-10-02 02:18:07 +08:00
Hyu af9011f237 fix(web): load installed plugin icons through the authenticated route
Multi-Workspace deployments fail the public plugin icon route closed (404), so plain <img src> icons broke everywhere locally and for the runner picker in production. A shared cached hook fetches the authenticated icon for installed plugins and leaves marketplace surfaces on the cloud URL.
2026-10-02 01:34:52 +08:00
RockChinQ 5f3eb34baf feat(market): show certification badges in Core marketplace (#2615) 2026-09-30 18:52:00 +08:00
RockChinQ 6022c471d5 fix(i18n): complete beta banner translations (#2613)
* fix(i18n): complete beta banner translations

* style(i18n): format beta banner messages
2026-09-29 21:25:19 +08:00
RockChinQ 1fde3b4283 fix(certification): align certified sharing and unsigned dedicated admission (#2610)
Integrate certification policy, SDK/Core semantics, and documentation on canonical branch. Resolve duplicated documentation and keep invalid Cloud signatures rejected.
2026-09-29 00:56:18 +08:00
Hyu 6515ba3b94 fix(api): serve the passkey and password routes for the authenticated Account
Passkeys and passwords belong to the Account, but those routes required a Workspace -- which the WebUI never sends for them -- and then resolved the caller by looking the login name up as an email address. Every Account whose login name is not its email answered 404, so the passkey panel could neither add nor list a key.

The routes now authenticate with the account token and address the Account the caller authenticated as, matching the self-service second-factor routes in the same file. /space/bind-authorize-url carried the same Workspace requirement.

The login page also surfaced a TypeError instead of the passkey login failure message when an assertion was rejected.
2026-09-28 23:53:14 +08:00
Hyu e14e277424 fix(api): scope TOTP oversight to the caller's workspace
The second-factor listing was instance-wide and the three mutating endpoints never checked that the target Account belongs to the caller's Workspace, so an owner or admin could see and reset another tenant's account. The listing now resolves the Workspace members and the mutations answer 404 for a foreign account, which does not disclose that it exists.

Also fixes the TOTP write path on Postgres: six write points passed timezone-aware datetimes into timestamp-without-time-zone columns, which asyncpg rejects, so every enroll, confirm, revoke and recovery-code consumption raised a 500 there. SQLite tolerated the same values.

The panel derives its oversight view from the API authorization instead of the length of the account list, which would have hidden it in a single-member Workspace.
2026-09-28 22:38:30 +08:00
Hyu 06ca7a93a9 feat(web): consolidate operation log settings into a collection dialog
Rename the traceability surface to "operation log", move its entry from the sidebar into the settings dialog, and collect the capture level and the retention policy in one dialog. The retention fields are shown inline instead of behind a disclosure; edits stay a draft until Save, and Reset restores the persisted policy. Copy updated across the eight locales.
2026-09-28 22:38:24 +08:00
Hyu c18db122e1 fix(web): keep the beta banner clear of the app shell
- render the banner through the Alert API so its grid keeps one full-width text column instead of wrapping inside the empty icon column

- point the cloud link at space.langbot.app/cloud?environment=dedicated and the self-hosted link at the GitHub repository

- keep the last known state and retry the probe (1/2/4/8s plus a re-check on window focus) so a restarting backend cannot hide the banner for the session

- publish --beta-banner-height so the fixed sidebar container, the sidebar wrapper and the wizard shell start below the banner
2026-09-28 19:38:09 +08:00
RockChinQ e778445982 feat: add beta environment banner
Add beta environment warning banner for Cloud beta deployments with i18n support (zh/en/ja)
2026-09-28 13:17:03 +08:00
TyperBody 280be0d7a4 fix(operation-trace): audit every route for misclassified mutations
Systematically cross-checked all 263 route/method pairs against the classifier
and fixed every case where a real change could be mislabelled:

- POST /skills and PUT /skills/<name> were classified as skill_view (read
  bucket), so creating or editing a skill was silently unlogged at the mutation
  level. They now record skill_update.
- The public webhook ingress (/bots/<uuid>) and the embedded chat widget
  (/embed/*) are unauthenticated visitor traffic, not Workspace changes; they
  are dropped instead of logged as create/resource.
- Uploading files and indexing documents (data flowing into a resource) are
  offered as observations so they never fill the log; deleting a knowledge-base
  file is destructive and now records file_delete.
- A plugin's own config-file edit/delete is a plugin change, not an opaque
  resource delete; ordered before the /config rule that also matched it.
- The bucket now comes from the action table (plus 'a read verb is always a
  read'), so a write action can no longer be forced into the read bucket.
- Added agents and files resource families; localized every new action/resource
  type in all nine locales.
2026-09-28 02:17:50 +08:00
TyperBody 67ff4d3054 fix(operation-trace): record uninstalls and deletes, drop assistant chatter
- Split the route rules on the HTTP method so a DELETE is classified as a
  destructive action instead of falling into the read/write bucket. Uninstalling
  a plugin or skill and deleting a knowledge base or MCP server were recorded as
  a view/update and left no readable trace.
- Add plugin_uninstall, skill_uninstall, knowledge_base_delete and mcp_delete.
- Skip the assistant's own conversation traffic: a chat session produced opaque
  create/resource rows that answered nothing.
- Localize the new actions and the assistant_conversation resource type in all locales.
- Sync the assistant tool action list and apply ruff formatting.
2026-09-28 02:06:57 +08:00
TyperBody 7eeb0393a6 feat(operation-trace): collapsible retention policy and assistant trace tool
- Collapse the retention policy section by default, showing a one-line summary when collapsed.
- Add the owner/admin-only list_operation_logs assistant tool backed by audit.view.
- Enforce per-tool permissions on both tool listing and invocation.
- Add a substring search filter (search) to query_logs and the tool so callers can
  ask narrow questions (plugin name, account, verb) instead of dumping the full history.
- Project records to a compact shape so a page stays under the assistant result budget.
- Localize the new assistant tool label and retention summary across all locales.
2026-09-28 01:56:00 +08:00