亮点
- 任务规划模式 — Issues now carry a
standard/planningwork mode across the database, validators, server flows, plugin protocol, adapter heartbeat payloads, and board UI. Operators can create planning-mode issues, see them clearly in rows and detail composers, and have the mode preserved through suggested follow-up issues. (#5353) - 全公司搜索 — A new
/companies/:companyKey/searchpage and company-scoped search API span issues, documents, agents, projects, comments, and activity, with rate limiting, fuzzy title matching, indexed document matching, highlighted snippets, recent searches, and Command-K handoff. (#5293) - 例行任务修订历史与恢复 — Routines now keep an append-only revision log with a History tab on routine detail. Operators can preview prior revisions, see structured change summaries, diff descriptions, restore older definitions safely, and recover webhook secrets after restore. (#5285)
- 成功 run 交接与系统通知 — When an agent run ends productively but the issue still needs a final disposition, the recovery service now opens an explicit handoff with first-class system notices rendered in the issue thread, so operators can see exactly why a run paused, escalated, or closed. (#5289)
- 扩展插件 host 面 — Plugins can now declare scoped database namespaces (with migration tracking), local project folders, managed agents, managed routines, scoped APIs, and reusable UI building blocks (file trees, resizable sidebars, route sidebars, managed-routine controls), all through documented contracts and validators. Follow-up host support landed for managed plugin skills and richer SDK types. (#5205, #5597)
- 收件箱父子嵌套 — Built on the new plugin host contracts, the
@paperclip/plugin-llm-wikipackage now ships in the monorepo with public entrypoints and Docker manifest coverage. (#5716) - Secrets provider vault 与远程导入 — Company secrets gain provider-vault configuration, AWS Secrets Manager remote-import preview/commit, binding usage tracking, access events, and rotation guards. The Secrets settings UI now exposes vault management and remote import, with CLI/API docs to match. (#5429)
- Cursor cloud adapter — A new built-in
cursor_cloudadapter drives Cursor’s hosted-agent platform through@cursor/sdk, mapping Agorid heartbeats to Cursor’s durable-agent + per-run model with session reuse, streaming, and cancellation. (#5664) - ACPX 本地适配器 — A new ACPX local adapter runtime can proxy Claude- and Codex-style execution with provider-aware model handling, a polished agent config form, and Storybook-covered model/provider behavior. (#4893, #5290)
改进
- 议题线程中的工作区变更与 stale 通知 — Issue activity now includes readable workspace-change details and folds stale-disposition notices inline so they match activity-log styling and spacing. (#5356)
- 共享侧栏分区控件 — A reusable
SidebarSectioncomponent drives collapsible content, header actions, and dropdown menus, and the Agents/Projects sidebar sections gain persistedTop/Alphabetical/Recentsort modes with cross-tab update events. (#5585) - 运营侧栏与 issue 属性优化 — Issue property timestamps include time, the sidebar company menu supports edit-mode reordering, the workspace switcher rail and account menu stay aligned, and the sidebar search icon routes directly to the search page. (#5355, #5440)
- Workspace 切换器迁入侧栏 — The workspace switcher moved into the sidebar so operators can change workspaces without leaving the board. (#4981)
- 操作员工作流 QoL — Inbox grows assignee/project grouping and token/runtime totals, issue properties get removable blocker chips and workspace task links, the workspace runtime layout adds an issues-tab default and stopped-port reuse, and the dashboard cleans up run task labels. Mobile markdown and routine dialogs got fixes alongside page titles, sidebar polish, and inline routine variable help. (#5291, #4701)
- 更多操作员任务控件 — Company skill source display and used-by agent lists are clearer, long skill source paths truncate with a copy affordance, the routines table gains a row-level run-now button, inbox issue groups get grouped creation defaults, and the issue monitor activity card handles ISO date strings correctly. (#5427)
- 任务控制与 retry-now 恢复 — Issue properties expose editable assignee model overrides, a scheduled retry
retry-nowpath is wired through backend and UI (with a shareduseRetryNowMutationhook), and suppression coverage now includes budget hard stops, review participant changes, subtree pauses, unresolved blockers, terminal issues, and company scoping. (#5426) - 已分配 backlog 活跃度 — Assigned issue creation defaults to
todowhen status is omitted (explicitbacklogparking still wins), and liveness/attention paths plus UI notices distinguish assigned-backlog blockers so they cannot silently stall. (#5428) - 加固控制面安全 — Run-aware confirmation ordering and interrupted-run cleanup are corrected, agent-authored
in_reviewupdates require a real review path, and Cloud-tenant alphanumeric issue identifiers are recognized across shared parsing and server routes. (#5292, #5196) - Cloud tenant identity bootstrap — 新增支撑自托管与 Cloud 部署的 Cloud tenant identity bootstrap 路径。
- Issue thread 规模与 markdown 打磨 — Long issue threads stay smooth and markdown rendering is tightened for the surfaces operators read most. (#4861)
- 收件箱嵌套任务 UI — Nested issues in the inbox render more clearly and consistently. (#4959)
- 工作区 routine run 标签页 — Each workspace now has a routine-run tab that shows recent runs for that workspace’s routines. (#4958)
- Live run 评论上下文 — Comments are surfaced alongside live run state so reviewers can see what was said while a run was active. (#4957)
- Reflection Coach 与内置资源 — Pending interactions can be cancelled cleanly and per-issue cost summaries surface rolled-up token/runtime spend. (#4862)
- Local adapter 廉价模型 profile — Local adapters can now select cheaper model profiles for low-stakes work like recovery follow-ups. (#4881)
- 默认更高 heartbeat 并发 — The agent heartbeat concurrency default is raised to keep the inbox flowing during busy periods. (#4954)
- Plan review 上下文跨唤醒保留 — Issues can carry monitor schedule/state metadata so the control plane can wake the right assignee at the right cadence without polling. (#4988)
- 议题评论展示契约 — Issue comments grow optional
author_type,presentation, andmetadatafields so system-authored notices render as first-class thread messages without overloading regular comments. (#5289) - 数据库备份覆盖非 system schema — Database backup support now covers non-system schemas and is hardened against schema drift. (#4859, #4960)
- Dedicated environment settings page — Environments get their own settings page with a test-in-environment flow so operators can validate adapters before assigning work. (#4798)
- 源码安装版本报告 — The E2B plugin gets a clearer configuration UX, longer-running execution support, and a default-template flag for example plugins. (#4802, #4901)
- 远程环境沙箱回调桥 — Remote execution targets now reach the host environment through a scoped callback bridge with serialization against concurrent heartbeats, env sanitization at the boundary, an expanded allowlist for the documented heartbeat surface, optional proxy logging via
PAPERCLIP_BRIDGE_DEBUG, and SSH-environment-callback migration. (#4801, #5326, #5325, #5324, #5140, #5116) - 沙箱安装/测试面 — Per-adapter sandbox install commands flow through both the test and execute paths, sandbox providers can declare shell defaults, explicit-environment adapter tests run on the requested target instead of falling back to the host, and remote provisioning now consults a runtime command spec from the adapter. (#5280, #5277, #5141, #5114)
- Board 设置与 skills 流程打磨 — Board settings and the skills assignment flow are smoother to navigate. (#4863)
- 支出与成本遥测 — The internal release tooling now verifies registry state and dist-tag placement before promoting builds, with retry-on-lag for canary verification. (#4800, #4816, #5579)
修复
- Codex CLI 0.122+ 认证 — The Codex adapter now writes an apikey-mode
auth.jsoninto the managed Codex home (and per-run for the test probe) whenOPENAI_API_KEYis configured, so configured keys authenticate correctly with Codex CLI 0.122+ across local, SSH, and sandbox targets. (#5276) - Gemini CLI v0.38 stream-json 线格式 — The server parser, UI parser, and CLI formatter accept v0.38’s
type=message/status/statsevents while keeping the legacy shape working, restoring the parsed summary and SSH hello probe under current Gemini CLI builds. (#5273, #5143) - 远程探测不再泄漏主机环境 — SSH remote execution strips inherited host shell env, and the Pi and OpenCode SSH probes no longer pass host
process.envthrough to the remote shell. (#5142, #5275, #5274) - OpenCode model selection and probes — OpenCode now uses explicit static/local-aware model selection and validates remote model probes on the execution target. (#5117, #5119)
- Pi adapter session resume — The Pi adapter avoids resuming stale remote sessions instead of surfacing them as live work. (#5120)
- Remote workspace 环境 shaping — Remote workspace environment shaping now produces the right env for downstream commands. (#5118)
- LAN/私网 SSH 回调 URL 选择 — The SSH callback now picks a URL the remote can reach when the host is on a LAN or private network. (#4799)
- 更强的远程工作区同步与恢复 — Workspace export uses a per-import unique ref, restore goes through a new snapshot-aware merge that only writes files the remote actually changed, and every adapter threads a pre-run snapshot through sandbox/SSH paths to avoid trampling local state. (#5444)
- Runtime probe 与 Codex env 测试 — Runtime probe behavior and Codex environment tests are stabilized so flakes no longer mask real adapter problems. (#5445)
- E2B 沙箱执行器可靠性 — E2B sandboxes now run a real
command -vprobe and source login profiles before exec, stage stdin to a temp file so it is delivered reliably, and the gemini-local hello probe gets a 60-second timeout for SSH and E2B targets. (#5279, #5278, #5322) - Runtime 竞态与孤儿 lease — Fixes a runtime state race, workspace-sync gaps, plugin startup ordering, and orphaned execution leases. (#4804)
- PWA 支持 — Issue runs now honor the reuse-existing preference and the assignee’s default environment when picking where to execute. (#5139)
- 任务恢复可靠性 — Stranded-assignment recovery is more reliable, productive terminal continuations are recovered instead of being closed prematurely, productivity review recovery loops are bounded, and max-turn-exhausted heartbeats are retried. (#4875, #4956, #4948, #5096)
- 手动 heartbeat invoke 保留 scope — Manual heartbeat invocations preserve their original scope instead of broadening it. (#5323)
/live-runsno longer pads — The/live-runsview stops padding by default so the surface reflects actual live work. (#4963)- Cloud tenant issue identifier 路由 — Issue identifier routes now resolve correctly under Cloud tenant prefixes. (#5196)
- 提高 Docker 镜像构建超时 — —较慢 CI runner 上构建不再超时。
升级指南
Nine new database migrations (0075–0083) run automatically on startup. All are additive or idempotent — no existing rows are dropped.
0075_cultured_sebastian_shaw— adds issue monitor liveness columns (monitor_next_check_at,monitor_wake_requested_at,monitor_last_triggered_at,monitor_attempt_count,monitor_notes,monitor_scheduled_by) and a per-company monitor-due index. Existing issues default tomonitor_attempt_count = 0with the rest unset.0076_useful_elektra— creates theplugin_managed_resourcestable and supporting indexes for plugin-managed agents/routines/folders. Existing plugins continue to work without managed resources.0077_unusual_karnak— creates theroutine_revisionstable, addslatest_revision_id/latest_revision_numberpointers onroutines, and backfills a v1 revision for every existing routine using its current definition.0078_white_darwin— adds optionalauthor_type,presentation, andmetadatacolumns toissue_commentsso system notices can render with first-class presentation. Existing comments stay null and render as before.0079_company_search_document_indexes— adds GIN trigram indexes ondocuments.titleanddocuments.latest_bodyto power the new company search page.0080_company_search_fuzzystrmatch— enables thefuzzystrmatchextension for fuzzy title matching in company search. Requires the extension to be available in your Postgres install (it ships with the standardcontribpackage).0081_optimal_dormammu— addsissues.work_mode(NOT NULL, defaultstandard) for the new planning mode contract. Existing issues default tostandard.0082_dry_vision— adds the secrets provider infrastructure: createscompany_secret_bindingsandsecret_access_events, adds a stablekeyslug tocompany_secrets(backfilled and de-duplicated from existing names), and growscompany_secrets/company_secret_versionswith provider metadata, fingerprints, rotation timestamps, and soft-delete columns. Existing secrets getmanaged_mode = 'paperclip_managed',status = 'active', and a backfilledlast_rotated_at.0083_company_secret_provider_configs— createscompany_secret_provider_configsand retypescompany_secrets.provider_config_idfromtexttouuid. Any prior non-UUID values in that column are cleared to NULL before the type change, so make sure you have no production data relying on free-form provider config ids before upgrading. If you do, capture those values out-of-band and reconfigure secrets against a real provider config row after the migration.
采用本版本无需更改应用配置。 If you operate the Codex adapter against Codex CLI 0.122 or newer, the new apikey-mode auth.json is written automatically from your existing OPENAI_API_KEY configuration. The new cursor_cloud adapter is opt-in — agents continue to use whatever runtime they were configured with.