Commit Graph
722 Commits
Author SHA1 Message Date
nocobase[bot] 3eac8d4180 chore: release 2026-10-15.1 [skip ci]
current app-template-default version: 1.0.0-beta.68
2026-10-15 01:36:10 +00:00
chenos 69e212ce3f refactor: move commercial database drivers to Pro (#10865)
* refactor: move commercial database drivers to Pro

* fix: preserve automatic loading of commercial database drivers

* test: align OSS fixtures with optional Pro drivers
2026-10-15 09:34:54 +08:00
chenos 6dae113eb4 fix(studio): support chat submission over HTTP with UUID v4 (#10836) 2026-10-15 09:23:43 +08:00
YANG QIA 1cd749c796 feat(studio): expose issue handoff CLI commands (#10890) 2026-10-15 09:14:01 +08:00
YANG QIA f36da6208c fix(agent-runner): keep claiming while collecting working directories (#10892)
Collection no longer measures directory sizes by walking every file, and only a due pnpm store prune holds claims. Routine collection runs an hour after the previous round and logs its duration.
2026-10-15 08:46:49 +08:00
YANG QIA 42aaf814aa fix(agents): steer manager follow-ups into active runs (#10882)
* Update .changeset/active-manager-input.md and 13 other files

Save work in progress when the run is interrupted or ends.

* fix(agents): guard active input dispatch with run revisions

* fix(agents): preserve requester authority when steering within a root

* test(studio): start the resumed executor with its adapter

* test(agents): align run fixtures with revision completion guards

* fix(studio): preserve authorization roots in multi-agent dispatch
2026-10-15 07:14:00 +08:00
YANG QIA 3e562f351c fix(studio): wake managers after delegated runs and CI conclusions (#10853)
* fix(studio): wake managers after delegated runs and CI rounds

* test(studio): allow asynchronous disk failure reporting to settle

* fix(studio): canonicalize check ordering across locales

* fix(studio): reject stale check responses under the PR lock

* fix(studio): preserve run provenance after consent revert

* test(studio): set the delegated step browser locale explicitly

* fix(studio): keep idle and signal retry hot paths read-only

* test(studio): verify terminal push refresh and complete timing evidence

* test(studio): assert visible terminal and resumed run states

* fix(studio): isolate manager browser tests and scope check refreshes

* fix(studio): simplify manager recovery and isolate browser queues

* fix(studio): probe idle inputs through issue runs
2026-10-15 07:07:19 +08:00
chenos 033a6dcb50 feat(installer): coordinate reviewed checksum repairs during upgrades (#10879) 2026-10-15 06:37:51 +08:00
chenos e8bc0787f9 docs(skills): guide database upgrades and recovery (#10876)
* docs(skills): guide database upgrades and recovery

* fix(skills): check migration checksums before upgrades

* fix(skills): preserve database history before checksum repair
2026-10-15 06:37:39 +08:00
YANG QIA f43817d75b fix(studio): persist structured issue progress (#10852)
* fix(studio): persist structured issue progress

* fix(studio): align demo and CLI workflows with structured progress

* test(studio): publish explanation before completing its run

* test(studio): assert structured follow-up progress

* test(studio): isolate browser acceptance cleanup

* test(studio): measure explanation link scrolling

* test(studio): isolate personal runner consent settings

* test(studio): await issue push subscriptions before live mutations

* test(studio): update progress and task tree preparations

* fix(studio): limit owner input requirements to manager runs

* test(studio): assert manager-specific progress principles

* test(studio): keep restored review card assertions structured

* test(studio): authorize isolated follow-up owner setup
2026-10-15 06:25:07 +08:00
YANG QIA 9d22980c4d fix(agent-runner): retry saved worktree removal without recovery (#10883) 2026-10-15 06:21:40 +08:00
YANG QIA 862a54261f feat(agents): support global and project default skills (#10877)
* Update .changeset/global-project-skills.md and 33 other files

Save work in progress when the run is interrupted or ends.

* feat(agents): add global and project default skills

* fix(studio): initialize demo skills through project scopes
2026-10-15 06:21:34 +08:00
YANG QIA aae3508a4a feat(agents): purge expired run process data hourly (#10881)
* feat(agents): purge expired run process data hourly

* fix(studio): isolate consent test preferences from sign-in
2026-10-15 05:43:12 +08:00
YANG QIA 92afa27708 fix(studio): make my follow-ups fast for many owned issues (#10878)
* fix(studio): make my follow-ups fast for many owned issues

Read every row's progress in a fixed number of queries without the claim analysis, and refresh only the rows a change names through GET /api/followUps/issues.

* fix(studio): batch session progress reads and give the follow star its own read

Agent sessions read their issues' progress in a fixed number of queries; the follow star reads GET /api/followUps/following instead of the overview.
2026-10-15 05:30:37 +08:00
YANG QIA c048d7d022 docs(app-skills): add rules for fast lists, dashboards and live refresh (#10880)
Lists and charts read with a fixed number of queries and refresh only what an event names.
2026-10-15 05:30:30 +08:00
chenos 9b946f4fee fix(db): reuse metadata naming caches across transactions (#10867)
Reuse validated Collection naming indexes across transactions through database version checks, avoiding repeated full metadata scans. Preserve transaction isolation and invalidation, serialize metadata writes across savepoints, and support current-revision locking reads on Oracle.

Validation: all eight database integration suites, unit-test groups, typechecks, build, changeset checks, and application creation and installer smoke tests passed.
2026-10-15 01:43:02 +08:00
YANG QIA 7534a32f40 revert(studio): restore the previous task tables (#10875)
Revert the grouped task tables from #10830 and return the task pages to their previous table views.
2026-10-15 00:48:04 +08:00
chenos 943a9a8a80 fix: resolve oversized MySQL indexes in agents and releases (PM-302) (#10868)
* fix: resolve oversized MySQL indexes in agents and releases

* fix(db): preserve generated names in planned schemas

* fix(releases): rebuild artifact key index for SQL Server upgrades

* fix(releases): preserve artifact key index names during upgrade
2026-10-15 00:39:51 +08:00
YANG QIA 25be3ee92e revert(studio): restore the my follow-ups page (#10873)
Revert the unified personal task workspace from #10844 and bring back the three-column My follow-ups page.
2026-10-14 23:57:36 +08:00
ZhouandZhou facfe5c09d fix(agents): clear stale failures after retry recovery (#10870)
* fix(agents): clear stale failures after retry recovery

* test(studio): scope retry assertions to the transcript

* fix(studio): distinguish retry preparation failures

* fix(projects): remove duplicate Issue type import

* fix(studio): preserve existing run failure row presentation

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 10:47:11 -04:00
YANG QIA ca7cb55fc3 fix(agent-runner): use pnpm's default package import method (#10871)
Stop forcing clone or copy from the shared store, so ext4 runners hard-link instead of copying node_modules per run; tell agents to use pnpm patch rather than edit dependencies in place.
2026-10-14 22:10:11 +08:00
YANG QIAandDrol dcd45edb2d feat(mail): track verified IMAP identities and copies (#10805)
* feat(mail): track IMAP message identities and copies

Choose an IMAP message identity from OBJECTID EMAILID, X-GM-MSGID, an
RFC Message-ID proven by byte-identical MIME, or the copy's location,
and store every copy in mailMessageImapLocations. Read, star and delete
work per verified copy, and messages without copies are removed only
after a completed run with two matching verification passes.

* fix(mail): fence IMAP evidence and verify cleanup scope

* fix(mail): require bound IMAP operations at submit boundaries

* fix(mail): validate native identities at IMAP submit boundaries

* fix(mail): preserve bound copies when native metadata is absent

* fix(mail): keep opaque attachment IDs out of UUID queries

* test(mail): cover IMAP date, scheduled draft and content guards

* fix(mail): backfill legacy IMAP locations offline

---------

Co-authored-by: Drol <cgyrock@gmail.com>
2026-10-14 21:16:09 +08:00
YANG QIA 6c4634b106 fix(studio): scope git change pushes to the issues they affect (#10869)
Gather pull request stores into one announcement naming their linked issues, refresh only those issues' git reads, previews and progress through one subscription per page, and keep the topic to signed-in connections.
2026-10-14 21:00:13 +08:00
e19ec41eb0 feat(studio): unify the personal task workspace (#10844)
* feat(studio): add task tree aggregation model

* feat(studio): implement authorized grouped task tables and attention

* feat(studio): unify the personal task workspace

* fix(studio): handle expired workspace sessions safely

* feat(studio): complete grouped task tables

* fix(studio): enforce workspace access and update browser flows

* fix(studio): report refresh failures on empty task tables

* feat(studio): connect personal workspace to grouped task tables

* test(studio): verify collapsed personal search toolbar

* test(studio): expand mobile composer before checking restored draft

* fix(studio): measure browser geometry and preserve workspace failure evidence

* test(studio): scope workspace actions and retain primary failure checks

* fix(studio): preserve action geometry when restoring workspace focus

* test(studio): prepare personal workspace acceptance evidence

* test(studio): scope personal workspace activity evidence

* test(studio): verify breakpoint return focus fallback

* test(studio): use the visible following toggle label

* fix(studio): keep task cell content readable

* test(studio): capture mobile following and zero-follow navigation

* fix(projects): deduplicate issue type after branch synchronization

* docs(studio): document isolated personal workspace UI evidence

* chore(projects): record issue query type cleanup

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
Co-authored-by: YANG QIA <2013xile@gmail.com>
2026-10-14 08:42:01 -04:00
1993feb965 fix(mail): stabilize workspace page tests (#10846)
* fix(mail): stabilize workspace page tests

* fix(mail): stabilize workspace test interactions

* chore(mail): declare test dependency update

* chore(runner): save local continuation

* fix(mail): await workspace user interactions

* chore: remove mail issue runner artifacts

---------

Co-authored-by: NocoBase runner <runner@nocobase.local>
Co-authored-by: Drol <cgyrock@gmail.com>
2026-10-14 19:40:11 +08:00
ZhouandZhou ead7798924 feat(studio): group task tables by human follow-ups (#10830)
* feat(studio): add task tree aggregation model

* feat(studio): implement authorized grouped task tables and attention

* feat(studio): complete grouped task tables

* fix(studio): report refresh failures on empty task tables

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 07:31:09 -04:00
YANG QIA 0aca29039c fix(agent-runner): preserve checkout identity in continuation commits (#10856)
* fix(agent-runner): preserve checkout identity in continuation commits

* fix(agent-runner): align worktree config with the run author

* test(agent-runner): configure identities for continuation fixtures

* test(studio): align working status with configured manager name

* test(studio): cover manager name restoration
2026-10-14 18:36:51 +08:00
YANG QIA bdb0581a62 fix(studio): cut the polling load of issue and follow-up pages (#10857)
* fix(studio): cut the polling load of issue and follow-up pages

Announce issue changes once per moment with the issues they name, announce runs on issues, and fall back to slow polls; make polled reads cheap and stop runner heartbeats from announcing every disk sample.

* fix(realtime): deliver issue and runner announcements to signed-in connections only

Public topics may require an authenticated connection; the topics that name records by id opt in, and the client reconnects when the signed-in person changes.

* fix(authentication): reconnect realtime only where the application has it

Resolve the realtime client optionally, so applications and tests without it are unaffected; drop the claim identity change and the separate run refresh to keep the load fix small.

* feat(agents): reland comment runner consent with narrow locking

Restore comment runner consent (#10847) without chain locks: polls decide from reads and write only in the final claim transaction, decisions use guarded updates. Add a claim concurrency test run on PostgreSQL when the claim path changes.

* test(studio): expect the manager name the needs-you test sets

The test renames the manager to Project manager but expected the name it found, which differs on a fresh Studio.
2026-10-14 17:57:27 +08:00
YANG QIA c1d26014b2 feat(agents): reland comment runner consent with narrow locking (#10861)
* feat(agents): reland comment runner consent with narrow locking

Restore comment runner consent (#10847) without chain locks: polls decide from reads and write only in the final claim transaction, decisions use guarded updates. Add a claim concurrency test run on PostgreSQL when the claim path changes.

* test(studio): expect the manager name the needs-you test sets

The test renames the manager to Project manager but expected the name it found, which differs on a fresh Studio.
2026-10-14 16:54:44 +08:00
YANG QIA 8e4cf2600a fix(agents): recover runners and bridges after a protocol upgrade (#10858)
* fix(agents): recover runners and bridges after a protocol upgrade

Runners report a newer server protocol even when versions match; bridges refused for their protocol update the CLI and exit non-zero so their service restarts them.

* chore(ci): rerun checks
2026-10-14 16:54:00 +08:00
YANG QIA b13ab069f1 revert(agents): revert comment runner consent (#10855)
Comment runner consent locked the comment run chain on every claim and decision, which exhausted the database pool in production. The already-applied 202610250001 migration is kept.
2026-10-14 13:18:11 +08:00
ZhouandZhou 1ccefb5d12 feat(agent-sessions): compact mobile sessions and show linked task status (#10839)
* feat(agent-sessions): compact mobile sessions and show linked task status

* fix(agent-sessions): defer header folding until scrolling can compensate

* fix(agent-sessions): preserve header compensation on resize

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 13:03:07 +08:00
ZhouandZhou ff9d41bb86 feat(knowledge): unify authorized project knowledge directory (#10840)
* feat(knowledge): unify authorized project knowledge directory

* fix(knowledge): keep creation and diagnostic targets consistent

* test(knowledge): align mobile coverage with unified directory

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 12:55:13 +08:00
ZhouandZhou e23633e246 fix(agent-sessions): discover settings before the first message (#10834)
* fix(agent-sessions): discover settings before the first message

* fix(agent-sessions): persist acknowledged dependent settings

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 12:27:21 +08:00
ZhouandZhou 923a8e50ae fix(agents): refresh tool detection in running services (#10849)
* fix(agents): refresh tool detection in running services

* fix(acp): clean launcher descendants after shutdown

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 11:34:48 +08:00
YANG QIA a2e3dd0709 fix(studio): install node before studio cli (#10721)
* fix(studio): install node before studio cli

* fix(studio): clarify cli node requirement
2026-10-14 09:52:15 +08:00
YANG QIAandNocoBase runner 7a504bc520 feat(studio): require consent for comment work on personal runners (#10847)
* fix(studio): show one current decision on issue pages

* fix(studio): refresh issue detail caches on realtime events

* test(studio): adapt realtime fixtures and await initial mail loading

* test(studio): isolate decision flow users and layout translations

* feat(studio): require consent for comment work on personal runners

* fix(studio): preserve comment delegation and requester work chains

* test: assert authenticated comment source and diagnose timeout failures

---------

Co-authored-by: NocoBase runner <runner@nocobase.local>
2026-10-14 08:44:37 +08:00
YANG QIA 99be3d02c5 fix(agent-runner): use short private run temporary directories (#10833)
* fix(agent-runner): use short private run temporary directories

* fix(agent-runner): tolerate GC locks during recovery cleanup
2026-10-14 08:44:17 +08:00
YANG QIA 760235c80d fix(studio): stop bare Markdown URLs before CJK text (#10843)
* fix(studio): stop bare Markdown URLs before CJK text

* fix(studio): accept ports in CJK bare URL detection

* fix(studio): support localhost bare URLs before CJK text
2026-10-14 07:06:24 +08:00
ZhouandZhou 8558f9f1e3 fix(agent-sessions): reveal truncated work titles (#10841)
* fix(agent-sessions): reveal truncated work titles

* fix(agent-sessions): keep title tooltip hoverable

* test(agent-sessions): clarify short title focus case

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-14 07:05:16 +08:00
YANG QIAandNocoBase runner 0afcdb754a fix(studio): show one current decision on issue pages (#10838)
* fix(studio): show one current decision on issue pages

* fix(studio): refresh issue detail caches on realtime events

* test(studio): adapt realtime fixtures and await initial mail loading

* test(studio): isolate decision flow users and layout translations

---------

Co-authored-by: NocoBase runner <runner@nocobase.local>
2026-10-14 06:25:59 +08:00
YANG QIA 46269498a4 feat(agents): start worktrees from linked pull request branches (#10837)
* feat(agents): start worktrees from linked pull request branches

* fix(agent-runner): keep switched branches out of the starting target's continuation

A run ending on another named branch is preserved by that branch; only unreachable detached heads get a saved ref, and reporting a switched branch is no longer a push failure.
2026-10-13 23:26:42 +08:00
ZhouandZhou 9478dc0566 fix(studio): create My Agent tasks in the interface language (#10831)
Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-13 23:13:59 +08:00
nocobase[bot] e5476b28ac chore: merge release 2026-10-13.1 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.68
2026-10-13 14:56:55 +00:00
YANG QIAandNocoBase runner a2cf036618 fix(runner): preserve and requeue agent runs before updating (#10832)
* fix(runner): preserve and requeue runs before automatic updates

* docs(agents): describe runner draining state in the API schema

* fix(runner): interrupt active tools before draining update claims

---------

Co-authored-by: NocoBase runner <runner@nocobase.local>
2026-10-13 22:24:17 +08:00
ZhouandZhou 15d5b99346 fix(studio): remove Agent chat header entry (#10828)
* fix(studio): remove Agent chat header entry

* test(studio): update chat e2e entry points

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-13 22:09:34 +08:00
ZhouandZhou a1d02ff288 feat(agent-sessions): preview conversation images with zoom (#10835)
Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-13 22:03:45 +08:00
YANG QIA fad531fc8c fix(studio): persist and resolve project manager identity (#10803)
* fix(studio): persist and resolve project manager identity

* test(studio): preserve custom legacy manager descriptions

* fix(studio): refresh loaded consultation identities in valid providers
2026-10-13 21:59:28 +08:00
YANG QIA 6758f9f281 feat(cli): install and synchronize the Studio agent skill (#10796)
* feat(cli): install and synchronize the Studio agent skill

* fix(cli): reject overlapping skill installation targets

* fix(studio): align follow-up progress dependencies

* test(studio): activate issues in Git run fixtures

* test(studio): type follow-up scroll metrics without DOM library
2026-10-13 21:28:51 +08:00
ZhouandZhou 933694ffda fix(agent-sessions): clarify My Agent onboarding role (#10829)
Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-13 20:45:02 +08:00