haikdc
d7349cce18
[haik]: refactor: rename ws_manager singleton to WS_MANAGER and await_reconnect to await_reconnect across 8 files. Module-level ConnectionManager instance follows P/uppercase constant convention (ws_manager -> WS_MANAGER in ws_manager.py). Cross-module helper _await_reconnect drops leading underscore since browser_agent.py imports it directly. Updated all ~80 call sites in agent_manager.py, agents.py, browser_agent.py, main.py, and ws_manager.py; updated monkeypatch targets in test_browser_agent_loop.py, test_browser_fast_path.py, and test_disconnect_resilience.py. 176 insertions, 176 deletions, no behavioral changes.
2026-06-13 23:51:26 -07:00
haikdc
08eb4b561f
[haik]: refactor: systematize naming conventions across 20+ backend modules. Private module-level vars renamed _foo to P_FOO, private funcs _foo to p_foo, cross-module public funcs drop leading underscores entirely (e.g. _discover_mcp_tools_http -> discover_mcp_tools_http, _load_all -> load_all_tools, _classify_services -> classify_services). Local vars inside functions lose underscores (_backend -> backend_dir, _port -> port). Unnecessary import aliases removed (import json as _json -> import json). Imports reorganized to proper source modules (derive_mcp_config from mcp_config, oauth refresh funcs from oauth_tokens). Added Public comments documenting cross-module API boundaries. Extracted PENDING_OAUTH to oauth_state.py to break circular import. No behavioral changes.
2026-06-13 23:38:39 -07:00
haikdc
67fce8ee89
[haik]: refactor: canonicalize settings imports and public API naming - move all load_settings imports from backend.apps.settings.settings to backend.apps.settings.store (agent_manager, agents, browser_agent, mcp_preflight, anthropic_proxy, auth/router, dashboards, outputs, service, subscription/router, web) so consumers point at the source module instead of the re-export; rename _atomic_write_settings to atomic_write_settings and _has_own_model to has_own_model since both are called across module boundaries; rename _summarize_block to summarize_block and UPLOAD_DIR to P_UPLOAD_DIR in settings.py; clean up unused var names (_base to _, _ext to _, _httpx to httpx); update test_auth_router.py imports and _save_settings references to match
2026-06-13 22:22:31 -07:00
haikdc
f0d3cabc47
[haik]: refactor: standardize backend naming and import structure - strip leading underscores from all internal functions/constants across agents, settings, session, and provider modules in favor of public names or P_ prefix for module-private symbols; replace nine_router/init.py barrel re-exports with direct submodule imports (process, sync, sync_custom, oauth); hoist inline stdlib imports to module level; delete dead openai_passthrough.py GPT-5 proxy and the redundant _save_settings alias
2026-06-13 19:30:34 -07:00
haikdc
211f939560
[haik]: refactor: standardize naming convention across browser agent modules — replace _CONSTANT/_func leading-underscore privates with P_PREFIX for module-level constants and p_func for internal helpers, promote public API functions (safe_resp_text, detect_loop, hash_tool_call, clean_bullet, etc.) by dropping the underscore, switch module-level imports to explicit function-level imports in browser_agent.py and agents.py, and add browser_skills.py to the linter no-underscore-names exception list
2026-06-13 17:30:35 -07:00
haikdc
d89fb7d870
[haik]: backend cleanup: remove unused imports (anthropic, json, time, sys, HTTPException, ws_manager, etc.), drop unused context params from tool hooks and execute methods, delete dead _resolve_model helper and entire thinking.py module, prune multi-provider subagent model fallback block in agent_manager, fix session_store to import SESSIONS_DIR directly from config.paths, re-home compute_tiers/compute_billing_kind imports from registry to pricing in agents.py, add google-workspace-mcp==2.0.1 to requirements-dev
2026-06-13 11:45:55 -07:00
Aidan and GitHub
e8e19661e6
Inject selected-app context into dashboard agent chat ( #69 )
...
When a user selects an App card on the dashboard via the "Select UI element" picker, thread the selected Output ids to the backend (mirroring the selected_browser_ids path) and inject a per-app context block into the system prompt: each app's absolute workspace path, entry point, meta.json, and a pointer to its SKILL.md. This lets the agent edit existing apps in place from the main view (the dashboard card's Vite runtime live-reloads on save) without switching to the Apps tab.
2026-06-10 21:29:02 -07:00
ciregenz
1fd32b7bc3
[eric] backend: add Fable 5 subscription (cc/) row, verified live 200 on the Claude sub
2026-06-09 15:58:19 -07:00
ciregenz
7ab61057df
[eric] backend: surface Fable 5 in the model picker on the api-key route + price it $10/$50
2026-06-09 14:55:07 -07:00
ciregenz
f187ec7c6e
[eric] browser: surface learned playbook in-chat + REST list/forget so site memory is visible and clearable
2026-06-02 23:16:22 -07:00
ciregenz
6cf2606666
[eric] merge: fold eric/cleanup abstraction refactor into dev (resolve 9, re-home edits)
2026-05-24 16:24:59 -07:00
ciregenz
1818375967
[eric] models: label Anthropic (API key) + subscription variants, fix billing bucket
2026-05-24 01:48:26 -07:00
ciregenz
fa57be6bbb
[eric] tree: group foundational agent modules under agents/core
2026-05-23 13:05:15 -07:00
ciregenz
81fea443fd
[eric] cleanup: drop dead code, dedup 9router prefix, strip em-dashes (backend)
2026-05-23 02:29:22 -07:00
ciregenz
a30229bbda
[eric] attach: native PDFs on Claude/Gemini/OR, cost calc, meter fix, 9router bypass for image blocks
2026-05-22 23:43:54 -07:00
ciregenz
f59bf0db9b
defluff (frontend + backend): strip em-dashes + shorten docstrings + drop dead UI files (cosmetic only, no schedule code)
2026-05-20 05:36:17 -07:00
ciregenz
6092fc0966
apps: canvas-chat App Builder seeds + sync meta.json + stale-approval filter
...
App Builder launched from canvas chat now seeds the React template and
registers an Output row tied to the session id, so the Apps sidebar
lights up immediately. Adds a post-session-complete sync that reads
meta.json from the workspace folder and updates the Output row's name
and description, ending the 'Untitled App' problem. Also adds a stale-
approval filter to the WS replay: resolved approvals no longer
resurrect as dead cards when the user navigates back to a chat.
2026-05-20 02:09:03 -07:00
ciregenz
a1fefa0ae8
[eric] approvals: trust patterns for action approvals + smarter sensitive-file gating
2026-05-20 01:56:38 -07:00
ciregenz
e840b1b7f0
[eric] sub bug fix
2026-05-13 19:05:04 -07:00
ciregenz
89cbfe9749
[eric] onboarding polish + perf — humanized AC popups, batched /submit (1 POST/sec vs 100s), group-meta dedup,
...
sidebar auto-expand, cursor offset fixes
2026-05-09 23:34:40 -07:00
ciregenz
b3428a736b
[eric] custom OpenAI-compatible provider support, youtube bug fix (windows)
2026-05-07 21:22:40 -07:00
ciregenz
fae2806124
[eric] make non-Anthropic API keys actually work end-to-end, fix the wildly wrong cost numbers, multi model ux/ui improvements
2026-05-06 21:05:57 -07:00
ciregenz
49c649e3d9
[eric] single sync function for all state syncing
2026-05-05 12:11:07 -07:00
ciregenz
3c42d8738f
[eric] refactor internal service layer
2026-05-04 19:39:19 -07:00
ciregenz
691a92c2a1
[eric] dynamic turn labels in the thinking pill via cheap-tier aux LLM + cache pre-warm on dashboard mount for faster turn-1
...
TTFT
2026-04-30 12:31:48 -04:00
ciregenz
98349df9f1
[eric] faster replies + smarter chat: optimistic message bubbles, live thinking... pill, friendlier tool-call labels (Reading → Read),
...
compaction chip, native completion notifications, prompt-cache flip for ~70% cheaper/faster
2026-04-29 14:07:18 -04:00
ciregenz
f755548b93
[eric] drop (Pro/Max) suffix from cc/ model labels — group header already disambiguates from OpenSwarm Pro proxy;
...
.gitattributes: split mcp-bundles vendored pattern into two
2026-04-29 00:46:17 -04:00
ciregenz
5d69215739
[eric] phase 2+3: outputs gate, smart compaction, slash commands, preflight + auto-continue, bumped Anthropic SDK
2026-04-28 19:55:06 -04:00
ciregenz
30d581e9ec
[eric] phase 1: MCP activation gate, context pill, friendly 429s, -api routes so API keys actually work
2026-04-28 19:01:07 -04:00
ciregenz
f5cc3a36fb
[eric] remove vendored 9router (now fetched from npm at build), remove Copilot, and fix subs + tools
2026-04-25 02:26:08 -07:00
ciregenz
7eb85a7127
[eric] subscription UI fixes: cards no longer flicker to the Starting-subscription-service spinner mid-task (is_running TTL cache + retry/poll on mount), show
...
Anthropic as its own picker group alongside OpenSwarm Pro when both are connected so users can pick per-request
2026-04-16 11:12:27 -07:00
ciregenz
1a68ccfc7b
[eric] OpenSwarm Pro: new managed plan alongside BYO — deep-link activation from billing checkout, onboarding + Settings card with live usage, gradient OpenSwarm Pro group in
...
the model picker, inline error cards for rate-limit/connection failures, debugger startup fix
2026-04-15 23:05:02 -07:00
ciregenz
14e1d02bbb
[eric] reasoning UI + thinking-level controls: collapsible 'Thought for Ns' bubble with shimmer, per-session thinking level (off/low/med/high/auto) on
...
reasoning-capable models, gate GitHub Copilot as 'Coming soon', delete Twitter/xbird integration, fix model-picker first-click + 200K context cap on Sonnet/Opus, revive
arrow-key dashboard nav after typing/clicking/zooming
2026-04-15 12:47:34 -07:00
ciregenz
bc2ca1f33a
[eric] multi-model polish: updated model registry, Gemini thought-signature fix, collapsible model picker, UI fixes
2026-04-12 20:49:33 -07:00
ciregenz
4778cea80e
[eric] multi-model subscription support: connect ChatGPT Plus, Gemini Advanced, and GitHub Copilot subscriptions via 9Router
...
- Add BUILTIN_MODELS for OpenAI (GPT-5.4/Mini/5.3-Codex), Google (Gemini 3 Pro/Flash, 2.5 Pro/Flash), and GitHub Copilot
- Add resolve_model_id_for_sdk() and resolve_aux_model() to route prefixed model IDs (cx/, gc/, gh/) through 9Router translator
- Add GET /agents/models endpoint returning available models based on live 9Router connection state
- Enable ENABLE_TOOL_SEARCH=auto for all providers so non-Claude models get full tool access (23 built-in + all MCPs)
- Add thinking block streaming support (ThinkingBlock in stream handler + AssistantMessage) for reasoning models
- Fix Gemini 3 thought-signature errors: use skip_thought_signature_validator per Google docs
- Fix WebSearch blocked_domains/allowed_domains empty-list rejection on Anthropic API
- Fix browser_agent text_parts UnboundLocalError on non-Claude models
- Fix auxiliary LLM calls (title gen, group meta, dashboard naming, view builder, browser agent) via resolve_aux_model
- Add Codex OAuth callback listener on port 1455 for ChatGPT Plus subscription connect
- Route Gemini OAuth through system browser since Google blocks embedded webviews
- Override Electron popup user-agent for OAuth
- Fix duplicate OAuth callback with idempotent completed_oauth tracking
- Fix Settings modal tab routing and stale warning banner
- Add API key inputs for OpenAI, Google, and OpenRouter
- Add MCP warning banner when selecting non-Claude model with many tools
- Force session fork on cross-provider model switch to prevent transcript corruption
- Disable GitHub Copilot subscription card (9Router poll issue, marked preview)
- Delete dead CopilotProvider import and unused CopilotAuthButton component
2026-04-12 12:06:36 -07:00
ciregenz
7c3da1ab4c
[eric] fix 9Router CLI auth for subscription users, add analytics, update models
2026-03-27 00:21:19 -07:00
ciregenz
bc218c8707
[eric] v1.0.14: fix 9Router server.js path, disconnect button, onboarding
2026-03-25 19:17:04 -07:00
ciregenz
ebea25f0c2
[eric] [eric] add PostHog analytics, 9Router subscription proxy, unified usage tracking
...
- PostHog integration: collector, analytics subapp, opt-in UI, Analytics page
- 9Router: auto-start, OAuth subscription flow, /v1/messages Anthropic format support
- Settings overhaul: multi-provider API keys, subscription connect UI, onboarding modal
- Unified usage: merge 9Router cost/token data into Settings Usage tab
- Provider system: providers/, agent_loop, tools/ (unused, for future non-Anthropic support)
- Agent SDK: restored as primary with 9Router ANTHROPIC_BASE_URL fallback
- Updated system prompt, credential resolution, dashboard analytics
2026-03-24 14:02:58 -07:00
haikdc
9943ccafd5
[Haik]: (Agent browser render size matches that of user browser spawn) (queing messages) (chat loading bubble fix) (tethers to sub agents and branches are now permament and inputs are swapped to a continue chat button) (auto focus for everything) (history card position fix when redeployed) (dashboard persistance fixed) (non browser link clicks open in the in app browser now) (chat message tooltips for copy, branching, and editing / swapping between edited messages)
2026-03-18 23:45:54 -07:00
haikdc
a1138a1782
[Haik]: (ability to resume chats if force end early) (agent selection actually works as advertised) (browser control/creation tool isolation) (in dev mode can see the action input schema)
2026-03-18 14:19:42 -07:00
haikdc
a6a2c68115
[Haik]: ckpt, (view sidebar clicks fixed) (view back button removed) (backspace/delete to remove items from dash) (copy/paste items in dash) (Swapping between branches in chat) (Per message tool tips in chat) (chat branching support and some cool ahhh anims) (auto deselect items on toolbar collapse) (if exit selection mode, items get deselected) (item selections only populate focused chat input as context instead of all chat inputs) (swapped right and left mouse clicks to match that of other softwares)
2026-03-18 07:40:02 -07:00
haikdc
6f02daff2d
[Haik]: (Browser actions shown in agent card output) (User can have item selection turned on by default in settings) (most browser related functionality works - altho spotify is tricky) (mcp discovery in prod shld worke now?)
2026-03-17 01:48:50 -07:00
haikdc
1632b5c9e5
[Haik]: ckpt, (Fixed view create duplication bug) (Views auto save) (MCP is star sorted by default) (reload issues in dash fixed) (electron app made)
2026-03-15 00:09:04 -07:00
haikdc
23621306a1
[Haik]: and so it begins
2026-03-13 12:09:25 -07:00