Commit Graph
868 Commits
Author SHA1 Message Date
nocobase[bot] 63260bb17a chore: release 2026-10-13.1 [skip ci]
current app-template-default version: 1.0.0-beta.68
@nocobase/mailer@0.1.0-beta.0 @nocobase/studio-cli@1.0.0-beta.57 @nocobase/agent-runner@0.1.0-beta.8 @nocobase/app-cli-client@0.1.0-beta.6 @nocobase/app-plugin-agent-sessions@0.1.0-beta.0 @nocobase/app-plugin-agents@0.1.0-beta.10 @nocobase/app-plugin-authentication@2.0.0-beta.8 @nocobase/app-plugin-lifecycle-example@0.1.0-beta.5 @nocobase/app-plugin-notification-providers@0.2.0-beta.12 @nocobase/app-plugin-office-flows-example@0.1.0-beta.4 @nocobase/studio@1.0.0-beta.57 @nocobase/app-server@2.0.0-beta.6 @nocobase/app-skills@0.1.0-beta.35 @nocobase/app-template-default@1.0.0-beta.68 @nocobase/app-template-examples@1.0.0-beta.50 @nocobase/lifecycle@0.1.0-beta.2 @nocobase/agent-protocol@0.1.0-beta.7 @nocobase/acp-bridge@0.1.0-beta.0 @nocobase/app-plugin-projects@0.1.0-beta.8 release-beta/2026-10-13.1
2026-10-13 14:35:27 +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
nocobase-studio[bot]andPiEgg 1897123461 fix(studio): truncate sidebar version with tooltip (#10826)
Co-authored-by: PiEgg <marksz@teamsz.xyz>
2026-10-13 20:15:34 +08:00
YANG QIA ee24e956be feat(runner): reclaim disk space and pause work below capacity (#10820)
* feat(runner): reclaim disk space and pause new work while low

* chore(runner): save disk capacity handling work in progress

* fix(runner): recognize and order disposable attempt cleanup

* docs(runner): explain disposable attempt directory naming

* test(runner): expect the disposable read-only namespace

* fix(runner): collect on heartbeat pressure and respect claim pauses

* fix(runner): retry interrupted removal of pushed attempts

* fix(runner): recheck workspace usage before removal retry

* test(runner): scope cwd-holder cleanup verification to Linux

* test(runner): avoid scanning transient runtime lock directories

* fix(runner): protect recovery and report disk failures despite local writes
2026-10-13 20:00:03 +08:00
Junyi 5ec0ec125b fix(examples): improve workflow counts, empty tables and progress refresh (#10823) 2026-10-13 19:17:04 +08:00
Junyi 9555de61c1 fix(app-skills): guide lifecycle parameter editing from diagrams (#10824)
* fix(app-skills): guide lifecycle parameter editing from diagrams

* fix(app-skills): clarify HTTP-compatible lifecycle request IDs
2026-10-13 18:52:17 +08:00
YANG QIA 11176755b9 test(studio): type the follow-ups columns scroll check without the DOM library (#10827) 2026-10-13 18:15:55 +08:00
ZhouandClaude Opus 5.5 157a914449 feat(studio): My agents, conversations with the coding agents on your own computer (#10822)
* feat(agent-sessions): talk with the agents on people's own computers from Studio

Add agent sessions: conversations in the browser with Codex or OpenCode
running on the person's own computer over the Agent Client Protocol, with
the transcripts and the work they create kept in the application.

- @nocobase/acp-bridge: the bridge that registers a computer, long-polls
  for commands, runs each session's agent over ACP with full access, lists
  the computer's folders on request and reports what happens, plus the
  isomorphic wire protocol.
- @nocobase/app-cli-client: `<bin> acp start` runs the bridge as the
  signed-in person.
- @nocobase/app-plugin-agent-sessions: sessions owned by one person, their
  redacted transcripts, permission requests, the agent's choices and
  commands, records tied to sessions (link kinds, `#` mentions), projects,
  the allowed folders chosen by browsing the computer, the application's
  tools over MCP, and the pages, which also work on a phone.
- @nocobase/studio: the "My agents" page below Home, issues as linked
  records that start from the session, Studio's projects, and Studio's
  tools for the agents.

* feat(agent-sessions): tell the agent its session's work and how it is going

The work tied to a session is what the person means by "the tasks", and
the agent now knows it:

- A message carries the session's work beneath it whenever it changed
  since the agent was last told, with what is new or changed marked, so an
  agent coming back a day later learns what happened meanwhile.
- Every session's agent has `list_session_work`, and the MCP `initialize`
  answer lists the work when its session opens.
- Link kinds may tell how each record is going (`progress`); Studio
  answers with what it works out of who works on an issue, what it waits
  for and its pull request, which `get_issue` returns too.

The migration `202610140001_agent_sessions_told_work` adds
`agentSessions.toldWork` and `locale`.

* feat(agent-sessions): tell the agents how the application wants them to work

Applications tell the agents in sessions how to work with
`registerInstructions(text)`. The agent reads it beneath a session's
first message, again beneath the next message whenever the text changed,
and in the MCP `initialize` answer when its session opens; the transcript
keeps the messages as written.

Studio's agent in My agents mostly discusses, analyzes and plans: the
development agreed on is recorded as issues for the project manager, who
assigns agents and moves them along once the person starts them. Very
small changes, such as a typo or a one-line fix, it makes itself. The
hint under "Start" names the project manager.

The migration `202610140002_agent_sessions_told_instructions` adds
`agentSessions.toldInstructions`.

* feat(agent-sessions): common agents, Windows, a background service, computer keys, notices and stored images

Everything a team needs to use My agents day to day:

- Common agents: besides Codex and OpenCode, the bridge offers Claude
  Code, Gemini CLI, GitHub Copilot, Cursor, Qwen Code, Kimi CLI,
  CodeBuddy Code, Qoder CLI, Goose, Auggie, Factory Droid, Kilo Code,
  Cline, Amp and Mistral Vibe when installed, each in its full-access
  mode or with the bridge allowing what it asks; one installed while the
  bridge runs shows up within a minute.
- Windows: programs are found with PATHEXT, npm's .cmd launchers run
  through cmd.exe without a window, agents stop with their process tree,
  and the server and pages read each computer's paths by its own rules.
- `<cli> acp service install|status|uninstall` keeps a computer
  connected from every login (launchd, systemd user unit, Startup
  script); one bridge runs per profile.
- Each computer gets its own key on its first registration and uses it
  from then on, so it stays connected however long the sign-in lasts;
  removing the computer revokes it.
- The owner hears in Studio's inbox when the agent waits for permission,
  replies or fails while they are not looking (`registerNotices`), one
  item per session, settled once they see it.
- Images sent in messages are stored through the file plugin
  (`agentSessionImages`) and served to their owner only.
- A page with no computer, an offline one or no agent installed says
  step by step what to do, and suggests the strongest model.

Migrations: 202610150001_agent_sessions_computer_keys,
202610150002_agent_sessions_images, 202610150003_agent_sessions_seen.

* fix(agent-sessions): close the composer's choice menus once a value is picked

* fix(agent-sessions): stop a turn cancelled while its agent starts, and save the bridge's key whole

- A cancel that came while the agent was still starting never reached it, so the turn ran on and a hanging one
  never ended. The session now remembers the cancel and does not send that prompt.
- The bridge rewrote its state file on every registration, and in place, so a bridge stopped mid-write could leave
  it empty. It now writes only a changed state, to a new file it then renames over the old one.
- Studio's e2e tests expect My agents right below My tasks in the sidebar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:48:07 +08:00
YANG QIA 960d3d51ea fix(studio): let My follow-ups' owned list scroll on a wide screen (#10825)
The page fits the shell's scroll area through flex layout instead of a measured height; the owned list scrolls under its filters and the columns show a thin scrollbar.
2026-10-13 17:35:33 +08:00
9e997029ba feat(auth): add lightweight mailer and opt-in password recovery (#10802)
* feat(auth): add host mailer and opt-in password recovery

* fix(mailer): reject malformed SMTP authentication settings

* fix(mailer): keep default credential mappings optional

* fix(auth): space password reset recovery links

* refactor(logging): withdraw reset-specific request redaction

---------

Co-authored-by: Drol <cgyrock@gmail.com>
Co-authored-by: YANG QIA <2013xile@gmail.com>
2026-10-13 09:27:06 +00:00
theoystercodes ca0adee71b feat(templates): quieter default interface for generated applications (#10817)
* feat(templates): quieter default interface for generated applications

Bring the default look of both templates, the UI Library and the
application development Skill closer to the NocoCRM application built on
them.

Templates: one faint border everywhere; a --hover grey for hovered rows,
buttons and cards, table headers and the navigation's current entry; one
light focus ring for every control; cards and overlays framed by the
general border on a faint blurred backdrop; compact preset at 0.225rem
spacing and 0.5rem radius; text-2xl page titles; full-width line tabs;
table rows on the --hover grey; thin scrollbars shown while scrolling;
the pointer cursor on anything clickable; navigation sections and menu
counts through NavigationMenu's badges; a small badge size; lifting home
cards; a restyled inbox list; centered Appearance options; and Chinese
taglines and sign-in descriptions without full stops. Examples now carries
everything Default has in its shell.

UI Library: the long-text item, an inline variant of property-fields,
kanban board panning, drop highlighting and dark-mode contrast, small
badges where tags sit beside words, and a preview that uses the template
stylesheet.

Skill: the --hover token, badge sizes, card lift, focus, long text (I14),
menu counts (L8), and an upgrade check for merging tokens with their uses.

* docs(app-skills): make the border opaque on a preset with a darker page

The template's light border is translucent and tuned to its very light
page. Found while rehearsing the upgrade on an application whose darker
page made card frames fade out.

* fix(templates): draw the sidebar's rules and the Appearance options in the general border

The lines under the brand and over the sidebar footer, and the frames of
the Appearance popover's presets, used a fraction of the border colour,
so they read fainter than every other line.

* chore: re-run quality checks

The agents test shard failed on agent-runner's local-provider test, which
this branch does not touch and which passes on v3-develop.

* fix(templates): roomier navigation rows and a tinted current entry
2026-10-13 17:13:34 +08:00
Junyi 659c22e2cc fix: search lifecycle reviewer references on demand (#10821)
* fix: search reviewer references on demand

* fix: simplify reviewer parameter editor layout

* fix: close parameter dialog after saving

* fix: keep workflow execution link compact
2026-10-13 16:57:39 +08:00
YANG QIA f3a3f186cf fix(studio): make the issue pages and my follow-ups work on a phone (#10819)
* fix(studio): make the issue pages and My follow-ups work on a phone

Phone views without the app header, bottom tabs on My follow-ups, a summary that scrolls away to a pinned bar, a folded composer, one Needs-you card, and the header's chat icon back.

* fix(studio): leave the question to the Needs-you card

Now says a decision waits; the question with its Answer is the card's.

* fix(studio): go edge to edge and denser on a phone

Lists as full-width rows with hairlines, a compact issue view with icon actions, a plain Now row and a full-width Needs-you band; desktop unchanged.

* fix(studio): drop the repeated status pill and flatten comments on a phone

A one-status filter hides the row pill; feed comments become full-width rows with hairlines.
2026-10-13 16:01:38 +08:00
YANG QIAandJunyi aefa4ac9cc fix(issues): lay out the issue page by its own width (#10720)
* fix(issues): lay out the issue page by its own width

At 1280px with the AI assistant panel docked beside the page, IssueDetailLayout's
side column and IssueHeader's actions were still switched by the viewport breakpoint,
so the main column could shrink far below the breakpoint's assumption and the title
was squeezed to a few characters.

Switch both to a container query on the page's own width (`@4xl/issue-detail` for the
side column, `@md/issue-header` for the header's actions), and collapse "Ask agent" and
"Delete" to icon-only buttons with a tooltip below that width.

* test(studio): align issue page checks with the 56rem breakpoint

---------

Co-authored-by: Junyi <mytharcher@gmail.com>
2026-10-13 07:11:42 +00:00
YANG QIA 7a806c14d2 fix(studio): let My follow-ups' columns reach their last items on a wide screen (#10818)
The columns fill the visible area below the heading, measured from the shell's scroll area, and scroll on their own.
2026-10-13 12:57:21 +08:00
YANG QIA 10e261b762 feat(agent-runner): isolate run worktrees and preserve local continuation (#10808)
* fix(studio): work on associated pull request branches

* test(studio): verify legacy PR origins refresh through polling

* fix(agent-runner): guard unpublished work before PR branch switches

* docs(studio): clarify safe PR checkout and runner upgrades

* feat(agent-runner): isolate run worktrees and preserve local continuation

* docs(agent-runner): clarify reviewed dependency and legacy checkout behavior

* docs(agent-runner): record Git requirement for empty worktrees

* fix(agent-runner): preserve orphan worktrees and migrate legacy sessions

* fix(agent-runner): retain recovery evidence and report spool failures

* fix(agent-runner): atomically migrate history and acknowledge cancellation recovery

* fix(agent-runner): retain recovery reports and clean before cancel ack

* test(agent-runner): trace synthetic lifecycle stages in CI

* fix(agent-runner): retain unacknowledged worker cancellation recovery

* fix(agent-runner): unify cancellation recovery across exit paths

* test(agent-runner): distinguish graceful cancellation from forced recovery

* refactor(agent-runner): simplify local worktree continuation

* fix(agent-runner): keep interrupted worktree removals from committing deletions

Mark a saved worktree before removing it so a later pass only finishes the removal, stop ps from listing itself as a tagged process on macOS, and keep strict process checks to read-only attempts, which are disposable with or without repositories.
2026-10-13 12:48:05 +08:00
YANG QIA 4748117ef6 fix(studio): handle queued manager runs and delegation timeouts (#10807)
* fix(studio): use an idle project manager fallback after queue delay

* fix(studio): recover expired delegations and persist run reports

* fix(studio): correct queue diagnostics and isolate recovery tests

* test(studio): enqueue follow-up workers through dispatch comments

* test(studio): wait for the recovered issue page before capture

* fix(studio): capture e2e evidence without TMPDIR

* test(studio): capture concurrency limit evidence in both languages

* test(studio): await durable report completion on server databases

* test(studio): advertise workspace support in owner identity flow

* test(studio): queue diagnostics only on started issues

* test(studio): start issues before claiming Git fixture runs

* test(studio): target worker entries and tokens in queue fixtures

* test(studio): verify claimed worker through stored run metadata

* test(studio): align concurrency screenshot metadata with its limit

* test(studio): await durable completion before asserting run reports

* test(studio): isolate display preferences across parallel flows

* test(studio): read waiting reasons from the expanded issue summary

At phone width the shared summary starts collapsed, so expand it before asserting the Now line.
2026-10-13 12:29:30 +08:00
YANG QIA abc3fcb047 feat(agents): organize discoveries and use Studio identity permissions (#10804)
* feat(agents): organize discoveries and use Studio identity permissions

* fix(agents): align permission regressions and discovery controls

* fix(studio): declare owner progress dependencies for follow-ups

* test(studio): authorize check reads with the running identity

* test(studio): start push credential fixtures before claiming
2026-10-13 12:03:58 +08:00
YANG QIA e9d24e3917 fix(studio): clarify manager status transition snapshots (#10815) 2026-10-13 11:51:32 +08:00
YANG QIA c10937c18d fix(agent-runner): clean up and rebuild read-only workspaces (#10814)
* fix(studio): work on associated pull request branches

* test(studio): verify legacy PR origins refresh through polling

* fix(agent-runner): guard unpublished work before PR branch switches

* docs(studio): clarify safe PR checkout and runner upgrades

* feat(agent-runner): isolate run worktrees and preserve local continuation

* docs(agent-runner): clarify reviewed dependency and legacy checkout behavior

* docs(agent-runner): record Git requirement for empty worktrees

* fix(agent-runner): preserve orphan worktrees and migrate legacy sessions

* fix(agent-runner): retain recovery evidence and report spool failures

* fix(agent-runner): atomically migrate history and acknowledge cancellation recovery

* fix(agent-runner): retain recovery reports and clean before cancel ack

* test(agent-runner): trace synthetic lifecycle stages in CI

* fix(agent-runner): retain unacknowledged worker cancellation recovery

* fix(agent-runner): unify cancellation recovery across exit paths

* fix(agent-runner): recover read-only workspaces and report Git failures

* fix(agent-runner): narrow read-only workspace recovery
2026-10-13 11:35:08 +08:00
Junyi 43d7d1f981 feat(lifecycle): add configurable parameters and workflow management (#10811) 2026-10-13 11:15:11 +08:00
YANG QIA 0e28a3c414 feat(studio): redesign the issue page around a shared live summary and feed (#10809)
* feat(studio): redesign the issue page around a shared live summary and feed

The issue page and My follow-ups now share the summary, the newest-first feed with system records folded, the composer and the follow star.

* fix(studio): keep the e2e tests on the new issue page and cover comment files in the feed

Runs are folded under Conversation only, the issue page's summary title is not a second heading, and the shared feed's attachments are tested.

* feat(studio): follow and unfollow one issue from the star and the command line

POST /api/followUps/issues/{issueId}/follow and /unfollow replace the star's whole-list writes; the projects plugin's subscribe routes now say they are about notifications.

* fix(studio): keep owner handoffs in view on the shared issue feed and summary

Handoffs stay in Conversation only, and a phone's folded summary opens when something waits on the viewer.

* fix(studio): give the issue summary its own title line and a bar while scrolling

The body card no longer repeats the title and status, the summary folds to a bar with what waits for the viewer, and the delivery comment reads as one line in the feed.

* fix(studio): let the issue summary fold while the page scrolls

Its frame no longer scrolls on its own, so the page's scrolling reaches it.
2026-10-13 10:57:27 +08:00
YANG QIA 8698e80395 fix(app-cli-client): stop oclif registering tsx on every start from sources (#10810)
Under NODE_ENV=test oclif loaded tsx in every spawned CLI, so the packaged session test timed out under CI load.
2026-10-13 09:42:43 +08:00
chenos 459f265031 fix(docs): serve Simplified Chinese documentation at /zh-CN/ (#10813) 2026-10-13 09:22:48 +08:00
chenos 70e779673b fix(docs): restore language switcher in top navigation (#10812) 2026-10-13 09:15:34 +08:00
Katherine ecaf517ffd fix(v3): refine authentication page dark styling (#10793) 2026-10-12 20:06:55 -04:00
YANG QIA cb009d72bb feat(studio): require owner acceptance for agent work (#10797)
* feat(studio): require owner acceptance before resuming agent work

* test(studio): start check-reader fixture before claiming work
2026-10-13 08:03:38 +08:00
YANG QIAandZhou de18bb5442 feat(studio): default to inbox and simplify navigation (#10699)
* feat(navigation): make inbox the default landing page

* fix(studio): remove home navigation and reorder task menus

* fix(studio): stabilize navigation checks and lint memory

* test(studio): align follow-ups sidebar order with inbox navigation

---------

Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
2026-10-13 07:44:40 +08:00
YANG QIA 9bf67918e3 test(cli-client): cover authentication for manifest commands (#10648) 2026-10-13 06:59:54 +08:00
YANG QIA 7271a1df6e feat(studio): separate required and reference checks, explain CI failures and allow forced merges (#10779)
* feat(studio): separate required and reference checks, explain CI failures and allow forced merges

Reference checks a repository names only inform: their failures neither
wake the agent nor block merging from Studio. Failed required checks wake
the agent once every required check of the head finished, with each
failed check's annotations and log excerpt in the input, and
`nb-studio pr checks` reads them on demand. A project manager can merge
past failed required checks with a reason, commented on the pull request
and recorded in the issue's activity; GitHub's branch protection still
applies.

* fix(studio): open force confirmation for failed CI in both PR entries
2026-10-13 06:56:51 +08:00
YANG QIA 3326368ce1 fix(git): explain failed personal GitHub authorizations and log them (#10697) 2026-10-13 06:50:54 +08:00
YANG QIA 6fc0af29e2 fix(studio): run project manager work as issue owner (#10800)
* fix(studio): run project manager work as issue owner

* fix(studio): require issue owner to start project manager

* fix(studio): cancel agent work on owner transfer

* fix(studio): preserve manager identity across retries

* fix(studio): clarify owner transfer handoff
2026-10-13 06:32:58 +08:00
YANG QIA 3af6c302fd feat(studio): add a follow-up page for issues the viewer owns and follows (#10801)
* feat(studio): add a follow-up page for issues the viewer owns and follows

Followed issues and last-seen markers are the person's own preferences; one overview route reads issues, progress and unread counts.

* test(studio): wait for the pull request mark on the follow-ups page

The mark arrives in its own batched request after the issue's progress, so the panel's checks line is awaited rather than read once.
2026-10-13 00:38:30 +08:00
YANG QIA ae40a7edba fix(studio): issue git credentials to runners on demand (#10798)
Runners announcing gitCredentials now get GitHub App installation tokens when git needs them, so runs outlasting one token can still push.
2026-10-13 00:28:57 +08:00
Junyi 758c3729bc refactor(app-skills): clarify lifecycle process UI guidance (#10799) 2026-10-13 00:27:12 +08:00
YANG QIA ddfe1b1874 feat(studio): replace workflows with a project manager and agents discovered from runners (#10786)
* feat(projects): replace workflows with six fixed issue statuses

* feat(agent-runner): report tool models, requeue busy workspaces and run read-only steps

* feat(agents): discover agents from runner reports and remove online agents

* feat(ui-library): drop online agents, model choice, checklists and approvals

* feat(studio): add the project manager and fixed statuses on the server

* feat(studio): agent page, project manager settings and issue progress in the client

* test(studio): cover the project manager, discovered agents and checks-passed signal

* docs(studio): describe the project manager, fixed statuses and discovered agents

* chore: drop the just-bash catalog entry the agents plugin no longer uses

* test(studio): page waiting decisions without approval requests

* fix(studio): allow new issues for the project manager in the direct-write quota, and scope its settings to API keys

* fix(agents): publish the model catalog export instead of the removed presets

* fix(studio): offer only the project manager as an agent executor, keep demo runtimes offline and fix the e2e flows

Executor pickers read the kinds' executor candidates, a new issue left to the project manager is not flagged as given to an agent, people talk only to agents discovered from runners, and the e2e tests no longer rely on demo runtimes being online.

* fix(studio-cli): ship the updated nb-studio Skill

* feat(agent-runner): remove read-only work directories after their run, and build artifacts of idle ones

A read-only run's directory goes when the run ends. Once no run has used a working directory for 12 hours, its node_modules, .next and .turbo directories go (configurable with config set artifact-ttl and artifact-patterns), never in a directory a run holds.
2026-10-12 21:26:42 +08:00
nocobase[bot] fd3bc099e2 chore: merge release 2026-10-12.6 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.67
2026-10-12 12:10:27 +00:00
PiEgg e6dd56e8fa docs: keep AGENTS.md small and move detail into .agents/rules (#10791) 2026-10-12 19:47:48 +08:00
Drol f675e8ddd5 feat(mail): add exact participant filtering (#10664)
* feat(mail): add exact participant filtering

* chore(mail): exclude unrelated attachment UUID fix
2026-10-12 19:41:41 +08:00
nocobase[bot] f2f74d6adb chore: merge release 2026-10-12.5 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.66
2026-10-12 10:26:55 +00:00
PiEgg 9f02fe3f7d docs(app-skills): route NocoBase version upgrade requests to the upgrade skill (#10789) 2026-10-12 18:09:26 +08:00
nocobase[bot] 127942af9e chore: merge release 2026-10-12.4 into v3-develop [skip ci]
current app-template-default version: 1.0.0-beta.65
2026-10-12 09:31:05 +00:00
Drol 2a54505d89 fix(mail): improve workspace integration and public client APIs (#10658)
* fix(mail): clarify account authentication failure messages

* fix(mail): clarify optional IMAP login names

* fix(mail): expose workspace account navigation and actions

* fix(mail): adapt workspace panes to available width

* fix(mail): warn about development OAuth returns in production

* fix(mail): compose section environment overrides

* fix(mail): expose operation-specific composer completion

* fix(mail): expose complete reply preparation

* fix(mail): expose reusable unread count hook

* fix(mail): align account credential fields and optional labels

* fix(mail): reconcile upstream runtime and route changes

* test(mail): move callback type checks out of Vitest
2026-10-12 17:30:21 +08:00
chenos 4af6526476 docs: move UI Library into homepage capabilities (#10785) 2026-10-12 17:16:19 +08:00
PiEgg 9e84d15b3f fix(templates): exclude migrations and seeds from Prettier (#10783)
Applied migrations and seeds are recorded with a checksum of their source, so reformatting one warns every installation that already ran it. Ignore database/*/migrations/ and database/*/seeds/ in both templates and from the repository root.
2026-10-12 05:09:08 -04:00