130 Commits
Author SHA1 Message Date
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 87f09e9695 [haik]: refactor naming convention and clean up dead code across backend outputs and service modules. Replace all leading-underscore private names with explicit p_/P_ prefix for module-internal symbols and drop the underscore for cross-module public APIs (load_all, save, load, walk_directory, find_free_port, etc). Rename the runtime module singleton from manager to RUNTIME_MANAGER. Remove unused legacy shims from client.py (submit_event, submit_session_close, record, set_test_sink, set_user_id, update_identity), drop clear() from ring_buffer.py and buffer.py, and remove the VIEW_BUILDER_SKILL backward-compat alias. Switch runtime.py from relative to absolute imports, rename the _d route param to data, and add public-usage comments to clarify cross-module API boundaries 2026-06-13 22:01:17 -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 8c7f9a7016 [haik]: migrate error_classify.py from underscore-prefix to p_/P_ naming convention: rename _is_auth_error, _is_free_trial_exhausted, _is_long_context_error, _is_transient_capacity_error, _is_unknown_model_error to public (drop _), rename _TRANSIENT_CAPACITY_PATTERNS and NON_TRANSIENT_PATTERNS to P upper-snake. Update all call sites in agent_manager.py and test imports in test_v2_invariants.py. Enhance p-private linter: make is_p() case-insensitive so P UPPER_SNAKE constants are enforced, add # p-private-ignore inline suppression (bare and scoped forms), thread source lines through check functions. Enable no-underscore-names rule in config. Update README and config descriptions. 2026-06-13 16:28:03 -07:00
haikdc 8f649eb82c [haik]: rename _sanitize_server_name to sanitize_mcp_server_name (mcp_config canonical, agent_manager, prompt_context, main, tests, toolLabels comment), add no-underscore-names linter check banning leading-underscore Python names in backend, extract _models.py from classes.py for shared pydantic BaseModel field detection used by both classes and vulture checks, add vulture-ignore inline comment suppression and automatic pydantic field-name whitelisting to vulture.py, remove leaked payload arg from client.py sync, update README with new check docs and inline-ignore usage 2026-06-13 15:15:44 -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
ciregenz a1f390ef0f [eric] browser: claim only the user-picked card, not every dashboard card (fix 5cf6e2a) 2026-06-12 20:06:56 -07:00
ciregenz 5cf6e2a4b1 [eric] browser: honor the user's selected browser card instead of spawning a new one (selection now reaches sub-agent dispatch + is claimed for the task) 2026-06-12 17:31:46 -07:00
ciregenz 0a81bfa17a Merge PR #70 [Aidan] appbuilder: inject selected-app context into dashboard agent chat 2026-06-11 02:51:05 -07:00
ciregenz ddd0641cac [eric] merge free-trial + value-first onboarding (flag off, reorder gated so no-trial = today's flow)
# Conflicts:
#	frontend/src/app/pages/AgentChat/bubbles/MessageBubble.tsx
2026-06-10 23:20:18 -07:00
ciregenz 6b5f10e287 [eric] bash defaults to always-allow like other actions (catastrophic/scheduling/sensitive-path guards still prompt); drop the working status dot 2026-06-10 23:13:02 -07:00
AidanandGitHub 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 100d6491f7 [eric] models: track model errors (diagnostic) + friendly 'not on your plan' card for the 1211 unknown-model wall 2026-06-10 19:10:57 -07:00
ciregenz a126c42a07 [eric] free-trial: hand the wheel back when a real model is connected mid-trial (key or 9router sub) 2026-06-10 16:32:25 -07:00
ciregenz fb178648df [eric] free-trial: backend dispatch injection, hardware fingerprint, mint/clear, exhaustion upsell 2026-06-09 23:54:10 -07:00
Aidanandciregenz 0a704d4690 [aidan] chat: isolate branch history, fresh session on edit/switch (#62) 2026-06-09 22:29:31 -07:00
ciregenz 1be1ce581d [eric] providers: Fable 5 turns thinking off by omitting the param, not thinking:disabled (which 400s) 2026-06-09 14:06:18 -07:00
ciregenz 91073becec [eric] browser: finish via a Done(message) tool so the user gets a plain conversational reply, not the OUTCOME tag 2026-06-08 22:15:52 -07:00
ciregenz 110dc1c745 [eric] browser: fast-path emits a synthetic BrowserAgent tool-call/result so the 'Browser Agent' bubble always shows, even when the orchestrator is skipped 2026-06-08 13:07:12 -07:00
ciregenz 62758cc517 [eric] browser: fast-path brief ENTRY url flows into dispatch, new cards skip the google detour 2026-06-06 00:17:05 -07:00
ciregenz 92df6ea4f0 [eric] browser: send-probe gate catches focus-type payloads, batched Enter blocked while composer pending 2026-06-05 23:30:23 -07:00
ciregenz 6fd1047543 [eric] browser: mechanical verify-first gate on send-class recovery, probe verdict gates the retry in code 2026-06-05 22:55:05 -07:00
ciregenz 99ba826be2 [eric] backend: INFO logging visible in dev plus ms-level traces across the fast path 2026-06-05 16:12:32 -07:00
ciregenz 2c55d17f50 [eric] browser: dead-dashboard dispatches fail in 1s instead of burning turns, recovery skips systemic causes 2026-06-05 15:56:38 -07:00
ciregenz 6ac76d3dbd [eric] backend: aux-generated names get squeezed short, refusals fall back instead of becoming titles 2026-06-05 15:49:13 -07:00
ciregenz 84eeb2925e [eric] browser: three-way fast path, READ answers public pages via local fetch in seconds 2026-06-05 15:17:33 -07:00
ciregenz fe63ae63d7 [eric] browser: fast path sharpens tasks via aux brief and retries one recovery dispatch 2026-06-05 13:00:49 -07:00
ciregenz 8ee209a83c [eric] browser: fast path skips orchestrator for browser-only first messages 2026-06-05 12:02:17 -07:00
ciregenz 928df4f324 [eric] websearch: gate built-in tool by model route so subscription Claude stops 401ing 2026-06-03 18:15:30 -07:00
ciregenz 33f6e4598e [eric] web: subscription-OAuth WebSearch 401s on token rotation, so keep the reliable DuckDuckGo fallback for those users 2026-06-03 15:29:20 -07:00
eric 4b3aa3eb8b [eric] fix: revert enable_tool_search back to auto (forcing 1 marked tools defer_loading and 400'd the claude sub route on the defer_loading+cache_control combo) 2026-06-01 07:58:09 -07:00
eric 1035c50be3 [eric] perf: force enable_tool_search=1 on non-anthropic paths so schemas load on demand and first message is ~9k tokens cheaper 2026-05-31 18:06:39 -07:00
eric ecf348f9cb [eric] fix: autocompact now actually trims the model's history instead of just showing a marker 2026-05-31 18:00:39 -07:00
Eric 3509c08057 [eric] workflows: remove scheduled-tasks end-to-end (frontend pages+slice, backend app+routes, electron poller), keep dock chat; bump 1.1.64 2026-05-26 11:12:29 -07:00
ciregenz 083d70def5 [eric] workflows: merge scheduled-tasks onto dev, re-home dashboard + fix backend imports 2026-05-24 23:41:53 -07:00
ciregenz 4e9f5ceb07 [eric] tree: group agent_manager helpers under agents/manager session and prompt 2026-05-23 13:08:01 -07:00
ciregenz fa57be6bbb [eric] tree: group foundational agent modules under agents/core 2026-05-23 13:05:15 -07:00
ciregenz b9ce323c5f [eric] deadcode: remove unused _summarize_message_block 2026-05-23 10:26:42 -07:00
ciregenz 8b646b0223 [eric] deadcode: remove unused _approx_tokens 2026-05-23 10:25:47 -07:00
ciregenz 8d76f39c67 [eric] cycles: pull APP_VERSION into its own leaf 2026-05-23 07:06:42 -07:00
ciregenz 65465aceec [eric] split: extract attachment resolution 2026-05-23 03:18:22 -07:00
ciregenz e5427ee492 [eric] split: extract prompt/context builders 2026-05-23 03:16:05 -07:00
ciregenz ef7c523f1a [eric] split: extract history compaction helpers 2026-05-23 03:11:58 -07:00
ciregenz f26f4985a9 [eric] split: move aux LLM helpers out of agent_manager 2026-05-23 03:09:35 -07:00
ciregenz b7ef925b03 [eric] split: extract tool catalog helpers 2026-05-23 03:08:53 -07:00
ciregenz 0e4e6ce371 [eric] split: carve out workspace git helpers 2026-05-23 03:08:09 -07:00
ciregenz 937d1bdf17 [eric] split: extract cloud session-close sync 2026-05-23 03:06:50 -07:00