Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,30 @@
# Changelog

## 0.7.0 — prepared 2026-10-12 (unpublished)
## 0.7.1 — 2026-11-09

- Add Reply, Review approval and Inspect failure actions with the reported
question or request and its age.
- Review completed work with its objective, observed changed files, reported
links and checks. Distinguish finished turns from completed goals and
independent verification.
- Expand observed child agents and show meaningful tool/target summaries.
- Add a since-you-last-checked digest, browser-persisted filters and up to eight
saved dashboard views.
- Refine card spacing, restrained status edges, operation text and compact
expandable results. Preserve the indeterminate running strip and reduced motion.
- Fix timeline scrolling and add incremental earlier-history loading, stable
event merging, preserved scroll position, reconnect gap bridging and retries.
- Add release discovery and a review/confirm flow for BB-eligible updates.
Out-of-range and pinned sources remain advisory; source ranges are never widened.
- Correct stale release and upgrade documentation.

No storage migration or reset is required. Existing `^0.7.0` selectors include
this release. Earlier-history loading depends on BB retention and source APIs;
optional Fleet and Redteam history remains bounded. See
[daily monitoring](docs/daily-workflow.md) and
[release validation](docs/validation-0.7.1.md).

## 0.7.0 — 2026-10-12

- Show the latest observed public activity and distinguish recent from quiet
reporting, without changing task status or the indeterminate activity strips.
Expand All @@ -12,7 +36,7 @@
Contain watcher callback/publication errors and surface degraded monitoring.
- Reduce empty Needs attention to a compact line; actionable items remain visible.
- Add bundled What's New highlights with per-version local dismissal and a
persistent Release notes control. No telemetry or remote release fetching.
persistent Release notes control. This version did not fetch remote releases.
- Retain explicit result/check labels before truncating the original output preview.
- Qualify cached watcher health when disconnected, a refresh fails or becomes overdue.
- Keep terminal duration unknown when the source supplies no completion timing.
Expand All @@ -27,7 +51,7 @@

No storage migration or settings reset is required. BB >=0.40 and SDK >=0.4.21
remain declared; BB 0.46.0 is recommended. See [upgrade notes](docs/upgrade-0.7.0.md)
and [release convention](docs/release-convention.md). Version 0.7.0 is prepared on the PR branch and is not published.
and [release convention](docs/release-convention.md). Version 0.7.0 was published on 12 October 2026.

## 0.6.1 — first public beta

Expand Down
42 changes: 25 additions & 17 deletions PLUGIN_OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
## See work as it happens

Open the global dashboard for active executions, Needs Attention, and recent
completion. Open a thread's Agent Board action for automatic single-agent focus
or a multi-agent Kanban view. Inspect the bounded execution timeline to see
public operational updates, actual models, and tools as sources report them.
completion. Open a thread's Agent Board action for single-agent focus or a
multi-agent board. Inspect models, tools and public operational updates as
sources report them. Load earlier BB timeline activity while keeping your place.

See how recently an agent reported public activity. Quiet reporting keeps the
source's task status intact. Review completion outcomes, results, failures and
explicitly agent-reported checks, then open the original thread or timeline for
details. Filter and group visible work by project, repository, provider or status.
Needs Attention stays visible across filters. Connection, refresh and watcher
health help you distinguish an observation problem from quiet execution.
## Catch up and act

What's New shows bundled version highlights. Dismiss an announcement once and
reopen its notes from the dashboard whenever needed.
Reply to a reported question, review an approval request, or inspect a failure
in BB's native surface. Review completed work with objectives, observed files,
reported result links and checks; a finished turn does not prove verification.
Expand observed child agents and delegations when source data is available.

## Requirements
Retain filters, grouping and history-window choices in this browser, and save
up to eight named views. A catch-up digest summarizes changed outcomes since
your last visit. Restrained status accents and expandable results keep the
board compact; running strips show activity rather than percentage complete.

Requires BB 0.40 or newer; BB 0.46.0 is recommended. Ollama Fleet 0.6.0 or newer and Redteam's public observability RPC
are optional integrations. Missing integrations leave native BB observation
available. Mobile layouts and reduced-motion preferences are supported.
Hidden reasoning is excluded. System/push notifications are unavailable in
the current public SDK; Agent Board does not implement browser-push workarounds.
What's New shows bundled highlights. An update card checks official GitHub
release metadata without credentials and lets you review and confirm updates
that BB considers eligible. Pinned or out-of-range sources remain advisory.

## Requirements and limits

Requires BB 0.40 or newer; a current BB supplies current history and update
APIs. Ollama Fleet 0.6.0 or newer and Redteam's public observability RPC are
optional separate integrations. Native BB observation works without them.
Mobile layouts and reduced motion are supported. Hidden reasoning is excluded.
History depends on source retention; Fleet and Redteam provide bounded
snapshots. Saved views and catch-up state are browser-local. No push
notifications or automatic installation are added.
23 changes: 14 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ focus and the global dashboard offer other views of the same bounded state.
- **Single-Agent Focus:** activity and discrete lifecycle state for one execution.
- **Multi-Agent Kanban:** live state for concurrent agents and workers.
- **Needs Attention:** structured waiting/failure states and persistent dismissal.
- **Execution Timeline:** bounded operational events, loaded when opened.
- **Execution Timeline:** page through retained BB operational history while keeping your place.
- **Activity freshness:** recent or quiet public reporting without inferring a stall.
- **Completion summaries:** outcomes, results, failures and agent-reported checks.
- **Filters and grouping:** project, repository, provider and status over visible work.
Expand All @@ -50,10 +50,10 @@ and the distinction between fixture media and live runtime evidence.

## Install from Git

First public beta: **0.6.1**. Install the released Git tag with BB:
Install the current compatible release line with BB:

```sh
bb plugin install git:https://github.com/aaronphifer/bb-plugin-agent-board.git@v0.6.1
bb plugin install git:https://github.com/aaronphifer/bb-plugin-agent-board.git@^0.7.0
```

BB's managed Git installer installs runtime dependencies and builds the frontend
Expand All @@ -69,7 +69,8 @@ bb plugin install .
Neither Fleet nor Redteam is required. Declared compatibility is BB >=0.40 and
SDK >=0.4.21; the development SDK is pinned to 0.4.34. See the honest
[compatibility matrix](RELEASE_AUDIT.md), including historical runtime evidence.
For the prepared, unpublished 0.7.0 source, see [compatibility and upgrade notes](docs/upgrade-0.7.0.md).
See [compatibility and upgrade notes](docs/upgrade-0.7.0.md) and
[0.7.1 validation](docs/validation-0.7.1.md).

## Usage

Expand All @@ -78,7 +79,8 @@ A scoped board automatically uses **Single-Agent Focus** for one logical active
a **Multi-Agent** view for independent active executions or concurrent Fleet workers. Focus shows
the current model, tools, public progress updates, and lifecycle state.
**Needs Attention** collects structured approvals, input requests, and failures.
Open **Timeline** for bounded start, model, tool, public-update, and terminal events. Dismiss attention items after
Open **Timeline** for start, model, tool, public-update and terminal events;
**Load earlier activity** reads earlier retained BB history incrementally. Dismiss attention items after
review; dismissal changes presentation state, not the underlying execution.

```sh
Expand Down Expand Up @@ -110,7 +112,7 @@ isolated from native BB observation; source capabilities vary.

Agent Board uses supported public BB plugin APIs, never direct BB database
access or private `@bb/*` imports. It excludes hidden reasoning/thinking and raw
Fleet prompts/results. Timelines and activity are bounded; previews are truncated
Fleet prompts/results. Each timeline request and activity snapshot is bounded; previews are truncated
and common credential forms redacted. This is defense in depth: public assistant
updates, task titles, paths and configured names can still contain private content.
Only share screenshots after reviewing them.
Expand Down Expand Up @@ -144,16 +146,16 @@ This is a bounded latest view, not a persistent history database.
- The current public BB plugin SDK does not expose a supported system/push notification delivery API.
Agent Board intentionally does not implement unsupported browser push/service-worker hacks.
- Fleet worker visibility requires Fleet >=0.6.0; no integration is mandatory.
- Timeline history is bounded and varies with source capabilities.
- Earlier timeline history depends on BB retention; Fleet and Redteam expose bounded snapshots.
- Fleet has no token stream or attempt-history API; observation never invents those details.
- Physical Android release verification remains separate from automated DOM tests.

## Development

The prepared, unpublished 0.7.0 source is documented in [vnext launch/testing](docs/vnext-testing.md),
Historical 0.7.0 development is documented in [vnext launch/testing](docs/vnext-testing.md),
[design](docs/vnext-design.md) and [release convention](docs/release-convention.md).
Use a separate BB data directory and ports for development; keep your stable
installation untouched. `0.7.0` on this PR branch is not a published release.
installation untouched. See the current [release notes](RELEASE_NOTES.md).
See [dependency assessment](docs/dependency-security-0.7.0.md) and the PR
Release validation checks before approving a merge.

Expand All @@ -174,3 +176,6 @@ Author page: [getbb.app/marketplace/author/aaronphifer](https://getbb.app/market

[MIT](LICENSE), Copyright (c) 2026 Aaron Phifer. Third-party code retains its
own [notices and licenses](THIRD_PARTY_NOTICES.md).
## Daily workflow improvements

Version 0.7.1 adds specific attention actions, completion review evidence, expandable observed agents, a catch-up digest, saved views, earlier timeline paging, subtle visual polish, and an update-available card using BB’s eligible-update installer. See [daily monitoring and update behavior](docs/daily-workflow.md) for limits, browser persistence and delivery to existing installations.
43 changes: 38 additions & 5 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,41 @@
# Agent Board v0.7.0 — prepared release notes

Version **0.7.0** is prepared on the development PR branch, unpublished and
awaiting final merge review. No public tag, release, marketplace update or
installed stable-plugin update has occurred.
# Agent Board v0.7.1

Catch up on agent work, act on requests, and browse earlier execution history.

- **Actionable attention:** Reply to questions, Review approval requests, and
Inspect failures in BB's native surface, with the reported request and its age.
- **Completion review:** inspect objectives, observed files, reported result links
and checks. A finished turn or completed goal does not imply independent verification.
- **Catch-up and saved views:** see changed outcomes since your last visit, retain
dashboard filters in this browser, and save up to eight named views.
- **Observed agents:** expand child agents and native delegations with the
status, model and output information the source actually supplies.
- **Subtle polish:** tighter cards, restrained status edges, clearer operations
and compact expandable results. Running strips remain indeterminate.
- **Earlier timeline activity:** scroll through loaded events and select Load
earlier activity for earlier BB pages. Loading preserves your place; live
refreshes retain loaded history and bridge reconnect gaps. Failed loads offer retry.
- **Update available:** discover official GitHub releases and review/confirm
updates eligible under BB's installed source and compatibility rules.

Existing `^0.7.0` Git installations can update to 0.7.1 through BB. Pinned tags,
commits and local paths stay pinned; `^0.6.1` excludes this release. Existing
clients receive the new update card only after installing this release. There
is no background auto-install, source-range widening or settings reset.

BB >=0.40 and public SDK >=0.4.21 remain declared; use a current BB for current
history and update APIs. Missing APIs degrade to the source's available view.
Fleet >=0.6.0 and Redteam's public observability RPC remain optional.
Earlier-history browsing covers BB's retained public operational events, not
hidden reasoning or an independent archive. Fleet and Redteam retain their
bounded snapshot limits. Saved views and catch-up state are browser-local.
The update check reads public metadata from this repository's GitHub release
endpoint without credentials; BB controls installation and rollback.

See [daily monitoring and limits](https://github.com/aaronphifer/bb-plugin-agent-board/blob/v0.7.1/docs/daily-workflow.md)
and [validation](https://github.com/aaronphifer/bb-plugin-agent-board/blob/v0.7.1/docs/validation-0.7.1.md).

# Agent Board v0.7.0

Agent Board gives you a clearer view of live agent work and completed outcomes.

Expand Down
31 changes: 31 additions & 0 deletions app.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,37 @@
box-sizing: border-box;
}

/* Calm, state-driven hierarchy. The live strip remains indeterminate. */
.ab-global-dashboard [data-global-card="active"] {
border-inline-start: 2px solid color-mix(in srgb, var(--primary) 38%, var(--border));
}
.ab-global-dashboard [data-global-card="active"][data-status="waiting"],
.ab-global-dashboard [data-global-card="attention"] {
border-inline-start: 2px solid color-mix(in srgb, #b78632 45%, var(--border));
}
.ab-global-dashboard [data-global-card="attention"][data-attention-type="failed"] {
border-inline-start-color: color-mix(in srgb, var(--destructive) 65%, var(--border));
}
.ab-global-dashboard [data-part="execution-model"] {
margin-top: 3px;
font-size: 11px;
}
.ab-global-dashboard [data-part="execution-activity"] {
margin-top: 10px;
color: var(--foreground);
font-family: var(--font-mono, ui-monospace, monospace);
font-size: 12px;
}
.ab-global-dashboard .ab-update-detail[open] { flex-basis: 100%; }
.ab-global-dashboard [data-global-card="recent"] {
border: 0;
border-bottom: 1px solid var(--border);
border-radius: 0;
background: transparent;
padding: 10px 0;
}
.ab-global-dashboard [data-part="recent-title"] { font-size: 13px; }

/* --- 1. Active pulse: the live dot and the active pipeline node breathe
slowly (opacity/shadow nuance only — no card ever expands). ------- */
@keyframes ab-breathe {
Expand Down
4 changes: 3 additions & 1 deletion components/board/board.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { StatusChip } from "@/components/board/status-chip";
import { Button } from "@/components/ui/button";
import { Icon } from "@/components/ui/icon";
import { cn } from "@/lib/utils";
import { UpdateAvailable } from "@/components/global/update-available";

export function Board({ rootThreadId }: { rootThreadId: string }) {
const { snapshot, loading, refreshing, error, tick, refetch } = useBoard(rootThreadId);
Expand Down Expand Up @@ -46,6 +47,7 @@ export function Board({ rootThreadId }: { rootThreadId: string }) {

return (
<div className="flex h-full min-h-0 flex-col bg-background text-foreground">
<div className="px-4"><UpdateAvailable /></div>
{/* Header: root identity, goal, model, live indicator, refresh. */}
<header className="border-b border-border px-4 py-3">
<div className="flex items-start gap-3">
Expand Down Expand Up @@ -208,4 +210,4 @@ function boardStatusForChip(status: string): Parameters<typeof StatusChip>[0]["s
default:
return "completed";
}
}
}
11 changes: 10 additions & 1 deletion components/board/completion-summary.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
import type { BoardCard } from "@/contract/rpc";
import { completionSummary } from "@/lib/dashboard-view";
import { useBbNavigate } from "@get-bb/plugin-sdk/app";
import { Button } from "@/components/ui/button";

export function CompletionSummary({ card }: { card: BoardCard }) {
const navigate = useBbNavigate();
const summary = completionSummary(card);
const finished = card.status === "completed";
const outcome = finished && card.source === "bb" ? card.review?.goalStatus === "complete" ? "Goal marked complete — review needed" : "Turn finished — review needed" : summary.outcome;
return <div data-part="completion-summary" className="mt-2 space-y-1 text-xs [overflow-wrap:anywhere]">
<p><span className="font-medium">Outcome:</span> {summary.outcome}</p>
<p><span className="font-medium">Outcome:</span> <span>{outcome}</span></p>
{card.review?.objective ? <p><span className="font-medium">Objective:</span> {card.review.objective}</p> : null}
{summary.failure ? <p data-part="recent-summary" className="min-w-0 max-w-full line-clamp-2 text-destructive [overflow-wrap:anywhere]"><span className="font-medium">Failure:</span> {summary.failure}</p> : null}
<p data-part={summary.failure ? undefined : "recent-summary"} className="min-w-0 max-w-full line-clamp-2 text-muted-foreground [overflow-wrap:anywhere]"><span className="font-medium">Result:</span> {summary.result}</p>
<p className="text-muted-foreground"><span className="font-medium">Reported verification:</span> {summary.reportedChecks.length ? summary.reportedChecks.join(" · ") : "Not supplied"}</p>
{summary.reportedChecks.length ? <p className="text-[10px] text-muted-foreground">Reported by the agent; not independently verified.</p> : null}
{card.review ? <details><summary className="cursor-pointer text-muted-foreground">Observed file changes ({card.review.changedPaths.length})</summary>{card.review.changedPaths.length ? <ul className="mt-1 space-y-1 font-mono">{card.review.changedPaths.map(path => <li key={path}>{path}</li>)}</ul> : <p className="mt-1 text-muted-foreground">No changed paths observed in this bounded timeline.</p>}</details> : null}
{card.review?.links?.length ? <div className="flex flex-wrap gap-1" aria-label="Reported result links">{card.review.links.map(link => <Button key={link.url} size="sm" variant="ghost" onClick={() => navigate.openUrl(link.url)}>{link.label}</Button>)}</div> : null}
{finished && card.source === "bb" ? <p className="text-[10px] text-muted-foreground">A finished turn does not verify the task. Output is the latest source preview and may be an interim update; review the thread and checks.</p> : null}
{summary.originalPreview ? <details><summary className="cursor-pointer text-muted-foreground">Original output preview</summary><p className="mt-1 whitespace-pre-wrap">Source preview: {summary.originalPreview}</p><p className="mt-1 text-muted-foreground">Preview is bounded. Use Open for the detailed source output.</p></details> : null}
</div>;
}
Loading
Loading