Commit Graph
1438 Commits
Author SHA1 Message Date
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 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 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
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 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 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 6899ea5bd1 [eric] swarm: dashboard export/import (closure of agents+apps+modes, two-class deps) 2026-06-14 06:44:16 -07:00
ciregenz 9b80d0417a [eric] swarm: workflow export/import entity (lazy store, schedule-off + PII-strip on import) 2026-06-14 06:27:52 -07:00
ciregenz d2a7b79eaf [eric] swarm: app export/import (workspace tree, .env regen) + code-safety review 2026-06-14 06:11:16 -07:00
ciregenz d7b2dfce7b [eric] swarm: backend tests for redaction, zip-slip/bomb, skill round-trip 2026-06-14 05:55:33 -07:00
ciregenz ace783f4ef [eric] swarm: .swarm bundle engine + skill export/import endpoints 2026-06-14 05:55:28 -07:00
SirKentutandClaude Opus 4.8 eb6278ff5c fix(webapp-template): self-heal half-installed vite warm cache
An npm install killed mid-warm leaves node_modules/ populated but no
.bin/, so _ensure_warm_cache (which only checked the dir exists) trusted
the half-tree forever and every app symlinked to it died with
`vite: command not found`. Gate the cache on .bin/vite existing, and
harden the app's frontend/run.sh skip-install guard the same way.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 02:35:19 -07:00
AidanandGitHub 2d7be0e8ac [aidan] bug: dashboard not renaming during first run 2026-06-14 01:22:13 -07:00
ciregenz 685314b313 [eric] free-trial: skip the idle cache-warm ping on the free lane (useless across rotating pool accounts, and it'd burn a run at idle) 2026-06-13 19:06:57 -07:00
ciregenz bf8b450e33 [eric] free-trial: tag the remaining per-query aux calls (turn-label, group-meta, cache-warm, preflight) so one query stays one run 2026-06-13 19:03:35 -07:00
ciregenz 846c13e8ad [eric] free-trial: tag title-gen with the session id so a query + its title-gen = one run 2026-06-13 18:52:51 -07:00
ciregenz 01df3cde17 [eric] free-trial: fresh task-id per query so each query is its own run (cancel or not) 2026-06-13 18:42:49 -07:00
ciregenz 94e17c4b50 [eric] free-trial: arm gate ignores our own managed Claude node (trial no longer self-clears on relaunch) 2026-06-13 18:09:03 -07:00
ciregenz e4740b74c1 [eric] free-trial: pin the trial to Haiku end-to-end (desktop + subagent) so the CLI never sends effort 2026-06-13 17:38:06 -07:00
ciregenz c8a86cd3ff [eric] free-trial: set ENABLE_TOOL_SEARCH=auto on the proxy branch (tool-defer+cache_control 400) 2026-06-13 17:17:28 -07:00
ciregenz b9d90250b7 [eric] updater: evergreen silent install-on-idle (staged update + idle + no agents) 2026-06-13 16:06:26 -07:00
ciregenz 8b6a65fc4b [eric] free-trial: tag free-lane calls with the session id so 1 task = 1 run 2026-06-13 16:03:02 -07:00
ciregenz 10fa59057d [eric] settings: boot drops the managed Pro connection when disconnected, so 'disconnect Pro -> free trial arms' actually works 2026-06-13 04:19:46 -07:00
ciregenz 861f3520f9 [eric] app-builder: drop the em-dash from the skill prompt (precedence: no em/en-dashes anywhere) 2026-06-13 02:08:31 -07:00
ciregenz 5291a4ae60 [aidan] merge #79: QoL, sidebar ui/ux, titles, text compaction, bug fixes 2026-06-13 02:06:54 -07:00