Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph hyperhive/frontend/packages/swarm-ui/src/agent
Author SHA1 Message Date
iris
f7c8d4c14c swarm-ui: the model and effort badges on an agent's terminal open its inference settings
Clicking either opens the settings in a popover under the badge, the same panel the agent's card has. A subagent's terminal keeps plain badges.
2026-11-12 10:37:30 +01:00
iris
bb735d2e35 swarm-ui: the broadcast's loading skeleton uses the shared picker's class names
The archetype tiles keep their own classes; only the comment in
ArchetypePicker.css that named the old broadcast classes now names the
picker's.
2026-11-12 00:34:22 +01:00
iris
79b1fc35c5 swarm-ui: the schedule form picks agents from the same card grid as the broadcast
The grid becomes a shared AgentPicker; the broadcast composer uses it too.
2026-11-12 00:34:22 +01:00
iris
8966ddbd85 swarm-ui: the error and empty texts say agents and hives, not roster
The word named three different things. Only the four strings an operator reads change; code comments and names stay.
2026-11-12 00:05:08 +01:00
damocles
748ef2da08 hives report an agent being updated: its status shows updating from the update's stop until the container is back up
A hive marks an agent updating when StopForUpdate stops its running container and clears it when the tail Reconcile or Start settles it, success or failure. The flag rides in the agent status snapshot (absent when false, so older readers and documents are unchanged), the status publisher sends a change at once instead of at the next sweep, and the swarm UI card shows an updating badge.
2026-11-11 16:51:42 +01:00
iris
a188c4ea79 swarm ui: the config repo link stays unless the agent is known to be an archetype agent 2026-11-11 01:48:37 +01:00
iris
356390befb swarm ui: the agent detail leaves out the config repo link for an archetype agent
An agent built from an archetype has no config repo on the forge, so the link
404ed. It shows again once the agent is turned into a custom one.
2026-11-11 01:48:37 +01:00
iris
818d41eef3 swarm ui: the status age helpers live in status-fields.ts
StatusMessage.tsx and statusMessage.ts differ only by case, which the esbuild step in the nix build can't read on a case-insensitive builder.
2026-11-11 01:25:15 +01:00
iris
0547081138 swarm ui: the agent's status message shows how long ago it was set
The card and its detail showed the message alone, so a message from an hour
ago read like the current one. Both now add the age, (5m ago), which ticks
like the other relative times. An agent with no message still shows a dash.
2026-11-11 01:25:15 +01:00
iris
99ca130552 swarm ui: the freshness badge moves from the agent card onto the status panel
The card header carried a fresh/stale badge with the report's age. It now
sits in the status row of the opened card, which already showed it, and the
card header keeps the name, the message and the controls.
2026-11-10 21:38:32 +01:00
atlas
e5c55257f8 a hive-side pause holds against the swarm's declared state until an operator resumes
the harness writes the reason into the pause marker when it pauses itself and reports it as paused_by_hive in its turn-state header. swarm-controller declares such an agent paused (only if declared up) and shows the reason on the agents status row and the swarm ui card.
2026-11-10 06:49:16 +01:00
iris
5f5933fde9 docs, swarm ui: a deleted login now logs the agent out, and the dialog and docs say so
With the harness poll, an agent that holds a session logs out within 5
minutes of its stored login being deleted. The confirmation and the
claude-login page said the agent keeps its session.
2026-11-09 23:03:08 +01:00
iris
cac9b40714 swarm ui: the delete confirmation says the agent keeps its session
The dialog only said the agent has to log in again, which reads as a logout.
It now says the agent is not logged out and keeps its current session, and a
delete that succeeded shows the empty row at once instead of waiting on the
re-read.
2026-11-09 22:22:29 +01:00
iris
7dd147adb4 swarm ui: show when an agent's claude login was stored, and delete it
The agent's settings get a claude login row: when the swarm stored the
login, read by the minter from the leaf's metadata, or that none is, with a
delete that removes every version after a confirmation. New minter steps
(status, delete), controller routes (GET claude-login, DELETE
claude-login/stored) and a read and delete grant on the leaf's metadata,
pinned in the module-eval check.
2026-11-09 22:22:29 +01:00
iris
73f875eab8 swarm ui: a stored claude login closes the dialog and shows a toast
The login dialog stayed open with a success line after the code was
accepted, though nothing is left to do in it. It now closes and a toast
says the login is stored. The toast is a new swarm-ui primitive: a short
note raised with showToast, rendered by a ToastHost at the app root, gone
after a few seconds or on click.
2026-11-09 20:50:32 +01:00
iris
d76d54c412 frontend: preact 11.2.0
All four packages move from preact 10.29.8 to 11.2.0. The new types need four
small changes in swarm-ui and the shared dropdown: a ref that may be empty is
typed RefObject<T | null>, HTMLAttributes is imported from preact instead of
read from the JSX namespace, and TextField's type is the five kinds it is
used with, asserted once for the input's new union. npm-deps-hash follows the
lockfile.
2026-11-07 08:41:32 +01:00
iris
c37205e8f5 swarm-ui: the terminal message box has a placeholder and a spinner instead of a label and a sent line
The label 'message <agent>' is the input's placeholder (the label stays for
screen readers). The send button shows a spinner over its label while the
request is pending and keeps its width, and the 'sent' line is gone: the box
empties when the message is held. Spinner is a component of its own now, used
by the button and the refresh picker.
2026-11-06 19:51:22 +01:00
iris
5d5df29687 swarm-ui: shared code leaves page folders; SectionHeading and Preformatted replace per-page copies
durationLabel moves to util.ts, termPaths to agent/terminal/term-paths.ts,
StateBadges and tokenTotal to agent/state, and TryOutResult to
pages/review-common, so the builds, runs and agent pages no longer import
across page folders. SectionHeading is the body-size section heading the
create form and the egress card each styled; Preformatted is the scrolling
text block of the builds tail and the AGENTS.md view, which now share one
chrome and are both keyboard-scrollable. The components page shows both.
2026-11-06 19:09:18 +01:00
iris
811b23cd6b swarm-ui: forms share one submit flow, result line and field column
useSubmit holds the idle, sending, done and error state and the request
flow that six forms each wrote out; FormResult shows the success line and
the problem panel; FormStack is the column the link, claude-login,
inference and limits forms each styled by hand. The create-agent, link
account, backend-env and agent-input forms use the submit flow; the link,
claude-login, inference and limits forms use FormStack.
2026-11-06 19:00:01 +01:00
iris
8a2e5203ad swarm-ui: shared Hint, ActionRow, Toolbar, EmptyState, ExternalLink and ExpandableCard replace per-page copies
Hint, ActionRow, Toolbar, EmptyState and ExternalLink replace the muted
text, button row, refresh bar, empty line and _blank anchor that each page
restyled under its own class. ExpandableCard (with a loading twin) holds the
builds and recent-runs cards, which had identical head and body CSS. The
create form's raw checkbox becomes CheckboxField. The components page shows
each new piece.
2026-11-06 18:41:25 +01:00
iris
a9f0d61daa swarm-ui: an agent's settings and AGENTS.md show placeholders while they load
BadgeSkeleton is the twin of Badge: the real Badge frame, as tall as an
interactive one (the settings values are buttons), with a placeholder for its
value. Permissions, resource caps, internet and allowed domains use it in place of
their "loading…" text, the details popover shows lines of text, and the
AGENTS.md editor a block, in place of theirs. SkeletonLines is a few stacked
lines for such blocks.
2026-11-06 17:27:55 +01:00
iris
38505a5864 swarm-ui: the egress icon is shown as an emoji like the others
The globe of the egress card and of the allowed-domains box showed as a
plain monochrome glyph where the bee and the bell were emoji: a font with a
text-style glyph for the globe won over the emoji font. The two globes now carry
the emoji variation selector, and a panel's icon asks for emoji presentation
(font-variant-emoji), so another icon cannot fall the same way.
2026-11-06 17:20:27 +01:00
iris
33c230665b swarm-ui: the permissions box lists every permission instead of a narrow scroll area
The checkbox list was capped at 12em and scrolled, and the box shrinks the
list to its widest label, so the scrollbar sat in the middle of the popover
with the lower permissions hidden. The permissions are a short fixed list:
MultiselectFilterOptions takes scrollable={false} and the permissions box
uses it. Filter lists that can grow long keep the scroll area.
2026-11-06 00:27:53 +01:00
iris
27c4a593bb swarm-ui: the agents page shows placeholder cards in the shape of the real ones while the roster loads
A new Skeleton (a shimmering shape, still where motion is off) and a region
that tells assistive tech once that something is loading. The agent card's
header is split into AgentCardLayout, a layout with a slot for each part: the
card fills the slots with the real icon, badges and controls, its new
AgentCardSkeleton twin fills the same slots with placeholder shapes, so the
card that replaces it lands in the same place. The agents page uses the twin in
place of its "loading…" text.
2026-11-06 00:22:58 +01:00
iris
4876acd02a swarm-ui: a group pane's maximize and close are icon-only badges in its top right corner
The two controls sat among the pane's header badges as a labelled badge and a
cross glyph. They are now icon badges in the top right corner, through a
`trailing` slot of the terminal preview, so the header on the left keeps the
agent, split, subagents and state badges and a narrow pane wraps less.
2026-11-05 13:33:12 +01:00
iris
d733b1e2a9 swarm-ui: choosing a subagent in the subagents menu splits its terminal in beside the agent's
The menu on an agent's terminal page used to open the subagent on a tab of
its own. It now starts a group of this terminal and the subagent's, split to
the right; in a group's pane it splits that pane. A pane's layout key is the
agent, or `agent/subagent` for a subagent's pane, so the layout operations
stay as they are and a destroyed agent takes its subagent panes with it. A
subagent already in the group shows a marker and does nothing when chosen,
and maximize opens a subagent pane's terminal on its own.
2026-11-05 12:45:35 +01:00
iris
839dbd642a swarm-ui: groups of agent terminals: drag a terminal tab onto a terminal to split it, tmux style, with resizable panes, a split button, and a name you can edit 2026-11-05 08:24:58 +01:00
iris
0421f28d49 swarm-ui: the egress card on the swarm page lists and edits the swarm-wide denied domains, and says which hives have not applied them 2026-11-04 23:53:03 +01:00
iris
7122a3a36d swarm-ui: test which entries the egress card lists and the swarm-wide add body 2026-11-04 21:19:39 +01:00
iris
ad76e7e937 swarm-ui: an egress card on the swarm page for the swarm-wide allowed domains, sharing the agent card's add form and list hook 2026-11-04 21:14:43 +01:00
iris
5541e3606b swarm-ui: give the badge row its own stylesheet, imported where it is used 2026-11-04 17:21:56 +01:00
iris
369946169c swarm-ui: show the inference settings and resource caps on one wrapping line each 2026-11-04 17:21:56 +01:00
iris
e70560c0ad swarm-ui: format the allowed-domains badge row 2026-11-04 17:21:56 +01:00
iris
c5eb13f826 swarm-ui: card the badge popover body and lay the allowed-domains badges out in a wrapping row 2026-11-04 17:21:56 +01:00
iris
9afe21819f swarm-ui: read the agent's grant once for the internet and permissions controls, and save one permission change at a time 2026-11-04 17:21:56 +01:00
iris
5e23734667 swarm-ui: restructure the agent card into status, terminal, subagents and settings, with badge controls for internet, permissions and allowed domains 2026-11-04 17:21:56 +01:00
iris
e8e6150137 swarm-ui: link an agent's forge profile and config repo from its overview
The agent card's overview gets a forge row with two links, built from
the forge entry of the swarm's service links.
2026-11-02 22:29:43 +01:00
atlas
3e5b5b54a2 swarm-ui: link a gitlab account to an agent 2026-11-02 17:57:15 +01:00
atlas
d6e983995d add external gitlab accounts: stored in bao, linked per agent, allowed in squid, usable with glab 2026-11-02 16:44:56 +01:00
atlas
83bb47d134 swarm-ui: turn an archetype agent into a custom one from its detail 2026-11-01 22:44:28 +01:00
iris
5b66a83112 swarm ui: the agent card has a terminal icon beside the wanted menu
It opens the agent's terminal tab without opening the card.
2026-11-01 12:51:59 +01:00
iris
a3628bd9ce swarm-ui: an agent card shows a chevron, and no select highlight
The card header gets the same chevron a folded card has, right while shut and
down while open. The outline for an opened card goes: the sections say it is
open.
2026-11-01 01:29:47 +01:00
iris
3058a5871e swarm-ui: drop the wanted menu's two dead options, and two stale test headers
showDestroy and portal were each passed by one caller, the old card and the old
table cell, and neither exists now. Two test headers still named the detail
panel.
2026-11-01 01:26:40 +01:00
iris
2eaa02e892 swarm-ui: the agents page is one column of cards that open in place
The roster loses its second column and its table view. Selecting a card opens
its details under it as four folded sections: overview, settings, accounts and
the terminal. The status, message and wanted rows, which the card header
already shows, are gone from the details. The terminal page's details dialog
keeps the flat list.
2026-11-01 01:21:43 +01:00
atlas
9193f37963 derive per-agent egress entries from operator-linked accounts 2026-10-30 12:28:51 +01:00
atlas
9140d063d7 offer the log mode in the swarm ui 2026-10-30 08:52:22 +01:00
atlas
7e2f4ce7c8 always include a hive's own allowedDomains in the rendered swarm-wide list 2026-10-29 08:25:22 +01:00
atlas
c5a876b845 derive an agent's backend hosts into the egress allow list at the controller 2026-10-29 08:25:22 +01:00
atlas
c9abc2a42b make squid's allowed domains editable at runtime in the swarm ui 2026-10-28 23:01:43 +01:00
iris
da5fcbfd9b subagents publish their model and effort as headers on every row, and the swarm shows them
The subagent daemon stamps Swarm-Model and Swarm-Effort on each row it
publishes. The list endpoint reads them off the newest row it already fetches,
so a long-running subagent keeps them past the stream's 24 hour window, and the
terminal page's menu and the agent panel's list show them beside the name.
2026-10-28 21:55:02 +01:00