Skip to content

Looper v2.14.170

Choose a tag to compare

@github-actions github-actions released this 13 Nov 03:28
· 151 commits to main since this release
e4670b7

Looper v2.14.170

This is the patch release v2.14.170, a hotfix line in which each merged change ships at once. It documents one change: #1311 (Dashboard home: how many agents run now, and which task and project each belongs to).

Release Decision

Who should upgrade: Installations that use the web dashboard home page and want to see how many agents run and which task each belongs to. Others need not upgrade for behavior.

What this release solves: #1311 makes the dashboard's "Agents running now" section show a total and the project and task of each agent.

Breaking changes: No. There is no migration or database schema change. The section's layout changes as described below, which the pull request calls an intended maintainer decision. The bridge boundary is unchanged: upgrade to v2.13.165 first if the installation is older.

How to verify: Check the installed version.

looper --version   # looper 2.14.170

Contributors: Maintainer @foolzzz authored #1311; no community contribution was included in this release.

Upgrading

The bridge boundary is unchanged: an installation older than v2.13.165 must upgrade to v2.13.165 first (upgrade to v2.13.165 first) and be started once; see the Upgrading section of the v2.14.0 release for the steps and rollback. An installation on v2.14.0 to v2.14.169 upgrades directly. There is no database schema change.

Behavior changes

Read in the code of #1311:

  • Total (web/src/pages/dashboard.tsx). The "Agents running now" section header shows the number running: busy Managers, Planners and running Workers and Reviewers. Workers and Reviewers waiting for room under their task's limit are counted separately as waiting. Worker and Reviewer rows read N running, with · M waiting when there are waiting runs.
  • Every Manager (dashboard.tsx, looper/agents/overview.py). The Managers row lists every fleet Manager that is not stopped, by name with its state (busy shows a spinner), and counts the busy ones. With a single Manager the row is still titled "Manager"; with none it says "None". Against an older server that does not send the list, the single known Manager is shown as before. The overview's Manager state now reads fleet.is_running(agent_id) instead of the fleet state's running field; the resulting busy, idle or stopped values are meant to be the same.
  • Project and task per agent (dashboard.tsx). Planner, Worker and Reviewer lines show project · task name, linking to the task page; long names are truncated with the full text in the tooltip. Under it a Worker or Reviewer line shows the first line of its instruction (or its step or agent ID), and a Planner line shows the first line of its requirement, or planning when the task has no separate name. These lines still link to the agent's history.
  • API (looper/agents/overview.py, looper/agents/v1_domains/task_controls.py, looper/db/tasks.py). Each step run in the overview gains a required task_name, the task's current name (the task ID when the task is gone). It is read together with the task's current project in one query (names_and_projects_of, replacing the project-only lookup there). The overview schema lists the new field; clients that ignore unknown fields are unaffected.
  • Model-visible changes: None. Prompts and tool descriptions are unchanged; the change is to the dashboard and the overview API response.

Optional Capability Activation & Use

No new optional capability activation is introduced in this release.

Validation

Reported by the pull request: #1311 reports the tests that cover the change (tests/test_overview.py, tests/test_overview_db.py and the dashboard page test), automated reviews, and CI before the merge. It does not report a local full suite or the result of the reviews.

CI: CI runs after the release is drafted; its result is not recorded here.

Not tested for this draft: a local full suite, the dashboard in a browser and the built wheel. The release documentation gate checks the body only.

中文摘要

本版本是 patch release v2.14.170(热修线,每个合并的改动立即发布),说明一项改动:#1311(看板首页:显示当前有多少 agent 在运行,以及各自属于哪个任务和项目)。

升级决策

**谁需要升级:**使用网页看板首页、希望看到运行中 agent 数量及其所属任务的安装。其他安装没有行为上的升级需求。

解决了什么:#1311 让看板的"Agents running now"区块显示总数,以及每个 agent 的项目和任务。

**是否有破坏性变更:**否。没有迁移或数据库结构变更。区块布局按下文所述改变,PR 称这是维护者有意的决定。桥接边界不变:早于 v2.13.165 的安装须先升级到 v2.13.165。

**如何验证:**核对版本为 2.14.170。

**贡献者:**维护者 @foolzzz 提交 #1311;本版本无社区贡献。

looper --version   # looper 2.14.170

升级

桥接边界不变:早于 v2.13.165 的安装必须先升级到 v2.13.165 并启动一次(upgrade to v2.13.165 first 即先升级到 v2.13.165),步骤与回退见 v2.14.0 发布说明的升级一节。v2.14.0 至 v2.14.169 上的安装可直接升级。数据库没有结构变更。

行为变化与入口

以下在 #1311 的代码中可见:

  • 总数(web/src/pages/dashboard.tsx)。区块标题显示运行数量:忙碌的 Manager、Planner 以及正在运行的 Worker 和 Reviewer。因任务并发上限而等待的 Worker 和 Reviewer 单独计为 waiting。Worker 与 Reviewer 行显示 N running,有等待时追加 · M waiting。
  • 列出所有 Manager(dashboard.tsx、looper/agents/overview.py)。Managers 行列出所有未停止的 fleet Manager,显示名称和状态(忙碌时有转圈图标),并统计忙碌数。只有一个 Manager 时标题仍为 "Manager",没有时显示 "None"。对不返回该列表的旧服务端,仍显示原来的单个 Manager。概览中 Manager 的状态改为读取 fleet.is_running(agent_id),而不是 fleet 状态的 running 字段,得到的 busy、idle、stopped 取值应保持一致。
  • 每个 agent 的项目与任务(dashboard.tsx)。Planner、Worker、Reviewer 行显示 项目 · 任务名,链接到任务页;过长名称会截断,完整文本在提示中。其下,Worker 或 Reviewer 行显示指令第一行(或步骤、agent ID),Planner 行显示需求第一行,任务没有单独名称时显示 planning。这些行仍链接到 agent 历史。
  • API(looper/agents/overview.py、looper/agents/v1_domains/task_controls.py、looper/db/tasks.py)。概览中的每个步骤运行新增必填字段 task_name,为任务当前名称(任务已不存在时为任务 ID),与任务当前项目在一次查询中读取(names_and_projects_of,替换此处仅查项目的查询)。概览 schema 已列出该字段;忽略未知字段的客户端不受影响。
  • **面向模型的变化:**无。提示词和工具描述不变;变化只在看板和概览 API 响应。

可选能力启用与使用

本版本未新增可选能力启用入口。

验证

PR 报告的:#1311 报告了覆盖该改动的测试(tests/test_overview.py、tests/test_overview_db.py 和看板页面测试)、自动评审,以及合并前的 CI。未报告本地完整套件,也未报告评审结果。

**CI:**发布草稿后 CI 会运行,其结果未在此记录。

**本次草稿未测试:**本地完整套件、浏览器中的看板以及构建出的 wheel。发布文档 gate 只检查正文。