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.
* 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
* 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
* 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
* 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.
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.
* 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
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.
* 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>
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.
* 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
* 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.
* 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.
* 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
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.
* 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>
* 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>
* 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
* 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>
* 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.
* 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>