SirKentut
fb8745f9a3
[pierre] share: refresh the workflow list after importing a workflow .swarm
...
Import already handled workflow bundles, but nothing told the UI. Unlike a
dashboard there is no route to navigate to, so the hub -- which only fetches on
mount -- kept showing a stale list and the imported workflow looked like it had
vanished until a remount.
Refetch on a workflow-root import. Import drops dashboard_id and /list keeps
unassigned workflows for every dashboard, so it shows up wherever the user is.
2026-07-13 15:04:47 -07:00
SirKentut
1375e6126b
[pierre] workflows: share any workflow straight from the sidebar row on hover
...
Puts Share beside the existing trash icon on each rail row, so a workflow can be
shared without opening it first. Trash keeps its current always-visible styling.
The button is faded out rather than unmounted when the row loses hover:
ShareButton owns the modal's open state, so unmounting on hover-out would slam
the dialog shut the instant the pointer left the row to reach it. Keeping it
mounted also stops the row reflowing as the icon appears.
2026-07-13 14:58:27 -07:00
SirKentut
6ee392839f
[pierre] workflows: share the open workflow as a .swarm from the hub title bar
...
Adds the Share affordance to the Workflows hub, left of the close button. It
only appears in detail view, so it always has an unambiguous target; goHome
leaves selectedId set, hence the explicit mode check.
Everything under it already existed: WorkflowExportable is registered and
ShareKind already had 'workflow'. The hub simply never rendered a ShareButton.
The title bar moves from the card into the content. The card is at 281 of the
linter's 300-line cap, so lifting nav state up into it would have breached the
cap; pushing the bar down to the state instead keeps both files well under, and
splits on a better seam anyway (card = drag/resize geometry, content = the app
and its chrome). The card hands its drag handlers down via CardHeader.
The share dialog portals to the body but its events still bubble the React tree,
so the wrapper stops click/pointerdown; without it, dragging the card follows a
click inside the modal.
Verified in the running app: share icon absent on Home, present in detail and
left of the X, and the modal builds a real workflow bundle.
2026-07-13 14:55:00 -07:00
ciregenz
dca6298f1b
[eric] merge #125 : virtualize large user messages (aidan)
2026-07-12 18:37:58 -07:00
abccodes
4b39d747c4
[aidan] fix/lazyload-chat-lag: virtualize large user messages, add hard-cut fallback
2026-07-10 18:02:52 -07:00
ciregenz
a9d239383e
[eric] merge #122 : abort card drag on pointer release off-canvas, no stranded edge-pan (pierre)
2026-07-09 16:38:33 -07:00
ciregenz
72e71d6710
[eric] dashboard: clicks inside a webview page select its browser card (guest app-clicked IPC, select+raise only, no camera yank)
2026-07-09 16:26:04 -07:00
SirKentut
0156f475b8
[pierre] fix: explicitly invoking a an abortDrag the moment the user releases the pointer when off canvas
2026-07-09 00:14:30 -07:00
ciregenz
9fdfa12cc5
[eric] dashboard: note textarea + browser chrome clicks select (capture-phase); card presses never arm the marquee deselect
2026-07-08 23:52:31 -07:00
ciregenz
3b0d3bb6a7
[eric] dashboard: plain click selects the card so spawn-beside-selection fires without shift/marquee
2026-07-08 23:35:01 -07:00
ciregenz
dca6008ddd
[eric] providers: health pill ignores clickaway (first canvas click was silently killing it)
2026-07-08 23:16:27 -07:00
ciregenz
8dead0c890
[eric] merge #121 : spawn cards beside selection or viewport-center; agent browsers dock to chat (pierre)
...
# Conflicts:
# frontend/src/shared/ws/WebSocketManager.ts
2026-07-08 22:58:42 -07:00
ciregenz
8ed9149c7e
[eric] providers: boot-time login-health pill (dead sub token -> reconnect toast, no more silent codex deaths)
2026-07-08 20:34:37 -07:00
SirKentut
ae563ee9d5
[pierre] fix: deterministic browser spawn
2026-07-08 18:14:00 -07:00
ciregenz
c19f4ca99e
[eric] browser: never suspend an audible card (Chrome parity, music keeps playing off-screen)
2026-07-08 14:00:26 -07:00
ciregenz
161c65cdcd
[eric] browser: Chrome-style suspend capsules (sessionStorage+scroll survive), last-visible-frame snapshots, 20s working grace
2026-07-07 22:52:28 -07:00
ciregenz
f7b4e91dd2
[eric] browser: unwedge off-screen webview suspend (capturePage hang) + glow-leak liveness gate
2026-07-07 21:27:33 -07:00
SirKentut
d1713f901c
[pierre] feat: browser spawned from agent will always spawn to the right of parent chat
2026-07-07 18:47:12 -07:00
SirKentut
c4789ebdab
[pierre][refactor]: placeCard exact flag replaces the placeCard+setCardPosition double-dispatch
...
The optimistic spawn placed the chat with placeCard (which grid-snaps + collision-dodges) then immediately overwrote it with setCardPosition to force the exact viewport-center/beside-card spot. Fold that into a single placeCard({ ..., exact }) so the pre-resolved position is honored directly; the single-browser dock omits exact to keep the collision-dodge cascade.
2026-07-07 18:47:12 -07:00
SirKentut
f8b9e44cd9
[pierre][fix]: dead-center new cards in viewport and on camera fit
2026-07-07 18:47:12 -07:00
SirKentut
c3d69d175d
[pierre][fix]: spawn new dashboard cards beside selected card or viewport center
2026-07-07 18:47:12 -07:00
ciregenz
63bfb7cfae
[eric] agents: admission gate caps concurrent root turns (children bypass, queued pill)
2026-07-07 18:09:57 -07:00
ciregenz
953fddc99e
[eric] apps: auto hard-reload the app card when a turn installed deps (soft reload can't see new packages)
2026-07-07 01:31:35 -07:00
ciregenz
a2c0f73140
[eric] import: app .swarm no longer navigates to the deleted /apps route (white-screen brick)
2026-07-07 01:15:03 -07:00
ciregenz
1b96bc597c
[eric] context: lossless tool-report spill (browser+gws caps point at the full file) + visible recovery pill
2026-07-06 14:16:31 -07:00
ciregenz
ead27dabcc
[eric] paste-dialog: uncontrolled editor (large pastes typed like molasses through controlled MUI autosize)
2026-07-05 16:19:12 -07:00
ciregenz
452b232637
[eric] merge #119 : pasted-text cards editable with autosave
2026-07-05 16:14:57 -07:00
ciregenz
f3b7df3f4d
[eric] palette: Go to Skills/Actions opens Settings tabs; drop Go to Modes (routes died in #118 + modes-removal)
2026-07-03 15:53:55 -07:00
ciregenz
45084403a3
[eric] merge #118 : move customization into settings (rebased over modes-removal + apps fold-in)
2026-07-03 15:52:05 -07:00
ciregenz
3fe8599a22
[eric] chat: restore the model-picker trigger (was inside the removed mode pill)
2026-07-03 03:12:26 -07:00
ciregenz
25c944cc70
[eric] modes: hide the mode system from the UI (composer picker + sidebar); default agent
2026-07-02 21:39:59 -07:00
ciregenz
dfd7844f44
[eric] apps: card header gets open-another (+) and collapse-to-nothing toolbar toggle
2026-07-02 21:39:59 -07:00
ciregenz
40d975c702
[eric] apps: fix 2nd instance on old workspaces (port shim) + dedupe header keys
2026-07-02 21:39:59 -07:00
ciregenz
40b5fc93cb
[eric] repo: untrack node_modules symlinks accidentally committed in the app-ux merge (absolute paths, break other machines)
2026-07-02 16:36:17 -07:00
ciregenz
9603912237
[eric] merge eric/app-ux: app builder UX + browser tab drag-out + CreateApp fold-in
2026-07-02 16:10:56 -07:00
ciregenz
227bd1badc
[eric] apps: fold App Builder into agents via CreateApp; delete standalone /apps page + editor
2026-07-02 03:20:52 -07:00
abccodes
2b806242f2
[aidan] ux/large-text-paste: make pasted-text cards editable with autosave
2026-07-02 02:45:52 -07:00
ciregenz
df603a0b75
[eric] browser: drag a tab out of the strip (drop on a card absorbs it, drop on canvas opens a new browser)
2026-07-02 01:29:32 -07:00
ciregenz
85d77ca552
[eric] apps: multiple independent instances per app (own runtime + ports; alt-click or paste to open)
2026-07-02 01:24:22 -07:00
ciregenz
a4e81a8f2f
[eric] hitl: Approve All persists always-allow so mid-run identical commands stop re-prompting
2026-07-02 00:41:54 -07:00
ciregenz
7076af1e6b
[eric] canvas: cmd+scroll zooms over app cards (interactive webviews + srcdoc iframes)
2026-07-02 00:38:06 -07:00
ciregenz
f19284a456
[eric] apps: card Preview/Code/Terminal switcher, terminal hard-reload, agent-readable terminal.log
2026-07-02 00:35:13 -07:00
ciregenz
f8620d62d0
[eric] actions: sign-in button + live signed-in status for reddit/x/tiktok browser-login MCPs
2026-06-30 19:41:13 -07:00
ciregenz
f24e6ecc52
[eric] mcp: wire X + TikTok into catalog, preflight, env injection + linter exceptions
2026-06-30 17:19:58 -07:00
ciregenz
c04a663996
[eric] browser-bridge: /api/browser-session/action + renderer perform_action + shim client
2026-06-30 17:19:58 -07:00
abccodes
9cda4a8721
[aidan] ux/sidebar-settings: move customization into settings
2026-06-30 17:00:27 -07:00
ciregenz
63c32554ae
[eric] mcp: reddit session-borrow MCP (free, full human action set; WIP)
2026-06-29 23:05:15 -07:00
ciregenz
8eb48dfc42
[eric] app-use: strip pierre's transient [app-agent] trace scaffolding + write-only controls cache (no speculative scaffolding)
2026-06-29 23:03:45 -07:00
ciregenz
1b6d747326
[eric] merge #107 (pierre): app-use OPENSWARM_APP bridge + AppAgent
...
# Conflicts:
# electron/main.js
# frontend/src/app/pages/Views/ViewPreview.tsx
2026-06-29 21:34:11 -07:00
ciregenz
197fe258ab
[eric] merge #113 (aidan): skills agent-discovery + multi-file install + versioning
2026-06-29 21:26:00 -07:00