Commit Graph
726 Commits
Author SHA1 Message Date
nocobase[bot] 05737e39b3 chore: release 2026-10-10.2 [skip ci]
current app-template-default version: 1.0.0-beta.59
@nocobase/app-plugin-users@2.0.0-beta.2 @nocobase/i18n@1.0.0-beta.6 @nocobase/app-plugin-authentication@2.0.0-beta.3 @nocobase/app-plugin-authorization-example@1.0.0-beta.14 @nocobase/app-plugin-authorization@1.0.0-beta.26 @nocobase/app-plugin-authz-default-access@1.0.0-beta.11 @nocobase/app-plugin-authz-restriction-rules@1.0.0-beta.10 @nocobase/app-plugin-authz-sharing-rules@1.0.0-beta.11 @nocobase/app-plugin-database-explorer@1.0.0-beta.12 @nocobase/app-plugin-file-example@1.0.0-beta.18 @nocobase/app-plugin-file@1.0.0-beta.22 @nocobase/app-plugin-i18n@1.0.0-beta.14 @nocobase/app-plugin-jobs-example@1.0.0-beta.5 @nocobase/app-plugin-knowledge@0.1.0-beta.1 @nocobase/app-plugin-lifecycle-example@0.1.0-beta.1 @nocobase/app-plugin-mail-example@1.0.0-beta.4 @nocobase/app-plugin-mail@1.0.0-beta.10 @nocobase/app-plugin-notification-example@1.0.0-beta.7 @nocobase/app-plugin-notification-in-app@1.0.0-beta.23 @nocobase/app-plugin-notification@1.0.0-beta.25 @nocobase/app-plugin-office-flows-example@0.1.0-beta.1 @nocobase/app-plugin-projects@0.1.0-beta.4 @nocobase/app-plugin-registry-example@0.1.0-beta.8 @nocobase/app-plugin-releases@0.1.0-beta.2 @nocobase/app-plugin-repository-example@1.0.0-beta.20 @nocobase/app-plugin-routes-example@1.0.0-beta.19 @nocobase/app-plugin-scheduler@1.0.0-beta.16 @nocobase/app-plugin-template-print-example@1.0.0-beta.5 @nocobase/app-plugin-agents@0.1.0-beta.4 @nocobase/app-server@2.0.0-beta.3 @nocobase/app-skills@0.1.0-beta.27 @nocobase/app-template-default@1.0.0-beta.59 @nocobase/app-template-examples@1.0.0-beta.41 @nocobase/app-testing@0.1.0-beta.2 @nocobase/create-app@0.1.0-beta.30 @nocobase/create-plugin@0.1.0-beta.19 @nocobase/dev-config@0.1.0-beta.21 @nocobase/app-cli@1.0.0-beta.17 @nocobase/app-client@3.0.0-beta.0 @nocobase/app-installer@0.1.0-beta.4 release-beta/2026-10-10.2 @nocobase/app-plugin-api-keys@1.0.0-beta.14
2026-10-10 09:35:04 +00:00
Katherine eea95a7b64 feat(app-template-default): establish NocoBase branded default theme (#10607)
* feat(app-template-default): establish NocoBase branded default theme

* test(app-template-default): exercise settings select interaction

* fix(templates): synchronize branded shared UI sources

* feat(app-template-default): refine brand visuals and theme upgrade guidance

* fix(templates): exclude hub changes from branding update

* feat(app-template-default): add development theme preview lab

* revert: remove local theme preview lab from branding PR

* test(app-plugin-file): include spinner dependencies in registry fixtures

* fix(app-template-default): allow custom dialog layout overrides
2026-10-10 05:22:31 -04:00
Charles Wu 1a1cf30fb8 docs: add Studio onboarding and first project walkthrough (#10659) 2026-10-10 16:36:53 +08:00
Junyi 98e79a5a65 feat(lifecycle): durable examples (#10644)
* docs(lifecycle): add examples and docs

* refactor(workflow): prune workflow

* docs(workflow): prune workflow
2026-10-10 14:50:27 +08:00
gchust 5aae93b824 feat(agents): filter run transcripts and event queries (#10630)
* feat(agents): filter run transcripts and event queries

* fix(ui-library): clarify transcript filter integration

* fix(agents): preserve transcript scrolling and index event filters

* docs(agents): streamline transcript filter integration notes
2026-10-10 14:44:43 +08:00
PiEgg c796cb909b feat(app-client)!: remove settings and dev route surfaces, Hub and AI employee (#10642) 2026-10-10 02:02:13 -04:00
gchust fb7b5764c9 PM-56: Keep workflow save actions visible and warn before leaving unsaved edits (#10614)
* fix(projects): keep workflow save actions visible and guard unsaved edits

* fix(projects): restore workflow navigation and saved state

* fix(app-client): preserve editors during blocked history navigation

* fix(app-client): preserve navigation guards after native hash changes

* fix(app-client): recover navigation after duplicate history indexes

* fix(app-client): restore navigation across history index resets
2026-10-10 13:37:40 +08:00
nocobase[bot] 53e0b28dc7 chore: merge release 2026-10-10.1 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.58
2026-10-10 05:03:06 +00:00
YANG QIA d89339eefa fix(agents): align model effort cells and report Claude models (#10640)
* fix(agent-runner): report Claude Code models

Claude Code lists its models and efforts through the Agent SDK's supportedModels(), on a session that is sent no prompt, instead of reporting detection as unsupported.

* fix(agents): match Codex reasoning efforts to current releases

Codex takes low through xhigh, max and ultra, and no longer minimal; max is passed as itself. A saved effort its tool dropped stays until the entry changes.

* fix(agents): keep model effort cells aligned and drop the built-in badge

Reported efforts move to a line under the entry and name only selectable efforts, so the effort select no longer shifts its row. Model suggestions lose the Built-in badge.

* fix(agents): wrap long descriptions in the agents list

The description wraps inside a capped name column, two lines at most with the full text on hover, so other columns keep their widths.

* fix(agents): group the agents list and sort it by shown name

Everyone agents come first, the application's own in the order it added them, then the caller's own, then shared ones, each by translated name. List entries carry owned.

* feat(agent-runner): give agents the runner's Node.js and pnpm

The runner ships pnpm and puts node and pnpm launchers first on each run's PATH, pinned against packageManager switching; config set agent-tools system opts out. Store pruning uses the bundled pnpm.
2026-10-10 12:39:50 +08:00
gchust 3380f9df8f fix(releases): update app operations from runtime state (#10602)
* fix(releases): update app operations from runtime state

* fix(examples): restore decision focus after select updates
2026-10-10 12:12:12 +08:00
gchust 2cb84e0c7f fix(projects): constrain long workflow rule summaries (#10624) 2026-10-10 11:03:53 +08:00
PiEgg eb92050dd3 fix(docs): temporarily hide Ask AI button (#10638) 2026-10-09 21:32:05 -04:00
YANG QIA de5254b7dc feat(agents): suggest models reported by runtimes (#10634)
* fix(agent-protocol): update the coding tools' suggested models

* fix(agent-protocol): suggest Sonnet 5 and Haiku 4.5, the current model ids

* fix(agent-protocol): include current models and qualify Pi suggestions

* feat(agents): suggest models reported by runtimes

* fix(agents): show model suggestions in a wider combobox and drop unpublished models

* fix(agents): expand model suggestions and pluralize runtime counts
2026-10-10 09:24:01 +08:00
YANG QIA 92356022a5 fix(agent-runner): allow scoped Codex skill writes and skip unchanged syncs (#10633)
* fix(agent-runner): let Codex write each working tree's .agents and skip unchanged skills in skills sync

* fix(agent-runner): validate skill roots and preserve submodule paths

* test(mail): wait for the compose action to become available

* test(mail): control time in credential lease renewal coverage

* fix(agent-runner): restrict writable skill roots to canonical directories
2026-10-10 09:23:53 +08:00
Charles Wu 64c0cdb5d7 docs: remove tutorials and deployment from top navigation (#10637) 2026-10-10 09:14:45 +08:00
Charles Wu 049cd58f15 docs: explain mail with complete workflows and screenshots (#10636) 2026-10-10 09:13:39 +08:00
Charles Wu 990021e2c2 docs: explain scheduled tasks with an approval reminder example (#10635) 2026-10-10 08:51:24 +08:00
YANG QIA f94ebc6ae6 feat(agents): pass proxy and CA variables and take variables from the runner (#10620)
* feat(agents): pass proxy and CA variables, let the runner's owner pass and set variables, and take variables from the runner

* fix(runner): detect local provider keys and preserve service variables

* fix(agents): preserve application notice and enqueue types

* test(mail): control lease time while awaiting refresh heartbeats

* chore: redeploy the Studio preview on a fresh database

* fix(agents): drop the RunnerNotice alias and order the runner variables migration after the workspace usage one
2026-10-10 08:18:17 +08:00
YANG QIA 0170880bb2 feat(agent-runner): keep task git metadata in reference clones and clean up finished working directories (#10610)
* fix(agent-runner): keep task git metadata in reference clones

* fix(agent-runner): guard host git from writable checkout configuration

* fix(agent-runner): guard host git from writable checkout configuration

* fix(agent-runner): accept standard submodule configuration on resume

* feat(agents): define the runner workspace report and subject settlement contract

* feat(agent-runner): remove working directories once their work is over or over the size limit

* style(agent-runner): format workspace cleanup sources

* fix(agents): order the workspace usage migration after execution history

* fix(agent-runner): keep workspace records out of the agent's reach and never remove unpushed work

* style(agent-runner): format the workspace record reader

* test(agent-protocol): use a neutral subject key in the workspace fixture

* fix(agent-runner): run pnpm in a runner-owned directory and stop sharing store files through hard links

Also replace the workspace size cap with a min-free-disk threshold read from statfs, so collection no longer walks every node_modules.

* fix(agent-runner): probe whether the work root clones and import with clone or copy

pnpm's clone-or-copy falls back to hard links on file systems that cannot clone, so the runner probes the work root once and picks clone or copy itself.

* fix(agent-runner): default min-free-disk to 5G and remove only settled workspaces on a low disk

Pushed workspaces whose work goes on are no longer removed automatically; the runner warns once per pass and points to gc.
2026-10-10 07:22:06 +08:00
YANG QIA b5c6a64cbb feat(agent-runner): share one pnpm store between runs on a machine (#10632)
* feat(agent-runner): share one pnpm store between runs on a machine

* fix(agent-runner): exclude active claims from store pruning and retry failures
2026-10-10 00:21:13 +08:00
YANG QIA e088465a26 feat(projects): pass the original actor to work handlers and status rules (#10623) 2026-10-10 00:21:05 +08:00
YANG QIA 1832cfcb9c feat(agents): report runner model capabilities (#10609)
* feat(agents): report runner model capabilities

* feat(agents): report runner model capabilities

* style(agents): format the runner capability tests

* fix(agents): tolerate invalid runner capability reports

* fix(agents): isolate and reap model discovery processes

* chore(agents): note restricted Pi detection and wait for reaped detection processes
2026-10-10 00:20:58 +08:00
YANG QIA 38683c7006 fix(agent-runner): exit after stopping and stop what runs leave behind (#10628)
* fix(agent-runner): exit after stopping and stop what runs leave behind

The foreground daemon returned once it had stopped and relied on the event
loop draining; an open handle kept an updated runner's old version running,
so its service never started the new one. It now stops whatever is still
running below it and exits, with 75 after updating itself so a service that
restarts only on failure starts it too.

The supervisor notes the process groups below each worker while it runs and
kills what is left of them when the worker exits, the worker stops what is
still below it before exiting, and closing an OpenCode server that already
exited still kills its process group.

* fix(agent-runner): find a run's leftovers by a tag in their environment

A process a run started that left its parent and its process group before
the supervisor looked escaped every cleanup. Each worker now gets a random
tag that its tool's environment carries and whatever it starts inherits;
when the worker exits, and once more when the daemon stops or recovers an
orphaned run, every process still carrying the tag is killed.

Closing an OpenCode server now waits until its process group is empty, not
only until the server exits, and kills what is left in it.

* test(agent-runner): wait for the OpenCode stand-in's child before closing it
2026-10-09 23:33:06 +08:00
YANG QIA 0daf996fdc fix(agent-protocol): update the coding tools' suggested models (#10601)
* fix(agent-protocol): update the coding tools' suggested models

* fix(agent-protocol): suggest Sonnet 5 and Haiku 4.5, the current model ids

* fix(agent-protocol): include current models and qualify Pi suggestions
2026-10-09 23:30:30 +08:00
YANG QIA 97d94dc4cd feat(agents): record and show where each run attempt executed (#10594)
* feat: expose run execution history and actual models

* fix: distinguish observed execution facts and protect machine details

* fix(agents): order execution history migration after tool slots

* docs(agents): describe model requirements without internal task references

* fix(agents): rename the attempt snapshot type to avoid the run execution mode

v3-develop now exports RunExecution as the 'auto' | 'mine' execution mode of run requests, so the per-attempt claim snapshot becomes RunExecutionSnapshot, with the AgentsRunExecutionSnapshot schema ref.

* test(agents): keep attempt history consistent when a team-only claim is refused

* fix(agents): retain the latest effort observation across reports
2026-10-09 22:44:35 +08:00
Charles Wu 2edd6d0974 docs: improve capability guides with practical examples (#10625)
* docs: improve capability guides with practical examples

* docs: fix screenshot paths and template download links
2026-10-09 22:02:38 +08:00
nocobase[bot] ebcef43801 chore: merge release 2026-10-09.2 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.58
2026-10-09 12:53:25 +00:00
YANG QIA 8974f9c616 feat(agent-runner): retry transient git failures while preparing a run (#10608)
* feat(agent-runner): retry transient git failures while preparing a run and requeue them as prepareNetwork

* fix(agent-runner): finish unfinished submodules, retry only passing git failures, and record retries before a permanent failure
2026-10-09 20:36:27 +08:00
YANG QIAandProject lead d942ae9739 feat(agents): confirm work others cause before it runs (#10592)
* feat(agents): confirm work others cause before it runs as the responsible

Work someone causes on a subject another person answers for becomes a run request the responsible confirms, instead of a run that borrows their identity and runners. The asker may instead run it as themselves on a runner they may use. Runs record the source of their chain of work and who confirmed it, and work a run causes keeps that run's source.

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(agents): expire due run requests on reassignment and keep their schedule

Reassigning a subject's responsible now expires requests whose time already ran out instead of renewing or queueing them, and withdrawing one is refused the same way. A request keeps the work's fireAt and maxAttempts and confirming restores them; a consultation is never made to wait for confirmation.

* fix(agents): isolate request execution and preserve reassigned work

* fix(agents): order run request migration after merged runner changes

* test(agents): describe run request regressions by behavior

* fix(agents): normalize pending request scheduling comparisons

* refactor(agents): unify notification contracts as AgentsNotice

---------

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
2026-10-09 20:36:21 +08:00
Junyi 1408643095 refactor: disable Workflow by default and unpublish its documentation (#10603)
* refactor: disable workflow in default application templates

* docs(scheduler): clarify optional workflow integration

* test(workflow): isolate CLI plugin registration

* test(examples): defer flaky waiting-task focus assertion

* test(workflow): pause capability test suites

* fix(templates): synchronize workflow test exclusions
2026-10-09 19:54:02 +08:00
Charles Wu d0d3f07e63 docs: remove development and plugins from top navigation (#10617) 2026-10-09 19:46:51 +08:00
Charles Wu 37a954b5ae docs: restructure authentication guides with practical examples (#10616) 2026-10-09 19:36:25 +08:00
YANG QIAandProject lead 0fd253898d feat(agents): answer with an online agent when no runner can take a chat (#10593)
* feat(app-plugin-agents): answer with an online agent when a runner agent cannot run

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(ci): align chat fixtures and allow cold route imports

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(app-plugin-agents): require an available model for online fallback

* fix(agents): align fallback copy and consolidate model regressions

* fix(agents): use claim eligibility throughout chat fallback

* fix(agents): suppress repeated online fallback failure notices

---------

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
2026-10-09 19:24:59 +08:00
YANG QIA 41cc0b8886 fix(agents): let only a runner's owner change it (#10604)
* fix(agents): let only a runner's owner change it

* fix(agents): let managers change runners whose owner can no longer act
2026-10-09 19:24:54 +08:00
PiEgg 331d3d6fc4 fix(ci): isolate v3 docs publishing and skip unrelated docs-only checks (#10612) 2026-10-09 07:18:39 -04:00
YANG QIA 9321a2ac3d fix(agent-runner): initialize submodules while preparing a worktree and let Codex write its git directory (#10600) 2026-10-09 18:49:43 +08:00
nocobase-studio[bot]andPiEgg 487921cd54 fix(spa): refresh runtime configuration in development HTML (#10606)
Co-authored-by: PiEgg <marksz@teamsz.xyz>
2026-10-09 06:49:29 -04:00
Charles Wu 09ab9fbe06 docs: simplify capability overview and rewrite notification guide (#10605) 2026-10-09 18:47:39 +08:00
Drol d86a77c746 chore(v3): deprecate AI employee plugin in application templates (#10599)
* chore: deprecate AI employee plugin in application templates

* fix(v3): wait for enabled controls in workflow and mail flows
2026-10-09 06:29:53 -04:00
nocobase-studio[bot]andPiEgg a6758ecb55 PM-119: Complete v3 repository reference migration (#10597)
Co-authored-by: PiEgg <marksz@teamsz.xyz>
2026-10-09 04:40:25 -04:00
YANG QIAandProject lead 57c59a0c46 feat(agents): merge work per actor and keep team-only variables on team runners (#10591)
* fix(app-plugin-agents): merge work per actor and hand variables only to trusted runners

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(app-plugin-agents): deliver run variables after a final trust check, and share claim eligibility

* fix(app-plugin-agents): isolate variable access failures and restore undelivered claims

* fix(app-plugin-agents): renumber the secrets-refused migration after the runner tool slots one

* fix(app-plugin-agents): send variables with every run unless marked for team runners only

* fix(app-plugin-agents): keep new wait and variable metadata optional

* fix(app-plugin-agents): send wait reasons as codes with params and word them on the client

* test(agents): describe claim regressions by behavior and use neutral examples

* fix(agents): enforce team-only variables for jobs

* fix(agents): expose job secret refusal to custom sources

---------

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
2026-10-09 16:39:38 +08:00
nocobase[bot] ecda01c41a chore: merge release 2026-10-09.1 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.57
2026-10-09 08:35:52 +00:00
PiEgg a695d1987f chore(v3): use public npm and unify workflow naming (#10588) 2026-10-09 03:33:32 -04:00
PiEgg 563f1d704a chore(ci): prepare v3 branches in the main repository 2026-10-09 02:22:31 -04:00
Junyi 88bc9ebbfe feat(ui-library): add the approval-ui block (#586)
* feat(ui-library): add the approval-ui block

Presentational components for an approval process: progress, timeline,
route preview, parallel branches, receipts and an action bar with forms.
They take data already shaped and translated for display and depend on
no plugin. Includes a preview demo, its registry example and tests.

* docs(app-skills): list the approval-ui block in the UI Library catalog
2026-10-09 13:56:47 +08:00
Junyi b9f1157677 refactor(lifecycle): let entry hooks queue work to run after every entry hook (#585) 2026-10-09 13:49:17 +08:00
c7c14b2742 PM-76: Test registry imports in app and plugin contexts (#572)
* test(registry): cover app and plugin import resolution

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(registry): use package-local subpath imports

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

---------

Co-authored-by: 张中合 <zhonghe.zeke@gmail.com>
Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
Co-authored-by: Zeke Zhang <38434641+zhangzhonghe@users.noreply.github.com>
2026-10-09 01:19:53 -04:00
Zeke Zhang bde3b877e0 PM-75: Prepare client plugins for shadcn installation (#582) 2026-10-09 01:11:22 -04:00
YANG QIAandProject lead b8df35c1ad feat(agents): limit runner concurrency per coding tool (#575)
* feat(agents): limit runs per coding tool on a runner

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* feat(agent-runner): limit runs per coding tool with --slots

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* feat(agents): edit and show limits per coding tool on the runtimes page

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* chore: format and add the changeset for limits per coding tool

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* fix(agents): make the fields for limits per coding tool optional in shared types

* fix(agents): align queue component with per-tool wait reason

* feat(agents): one tools table per runtime, saved with its settings

---------

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
2026-10-09 11:42:00 +08:00
dc91aab7fd PM-74: Use package-local subpath imports in registry sources (#576)
* fix(registry): use package-local subpath imports

Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>

* docs(registry): preserve package imports in plugin guidance

* fix(registry): validate installed components in packed plugins

* test(create-plugin): isolate offline dependency metadata

---------

Co-authored-by: 张中合 <zhonghe.zeke@gmail.com>
Co-authored-by: Project lead <agent+studio-project-lead@studio.noreply>
2026-10-08 23:17:41 -04:00