diff --git a/CHANGELOG.md b/CHANGELOG.md index 9407156..272a9f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ new version heading in the same commit. ## [Unreleased] +## [0.224.0] — 2026-07-16 +### Added +- **"Activity" shortcut in the per-session Operations menu.** The session activity trail side panel + (objects the run opened + their live status, v0.221.0) was only reachable from the Sessions list rows. + Added it as the top item of the terminal-view **Operations** dropdown (`OperationsMenu`), so while + you're watching a live run you can open the trail in one click. Threaded a new `onActivity` callback + through `SessionOps` to `setInspect`, opening the same `SessionActivity` panel. + ## [0.223.0] — 2026-07-16 ### Added - **"Operations" menu on every session terminal.** A new dropdown pinned top-right of the live terminal, diff --git a/package-lock.json b/package-lock.json index b327315..e498f1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "agent-os", - "version": "0.223.0", + "version": "0.224.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "agent-os", - "version": "0.223.0", + "version": "0.224.0", "license": "MIT", "bin": { "agent-os": "bin/agent-os" diff --git a/package.json b/package.json index 80bbd58..207163b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-os", - "version": "0.223.0", + "version": "0.224.0", "description": "A generic, governed operating system for running autonomous agents safely across brands. Ships with a local web console.", "license": "MIT", "type": "commonjs", diff --git a/web/src/App.tsx b/web/src/App.tsx index 8f40c89..29ba1dd 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -2382,6 +2382,7 @@ type SessionOps = { onStop: (id: string) => void onDelete: (id: string, tmux: string) => void onTransfer: (id: string, toMemberId: string) => void + onActivity: (s: Session) => void } /** The per-session "Operations" dropdown pinned top-right of the live terminal, next to Files. One menu @@ -2393,7 +2394,7 @@ type SessionOps = { * - Stop / Delete — halt or remove the session. * Each item mirrors the gating of its tab-strip/card counterpart. */ function OperationsMenu({ session, ops, onReload }: { session: Session; ops: SessionOps; onReload: () => void }) { - const { members, me, onOpen, onStop, onDelete, onTransfer } = ops + const { members, me, onOpen, onStop, onDelete, onTransfer, onActivity } = ops const canTransfer = me.role === 'owner' || me.role === 'admin' || session.runAs === me.id const transferTargets = canTransfer ? members.filter((m) => m.id !== session.runAs) : [] return ( @@ -2402,13 +2403,22 @@ function OperationsMenu({ session, ops, onReload }: { session: Session; ops: Ses render={ } /> + {/* Activity — open the trail side panel (objects this session opened + their live status). */} + onActivity(session)}> + + + Activity + what this session opened · objects & live status + + + {session.resumable && ( @@ -2772,7 +2782,7 @@ function SessionsPage({ s.tmux === selected.tmux)} tmux={selected.tmux} onActivity={onActivity} - ops={{ members, me, onOpen, onStop, onDelete, onTransfer }} /> + ops={{ members, me, onOpen, onStop, onDelete, onTransfer, onActivity: setInspect }} /> ) }