Commit Graph
2258 Commits
Author SHA1 Message Date
ciregenz 9d1ff22a41 [eric] 9router: verify-at-boot, report why a start failed (no silent DEVNULL) + no dev-npm fallback in packaged 2026-06-16 04:55:14 -07:00
ciregenz cd4ad8ca2e [eric] share/apps: collapse import contents to a one-line count (expandable), calmer app-card boot state with an honest first-run hint 2026-06-16 04:52:03 -07:00
ciregenz 3998a8d6d9 [eric] sessions: get_all_sessions promotes only disk sessions the layout still cards, so deleted chats stop resurrecting on reopen 2026-06-16 04:44:15 -07:00
ciregenz a99e310940 [eric] diagnostics: attach secret-scrubbed 9router stderr tail to model_error telemetry (was masked 'check stderr') 2026-06-16 04:35:54 -07:00
ciregenz 6976456503 [eric] share: keep the drop border inside the rounded window, soften the import modal's review note + roomier includes list 2026-06-16 04:31:51 -07:00
ciregenz 61c0576cf4 [eric] dashboard: gate view-card orphan-prune on a fresh per-open outputs fetch so import no longer wipes the app card 2026-06-16 04:26:13 -07:00
ciregenz 98233c1baf [eric] share: .swarm drop blast now radiates full-screen and frays to the corners (was a boxed 240px ripple) 2026-06-16 04:02:20 -07:00
ciregenz bb42c62e9d [eric] approvals: add Always-approve button + make Deny one-click (drop the buggy reason step) 2026-06-16 04:00:13 -07:00
ciregenz 07ef98f7e5 [eric] approvals: persist tool policy on Always-approve (set_always_allow through the approval path) 2026-06-16 04:00:08 -07:00
ciregenz c9caaf8a8c [eric] permissions: default Bash to always_allow (seed + one-time lift) so shell commands stop prompting 2026-06-16 04:00:04 -07:00
ciregenz 1f86a66b87 [eric] swarm: remap view-card parent_session_id on share (new #89 field would import dangling) 2026-06-16 03:46:29 -07:00
AidanandGitHub d2d0ce74aa [aidan] ux/app-builder-dashboard: improve app builder dashboard (#89)
* [aidan] ux: when agent creates app always opens in dashboard

* [aidan] enhancement: app editing ui mimicing browseragents

* [aidan] ui/ux: when building app window appears immediately

* [aidan]: app view spacing dashboard mimicing browser

* [aidan] ux: app error agent loop

* [aidan] fix: remove duplicate logic
2026-06-16 03:44:40 -07:00
ciregenz 863fd4f9c5 [eric] share: flush the dashboard layout before export so a just-added app/agent card isn't missed (debounced save was stale) 2026-06-16 03:33:41 -07:00
ciregenz 131b3136eb [eric] sessions: get_all_sessions reads disk too so imported (and post-restart) dashboard cards render instead of blank 2026-06-16 03:03:28 -07:00
ciregenz 2301ff7a70 [eric] swarm: read live session from memory first on export, plus full dashboard round-trip test 2026-06-16 02:41:25 -07:00
ciregenz 65eaab47ae [eric] tests: make aux-model resolver tests deterministic (set Pro bearer token, stop reading live provider state) 2026-06-16 01:59:20 -07:00
SirKentutandClaude Opus 4.8 8cf868784f [pierre] fix/app-agent: re-attach app controls on every task
Run AppDescribe and front-load the app's controls each task in app mode,
not just on fresh conversations. The bridge can appear between runs and a
resumed history may carry a stale screenshot-it strategy; re-reading the
controls re-points the agent at the bridge instead of inheriting old fumbling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 00:52:00 -07:00
AidanandGitHub de2e70ca8f [aidan] fix/browser-early-close: let agent keep browser open when result lives on the page (#88) 2026-06-15 19:00:40 -07:00
ciregenz 3bf1b0da79 [eric] mcp: break the ToolSearch loop, redirect a stuck agent to MCPActivate for gated servers 2026-06-15 18:58:50 -07:00
ciregenz 39c837fee7 [eric] swarm: carry the chat transcript when sharing an agent (was dropped, scrub layer guards secrets) 2026-06-15 18:58:44 -07:00
ciregenz 7a91abba8d [eric] onboarding: drop linear step-gating so every roadmap step is freely explorable 2026-06-15 16:43:55 -07:00
ciregenz c9efbeca39 [eric] onboarding: restart-tour reload + cursor yields silently on off-script click 2026-06-15 16:42:04 -07:00
ciregenz 96f0ce78a7 [eric] boot: fetch subscription status on launch (connected subs were stale until Settings) 2026-06-15 15:22:56 -07:00
SirKentutandClaude Opus 4.8 a35bfaaf7d [pierre] feat/app-agent: drive web apps through the OPENSWARM_APP bridge
Browser agent gains app-control logic + schema, app-builder skill doc,
run.sh agent-bridge presence check, and app-agent tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 15:06:10 -07:00
ciregenz b0401b06d0 [eric] openai: route the thinking-slider effort param to gpt/codex (not just claude) 2026-06-15 14:46:48 -07:00
ciregenz 46e92c9fe0 [eric] dashboards: drop orphan session cards from GET so a dead-session card stops 404ing on load 2026-06-15 14:34:16 -07:00
ciregenz bd73d49828 [eric] mcp-gate: property-test the activation gate (forwarded => activated) + Z3 formal proof 2026-06-15 14:22:48 -07:00
ciregenz ad00fd19ae [eric] error-classify: schema-translation 400s aren't auth; gemini RESOURCE_EXHAUSTED is transient 2026-06-15 14:05:21 -07:00
ciregenz 2bb5ee05f6 [eric] swarm: generative dashboard remap-invariant test + symlink unpack rejection 2026-06-15 14:01:50 -07:00
ciregenz ad1a9b439e [eric] swarm: validate manifest structure at stage time (root/dup-id/edge integrity, outside checksum) 2026-06-15 14:00:19 -07:00
ciregenz c43da8950e [eric] swarm: scan workspace file bytes for secrets on export, not just payload keys 2026-06-15 13:59:11 -07:00
ciregenz 2d82b13a1a [eric] ci: gitleaks fetches full main so renames scan incrementally not full-history 2026-06-15 13:54:40 -07:00
ciregenz 578a31fdd4 [eric] ci: allowlist the cdp-routes redaction-test token in gitleaks 2026-06-15 13:54:40 -07:00
ciregenz 62acc4b8c0 [eric] models: drop banned Claude Fable + unrunnable Gemini 3.1 Pro from the picker 2026-06-15 13:44:22 -07:00
ciregenz 076c47617a [eric] gemini: prefer connected Antigravity over AI Studio key + fail-fast read timeout 2026-06-15 12:36:29 -07:00
ciregenz 235fa47d15 [eric] providers: openai own-key keeps cp-openai/ prefix so 9router can route it 2026-06-15 11:59:11 -07:00
ciregenz f93d6e02d1 [eric] 9router: port the 0.4.x /api auth gate (x-9r-cli-token) to unblock a version bump 2026-06-14 20:27:39 -07:00
ciregenz 124b128ed1 [eric] proxy: fix non-Anthropic first-msg 400s (Gemini allowlist + gpt-5 sampling strip) 2026-06-14 16:58:26 -07:00
ciregenz 9086ef5af2 Merge remote-tracking branch 'origin/eric/dev' into eric/dev 2026-06-14 08:59:19 -07:00
cireandGitHub e47ac3bf67 Revert "[aidan] bug: dashboard not renaming during first run" (#83)
This reverts commit 2d7be0e8ac.
2026-06-14 08:58:49 -07:00
ciregenz 7eeb864a29 [eric] swarm: archive checksum (reject tampered) + transactional rollback on import 2026-06-14 08:07:17 -07:00
AidanandGitHub fd10171ac1 [aidan] ui/ux: canvas navigation (#85)
* dashboard: pan canvas via middle-drag and horizontal scroll over browser/chat

- Middle-mouse drag inside a browser webview is forwarded as canvas pan
  (previously eaten silently by the guest compositor).
- Horizontal-dominant wheel inside a browser webview pans the canvas
  when no ancestor in the guest page can absorb horizontal scroll;
  otherwise the page handles it.
- Horizontal-dominant wheel over a chat panel pans the canvas (chat has
  no horizontal scroller). Vertical scroll is unchanged.

Plain vertical scroll and ctrl/meta+wheel zoom over a browser stay with
chromium's defaults.

* browser: drop in-guest zoom locks so pinch and cmd+wheel zoom the page

setVisualZoomLevelLimits(1, 1) blocked pinch-to-zoom inside the webview, and
setZoomFactor(1) on every dom-ready reset any user page zoom. Both were added
back when canvas zoom was supposed to take over for ctrl+wheel; with that
reverted, chromium's native zoom handlers should run unimpeded.

* [aidan] fix: prev. commit fix. restore ctrl+wheel canvas zoom over webview cards

* [aidan] ui/ux: app navigation

* [aidan] ui/ux: gate webview preload forwarding on app interactive mode

When a view card is "interactive" (user clicked into the app), the preload stops forwarding ctrl+wheel, middle-mouse-drag, and horizontal-scroll-pan gestures so the embedded app gets every event. A mousedown notifier reports in-guest clicks to the host so it can flip the card into interactive mode without intercepting the click itself.
2026-06-14 07:55:34 -07:00
AidanandGitHub f08f71313f [aidan] ui/ux: auth flow fixes (#84)
* aidan] bug: fixed 2 auth claude login issue

* [aidan] bug: claude login w email+pw

* [aidan] ui: edited message for cases where anthropic redirects to enter email code even after login'

* [aidan] ui/ux: fix connecting status accuracy
2026-06-14 07:55:24 -07:00
SirKentut f90975f006 feat(webapp-template): ship agent bridge (window.OPENSWARM_APP) as a hook, not a doc
Add agentBridge.ts and import it FIRST in index.tsx so the bridge is
installed on the window before any app code runs.

The visitor / door / doorbell analogy:

- The visitor is the agent. It shows up wanting to operate the app:
  read the rules, see the controls, take an action, check what happened.
- The door is window.OPENSWARM_APP. A single, always-present surface the
  visitor can knock on: describe() to learn the app, getState() to read a
  snapshot, invoke(name, args) to act.
- The doorbell is register({ rules, controls, getState, invoke }). The app
  presses it on mount to say "I'm home, here's how to talk to me." Until it
  does, describe()/getState() answer { __ready: false } so the visitor
  knows the app is still booting and waits, instead of concluding nobody
  lives here.

Why a hook and not just an .md:

A markdown instruction ("please expose your controls on window.X") is a
request the app can forget, half-implement, or drift from, and nothing
fails when it does. The bridge ships WITH the template and is imported
before app code, so the door exists from first paint whether or not the
author thought about agents. The app's only job is to press the doorbell
once; it never wires the plumbing, so it cannot get the plumbing wrong.
The contract is executable, not aspirational, which is the difference
between every generated app being agent-operable by default and hoping
each one remembered to be.
2026-06-14 07:49:13 -07:00
ciregenz 4e1df63b7c Merge remote-tracking branch 'origin/eric/dev' into eric/dev 2026-06-14 07:44:15 -07:00
ciregenz e15edc702e [eric] chat: unify thinking labels into one shared list, add quirkier verbs 2026-06-14 07:27:00 -07:00
ciregenz 8246f03b27 [eric] dashboard: title-derived header glyph (curated icon + monogram fallback) 2026-06-14 07:26:50 -07:00
ciregenz e2f2dfdc4d [eric] swarm: drop-to-import with GPU-safe pixel digest; modal only for code/action bundles 2026-06-14 07:22:12 -07:00
ciregenz cff334a02b [eric] swarm: Share button on the dashboard header 2026-06-14 06:44:16 -07:00
ciregenz 6899ea5bd1 [eric] swarm: dashboard export/import (closure of agents+apps+modes, two-class deps) 2026-06-14 06:44:16 -07:00