Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
356 commits
Select commit Hold shift + click to select a range
8bd946c
feat(ansible): add sync-code-source.yml to push code from controller …
mrveiss Apr 6, 2026
f0ab7a7
fix(ansible): replace fragile group-based SLM detection in Phase 4c w…
mrveiss Apr 6, 2026
22c8ca2
fix(ansible): use set_fact to override slm_colocated_frontend — inclu…
mrveiss Apr 6, 2026
555f302
fix(ansible): fix code_source ownership before git reset to unblock p…
mrveiss Apr 6, 2026
22f6338
fix(ansible): preserve wizard's slm_colocated_frontend in role set_fa…
mrveiss Apr 6, 2026
8bad6a2
fix(ansible): restart backend+celery when code is synced (#3608)
mrveiss Apr 6, 2026
d2ae39a
fix(ansible): correct systemd startup ordering for all core services …
mrveiss Apr 6, 2026
3a39e35
feat(rag): per-user annotation signals for personalized RAG retrieval…
mrveiss Apr 6, 2026
a8a98f3
fix(backend): replace naive datetime.now() with UTC-aware calls (#361…
mrveiss Apr 6, 2026
6fca865
feat(memory-graph): consolidate into single autobot_memory_graph with…
mrveiss Apr 6, 2026
a88e922
refactor(constants): add TTL_1_HOUR/TTL_5_MINUTES and replace raw cac…
mrveiss Apr 6, 2026
8089061
feat(slm): add admin password reset to user management UI (#3625)
mrveiss Apr 7, 2026
9936ad7
chore(frontend): add getApiBase() to ssot-config for configurable API…
mrveiss Apr 7, 2026
4ce8384
fix(backend): use local time in is_business_hours and is_weekend (#3619)
mrveiss Apr 7, 2026
e8db08f
fix(backend): normalize naive datetime from Redis in knowledge_manage…
mrveiss Apr 7, 2026
fae6ec4
fix(backend): normalize naive datetimes from Redis in stats and analy…
mrveiss Apr 7, 2026
d38012e
chore(slm-frontend): replace hardcoded /api/ with getSlmApiBase() in …
mrveiss Apr 7, 2026
3c75c06
chore(frontend): adopt getApiBase() in composables (#3630)
mrveiss Apr 7, 2026
19097e6
chore(frontend): adopt getApiBase() in service and utils layer (#3629)
mrveiss Apr 7, 2026
729f301
chore(frontend): adopt getApiBase() in stores, models, and components…
mrveiss Apr 7, 2026
c0a9ca5
test: replace asyncio.get_event_loop() with asyncio.run() (#3605)
mrveiss Apr 7, 2026
f9e23e1
refactor(helpers): add extra_data support to TaskResult (#3564)
mrveiss Apr 7, 2026
f4fde8b
refactor(helpers): remove duplicate raise_not_found_error in catalog_…
mrveiss Apr 7, 2026
d4e0695
refactor(helpers): cap exponential backoff via TimingConstants (#3565)
mrveiss Apr 7, 2026
47b306d
refactor(backend): remove dead AgentThresholds import and replace mag…
mrveiss Apr 7, 2026
c819c6f
refactor(agents): declare _get_system_prompt @abstractmethod in Stand…
mrveiss Apr 7, 2026
dba5c04
chore(ci): align isort line_length with Black at 120 in pyproject.tom…
mrveiss Apr 7, 2026
7271d89
fix(ansible): sync standalone autobot_shared on backend deploy (#3649)
mrveiss Apr 7, 2026
df32144
chore(frontend): remove duplicate getApiBase() declarations from ssot…
mrveiss Apr 7, 2026
9cbebec
chore(tests): replace hardcoded localhost:8001 with get_test_backend_…
mrveiss Apr 7, 2026
0675efd
chore(slm-frontend): replace hardcoded /autobot-api/ with getBackendU…
mrveiss Apr 7, 2026
308b2d8
fix(backend): guard context_window_manager against list-format llm_mo…
mrveiss Apr 7, 2026
7812a80
fix(slm): pass auth token to PasswordChangeForm — was always sending …
mrveiss Apr 7, 2026
bd73f7f
fix(ansible): guard groups['database'] lookup in deploy-backend-local…
mrveiss Apr 7, 2026
04261c9
fix(backend): default SLM_URL to localhost and deduplicate startup wa…
mrveiss Apr 7, 2026
5c8d2d3
refactor(backend): give context_window_manager its own config YAML (#…
mrveiss Apr 7, 2026
5327719
fix(backend): add TTL_24_HOURS to chat_workflow/manager.py import (#3…
mrveiss Apr 7, 2026
0a8106a
refactor(agents): cap exponential backoff in agent_client.py via expo…
mrveiss Apr 7, 2026
d05c672
refactor(backend): remove dead doc_generation_threshold attribute (#3…
mrveiss Apr 7, 2026
c8349da
fix(backend): fix REDIS_HOST → AUTOBOT_REDIS_HOST in chat history mod…
mrveiss Apr 7, 2026
e425b04
chore(frontend): remove duplicate getApiBase() declarations from ssot…
mrveiss Apr 7, 2026
28ced7d
chore(slm-frontend): replace hardcoded /api/ with getSlmApiBase() (#3…
mrveiss Apr 7, 2026
846b282
feat(ansible): add pre-flight code_source sync to deploy playbooks (#…
mrveiss Apr 7, 2026
e540cfc
feat(slm): add component selector to File Drift Check UI (#3433)
mrveiss Apr 7, 2026
7723538
chore(ci): add doc linting to catch stale file references in develope…
mrveiss Apr 7, 2026
2aca9bc
chore(frontend): adopt getApiBase() in Vue components and views (Phas…
mrveiss Apr 7, 2026
b1312cf
fix(analytics): scope codebase analytics caches and live scans to sou…
mrveiss Apr 7, 2026
acc5a40
chore(frontend): adopt getApiBase() in chat Vue components (Phase 5b)
mrveiss Apr 7, 2026
c768089
fix(backend): replace bare REDIS_HOST with AUTOBOT_REDIS_HOST in chat…
mrveiss Apr 7, 2026
d250e2f
chore(slm-frontend): replace hardcoded /autobot-api/ with getBackendU…
mrveiss Apr 7, 2026
820d8fd
fix(slm-frontend): safe WebSocket URL construction when getBackendUrl…
mrveiss Apr 7, 2026
673e10f
chore(infrastructure): standardise Redis file ownership to autobot:au…
mrveiss Apr 7, 2026
76b3750
chore(frontend): use getApiBase() instead of getBackendUrl() in notif…
mrveiss Apr 7, 2026
b2d5219
chore(frontend): replace hardcoded /api/advanced/ with getApiBase() i…
mrveiss Apr 7, 2026
b07d426
chore(frontend): adopt getApiBase() in knowledge Vue components (#368…
mrveiss Apr 7, 2026
165fe58
chore(frontend): adopt getApiBase() in security, visualizations, work…
mrveiss Apr 7, 2026
3d82c3f
chore(frontend): adopt getApiBase() in knowledge Vue components (Phas…
mrveiss Apr 7, 2026
1db755c
feat(analytics): scope quality/review/evolution/generation to project…
mrveiss Apr 7, 2026
d7e9a9a
fix(frontend): correct useEvolution base URL from /analytics/evolutio…
mrveiss Apr 7, 2026
25d2c9c
chore(frontend): adopt getApiBase() in analytics Vue components (#3681)
mrveiss Apr 7, 2026
9141bc2
chore(backend): add explicit encoding='utf-8' to file I/O (#3391)
mrveiss Apr 7, 2026
851776a
refactor(tests): co-locate single-module tests from autobot-backend/ …
mrveiss Apr 7, 2026
3e24f84
fix(frontend): remove spurious /analytics prefix from code-review pat…
mrveiss Apr 7, 2026
3433d79
fix(frontend): use wss:// on HTTPS for CodeQualityDashboard WebSocket…
mrveiss Apr 7, 2026
5e6ebcb
fix(frontend): remove dead loadReview() — GET /review/{id} has no bac…
mrveiss Apr 7, 2026
22441e7
fix(ansible): AUTOBOT_CHROMADB_HOST fallback uses backend_ai_stack_ho…
mrveiss Apr 7, 2026
cbf2fad
feat(slm): implement autobot-admin CLI with reset-password subcommand…
mrveiss Apr 7, 2026
443cde3
fix(ansible): add post-deploy smoke test to backend role (#3687)
mrveiss Apr 7, 2026
40a3beb
fix(backend): rate-limit AI Stack connection error logging (#3686)
mrveiss Apr 7, 2026
d245ca2
fix(ansible): idempotent autobot:autobot ownership on Redis dirs (#3396)
mrveiss Apr 7, 2026
8bf479b
fix(frontend): remove duplicate withSourceId() wrap in Redis health U…
mrveiss Apr 7, 2026
6818447
fix(tests): update stale src.tool_discovery mock path (#3722)
mrveiss Apr 7, 2026
e8b06a8
chore(dev): add requirements-dev.txt with structlog and aiosqlite (#3…
mrveiss Apr 7, 2026
5e1d00f
feat(frontend): wrap router-view with ErrorBoundary in App.vue (#3375)
mrveiss Apr 7, 2026
7155aef
feat(backend): persist code-review results in Redis + GET /review/{id…
mrveiss Apr 7, 2026
7d1b503
feat(slm): Redis service management UI — start/stop/restart controls …
mrveiss Apr 7, 2026
5bca7b9
chore(dev): uncomment aiosqlite in autobot-backend/requirements.txt (…
mrveiss Apr 7, 2026
733a6a8
chore(analytics): fix flake8 E501 line-length violation in analytics_…
mrveiss Apr 7, 2026
0bd5ae3
fix(tests): correct stale src.tool_discovery patch path in tool_disco…
mrveiss Apr 7, 2026
e6281a7
fix(backend): remove total timeout from LLM streaming — use connect-o…
mrveiss Apr 7, 2026
7bac41b
chore(tests): extend get_test_backend_url() to remaining 14 backend t…
mrveiss Apr 7, 2026
a17868c
chore(slm-frontend): replace remaining 2 hardcoded /api/ with getSlmA…
mrveiss Apr 7, 2026
a524a96
fix(browser): replace hardcoded :3000 with NetworkConstants.BROWSER_S…
mrveiss Apr 7, 2026
6d10e2f
chore(frontend): adopt getApiBase() in JS utility files (#3726) (#3730)
mrveiss Apr 7, 2026
082e58d
fix(tests): evaluate get_test_backend_url() lazily in TakeoverTestCli…
mrveiss Apr 7, 2026
517b324
chore(frontend): adopt getApiBase() in remaining 7 SecretsApiClient.j…
mrveiss Apr 7, 2026
99d7b60
fix(tests): handle https→wss protocol upgrade in simple_terminal.e2e_…
mrveiss Apr 7, 2026
8874132
fix(frontend): clear auto-save interval on ChatController destroy
mrveiss Apr 7, 2026
5eb15be
fix(frontend): guard loadReview against undefined reviewId (#3755) (#…
mrveiss Apr 7, 2026
8140672
fix(config): replace hardcoded 172.16.168.* IPs with named placeholde…
mrveiss Apr 7, 2026
52cc3c8
fix(monitoring): replace hardcoded 172.16.168.25 with $browser_vm_ip …
mrveiss Apr 7, 2026
2dc74a1
fix(config): canonicalize browser host env var to AUTOBOT_BROWSER_SER…
mrveiss Apr 7, 2026
92bad16
fix(frontend): clear auto-save interval on ChatController destroy (#3…
mrveiss Apr 7, 2026
348372a
chore(frontend): adopt getApiBase() in ApiClientMonitor.js (#3752) (#…
mrveiss Apr 7, 2026
4cb110d
fix(chat-workflow): route system prompt via Ollama system field; rais…
mrveiss Apr 7, 2026
923b9a1
chore(frontend): adopt getApiBase() in AppConfig.js and ServiceDiscov…
mrveiss Apr 7, 2026
47ee8f3
fix(backend): allow any authenticated user to GET /review/{id} (#3754…
mrveiss Apr 7, 2026
22ad57f
fix(ansible): inject SLM secrets into standalone deploy extra_vars (#…
mrveiss Apr 7, 2026
e8f5c54
feat(frontend): add KB vectorization status badge, action button, bat…
mrveiss Apr 7, 2026
07aadeb
perf(autoresearch): replace HumanReviewScorer polling loop with BLPOP…
mrveiss Apr 7, 2026
e19a095
perf(backend): convert file I/O to aiofiles in chat_history_manager a…
mrveiss Apr 7, 2026
c0cb283
chore(frontend): add i18n keys for KB vectorization UI components (#3…
mrveiss Apr 7, 2026
71fca5b
fix(ansible): inject SLM secrets into standalone deploy extra_vars (#…
mrveiss Apr 7, 2026
e208b19
feat(memory): Redis-backed session-scoped working memory with TTL (#3…
mrveiss Apr 7, 2026
953fdce
feat(memory): context-adaptive memory compression for small-context m…
mrveiss Apr 7, 2026
355f734
fix(chat-workflow): remove system_prompt from _build_continuation_pro…
mrveiss Apr 7, 2026
b69ea81
chore(chat-workflow): remove orphaned system_prompt param from _build…
mrveiss Apr 7, 2026
41aa3f7
feat(agents): enforce memory read/write via pipeline lifecycle hooks …
mrveiss Apr 7, 2026
51bce6d
chore(ansible): move _SECRET_TO_ANSIBLE_VAR to shared location to avo…
mrveiss Apr 7, 2026
78d893d
chore(backend): expand hardcoding prevention for file paths and model…
mrveiss Apr 7, 2026
f2fc7c0
feat(ansible): add deploy-hybrid-docker.yml and docker Ansible role (…
mrveiss Apr 7, 2026
a1a15a5
feat(knowledge): semantic duplicate guard on individual fact writes (…
mrveiss Apr 7, 2026
27c160e
feat(agents): per-agent cross-session diary — persistent agent journa…
mrveiss Apr 7, 2026
c8d692e
feat(memory): temporal fact validity — valid_from/valid_to on memory …
mrveiss Apr 7, 2026
d904a50
feat(memory): essential story layer — always-loaded compact memory su…
mrveiss Apr 7, 2026
1928a7c
feat(knowledge): semantic duplicate guard on individual fact writes (…
mrveiss Apr 7, 2026
3411b96
feat(memory): essential story layer — always-loaded compact memory su…
mrveiss Apr 7, 2026
78572c1
feat(memory): temporal fact validity — valid_from/valid_to on memory …
mrveiss Apr 7, 2026
25e6e22
perf(backend): convert delete_session os.remove() to async (#3812)
mrveiss Apr 7, 2026
e1e1618
feat(memory): wire WorkingMemory/EssentialStory/AgentDiary into Unifi…
mrveiss Apr 7, 2026
b4ecea8
refactor(llm): consolidate llm_providers/ with llm_interface_pkg adap…
mrveiss Apr 7, 2026
2e8fbcb
chore(backend): delete legacy chat_history_manager.py monolith (#3838)
mrveiss Apr 7, 2026
550d51e
chore(backend): use config.path.docs_path in mcp_manual_integration (…
mrveiss Apr 7, 2026
e668b23
chore(autoresearch): deduplicate _NOTIFY_KEY format string (#3795) (#…
mrveiss Apr 7, 2026
3a5ae68
chore(ansible): move _SECRET_TO_ANSIBLE_VAR to shared location (#3778…
mrveiss Apr 7, 2026
3f03439
chore(backend): add TimeoutConfig to SSOT config (#3820)
mrveiss Apr 7, 2026
75bd2b1
refactor(backend): consolidate terminal API implementations, remove c…
mrveiss Apr 7, 2026
c32e6fa
arch(knowledge): replace Redis adjacency list with queryable property…
mrveiss Apr 7, 2026
72230dd
arch(orchestration): unified graph model for DAG executor and LangGra…
mrveiss Apr 7, 2026
1e18c32
feat(hardening): tasks 3-6 + perf(memory): fix O(n) get_all_facts sca…
mrveiss Apr 7, 2026
5c9277f
chore: post-merge polish — hoist diary fetch limit, document property…
mrveiss Apr 7, 2026
dc2e967
fix(config): add alias to AutoBotConfig.path to prevent PATH env var …
mrveiss Apr 7, 2026
addeedb
fix(orchestration): guard _save_checkpoint so failures never fail a s…
mrveiss Apr 7, 2026
451cfa5
feat(memory-graph): REST endpoints for invalidate_entity and invalida…
mrveiss Apr 7, 2026
55f8b89
bug(memory): validate compression_threshold <= context_window_tokens …
mrveiss Apr 7, 2026
bebd9d3
feat(hardening): Tool SDK Registry + ToolRegistry SDK dispatch + Perm…
mrveiss Apr 7, 2026
fc92077
feat(hardening): WebSocket auth, shared WorkflowMemory, register Perm…
mrveiss Apr 7, 2026
115f7bb
feat(llm): migrate chat completion calls to vLLM optimised API (#3389…
mrveiss Apr 7, 2026
9dec02c
bug(backend): fix ChatHistoryManager create_task race with explicit i…
mrveiss Apr 7, 2026
eb28999
feat(agent-loop): content-aware repetitive tool-call detection (#3255…
mrveiss Apr 7, 2026
f5c307d
feat(config): config management enhancements — startup validation and…
mrveiss Apr 7, 2026
930b0d9
fix(ansible): add notify+flush_handlers to backend role — restart wor…
mrveiss Apr 7, 2026
643d497
fix(chat): use ModelConfig.CHAT_NUM_CTX — was referencing wrong class…
mrveiss Apr 7, 2026
794853b
refactor(chat): tombstone legacy conversation.py, remove dead Convers…
mrveiss Apr 7, 2026
41a2447
fix(voice): wire VoiceInterface into app.state, guard endpoints with …
mrveiss Apr 7, 2026
d6c5d97
refactor(http): consolidate HTTP clients — TracedHttpClient wraps HTT…
mrveiss Apr 7, 2026
1556f56
feat(autoresearch): wire real scorers + benchmark, add agent registra…
mrveiss Apr 7, 2026
d0844db
refactor(knowledge): consolidate vector search under VectorSearchEngi…
mrveiss Apr 7, 2026
11a0f5f
fix(a2a): guard AUTOBOT_A2A_CARD_TTL int() cast against invalid env v…
mrveiss Apr 7, 2026
07286f2
fix(security): apply validate_path() to fix path-injection CodeQL ale…
mrveiss Apr 7, 2026
e58abe1
chore(config): refactor sync_config to ≤65 lines per function (#3863)…
mrveiss Apr 7, 2026
39b6e10
chore(backend): delete confirmed dead root-level modules (#3847) (#3887)
mrveiss Apr 7, 2026
84605ff
chore(types): rename 3 competing TaskComplexity enums to distinct nam…
mrveiss Apr 7, 2026
74a3223
refactor(backend): migrate singletons to AsyncInitializable lazy-init…
mrveiss Apr 7, 2026
791de55
feat(agents): stream chain-of-thought events to frontend in real time…
mrveiss Apr 7, 2026
5bd64a6
fix(knowledge): resolve async Redis client coroutine ping error (#387…
mrveiss Apr 7, 2026
5eba33f
fix(ansible): deploy permission_rules.yaml to infrastructure config p…
mrveiss Apr 7, 2026
9fc7b16
docs(specs): add language switcher design spec
mrveiss Apr 7, 2026
cf68507
docs(plans): add language switcher implementation plan
mrveiss Apr 7, 2026
d8669cf
fix(agent_loop): robust tool-call hash + repetition-halt guard (#3868…
mrveiss Apr 7, 2026
3d820c2
chore(autoresearch): rename test_issue_3208.py to benchmark_test.py (…
mrveiss Apr 7, 2026
acbfbfe
fix(config): use explicit None checks in startup validation (#3880) (…
mrveiss Apr 7, 2026
3628932
chore(backend): delete dead type_definitions/ package (#3839) (#3892)
mrveiss Apr 7, 2026
9f47007
fix(agent_loop): don't add halted tool to executed list; surface erro…
mrveiss Apr 7, 2026
3a76771
fix(llm): fix LLMSettings env parsing SettingsError that blocks test …
mrveiss Apr 7, 2026
16a1d5c
fix(config): settings sync allowlist, depth limit, async file ops + t…
mrveiss Apr 7, 2026
4fbc75c
fix(chat): ChatHistoryManager.initialize() — implement real async ini…
mrveiss Apr 7, 2026
7864c56
feat(backend): add hardware priority updates API endpoint (#3895)
mrveiss Apr 7, 2026
70c0b40
feat(frontend): add web research settings UI (#3896)
mrveiss Apr 7, 2026
a7ca0fb
chore(config): tombstone root-level config.py ConfigManager; migrate …
mrveiss Apr 7, 2026
d307448
feat(frontend): wire up step editor in AdvancedStepConfirmationModal …
mrveiss Apr 7, 2026
c902d0a
fix(llm): cache bypass, empty model_name, unknown session_id, silent …
mrveiss Apr 7, 2026
d1eee12
chore(mcp): delete dead mcp_manual_integration.py (#3849)
mrveiss Apr 7, 2026
ec1ead5
refactor(auth): extract JWT/bcrypt core into autobot_shared — elimina…
mrveiss Apr 7, 2026
498dcf3
refactor(frontend): route raw WebSocket() calls through useWebSocket …
mrveiss Apr 7, 2026
fff1dca
feat(i18n): language switcher — globe icon in nav with cross-device s…
mrveiss Apr 7, 2026
8f8b177
fix(agent_loop): add default phase_completed to IterationResult — Typ…
mrveiss Apr 7, 2026
3d207ed
chore(config): remove leftover Issue:#3803 comment from TimeoutConfig…
mrveiss Apr 7, 2026
f8642ec
chore(backend): migrate models/settings.py — 8 BaseSettings to pydant…
mrveiss Apr 7, 2026
d686ce6
feat(frontend): web research settings UI (#3850)
mrveiss Apr 7, 2026
e6f16e1
fix(test): add await manager.initialize() to 4 ChatHistoryManager sit…
mrveiss Apr 7, 2026
f22bce2
feat(dev): extend hardcoding prevention hook — DB DSNs + timeouts (#3…
mrveiss Apr 7, 2026
c3ced40
refactor(retry): standardize all retry/backoff on retry_mechanism.py …
mrveiss Apr 7, 2026
6121837
fix(security): address CodeQL clear-text-storage, logging, and inject…
mrveiss Apr 7, 2026
2c629d5
refactor(config): migrate 8 ConfigManager callers to ssot_config (#38…
mrveiss Apr 7, 2026
0d2d893
chore(config): delete tombstoned config.py — shadowed by config/ pack…
mrveiss Apr 7, 2026
ea95818
feat(backend): custom success criteria for workflow orchestrator (#3919)
mrveiss Apr 7, 2026
13cbff4
feat(backend): implement agent usage tracking (#3921)
mrveiss Apr 7, 2026
4d0a9e3
refactor(services): migrate 4 singletons to AsyncInitializable lazy-i…
mrveiss Apr 7, 2026
4af4e78
feat(frontend): add KB full-text search result viewer (#3296) (#3920)
mrveiss Apr 7, 2026
3b15587
fix(security): path traversal guard on terminal transcript writes (#3…
mrveiss Apr 7, 2026
511c939
fix(security): path traversal guard on terminal transcript writes (#3…
mrveiss Apr 7, 2026
1b6b1fc
chore(deps): bump the npm_and_yarn group across 4 directories with 2 …
dependabot[bot] Apr 8, 2026
189eb5a
fix(frontend): remove as-any cast and deduplicate KnowledgeRepository…
mrveiss Apr 8, 2026
3a5b028
fix(llm): use DEFAULT_LLM_MODEL in think_tool and rlm modules (#3948)
mrveiss Apr 8, 2026
348f616
fix(config): raise _SYNC_MAX_DEPTH to accommodate 6+ level payloads (…
mrveiss Apr 8, 2026
72bf526
fix(analytics): record correct vLLM model name in chat_completion_opt…
mrveiss Apr 8, 2026
8a94d3a
fix(hardening): expand hardcoding-prevention hook to detect single-qu…
mrveiss Apr 8, 2026
f0e52b2
fix(frontend): remove as-any cast and duplicate KnowledgeRepository i…
mrveiss Apr 8, 2026
a0657a0
Merge pull request #3954 from mrveiss/issue-3948
mrveiss Apr 8, 2026
33004f9
Merge pull request #3955 from mrveiss/issue-3946
mrveiss Apr 8, 2026
8c4af07
Merge pull request #3956 from mrveiss/issue-3943
mrveiss Apr 8, 2026
404eca1
Merge pull request #3953 from mrveiss/issue-3940
mrveiss Apr 8, 2026
250e486
Merge pull request #3957 from mrveiss/issue-3939
mrveiss Apr 8, 2026
3cef127
chore(agents): remove duplicate session_id assignment in sentiment_an…
mrveiss Apr 8, 2026
0555933
chore(autoresearch): refactor _register_autoresearch_hypothesis_targe…
mrveiss Apr 8, 2026
65b1e23
docs: document gh pr edit --body workaround for classic Projects issu…
mrveiss Apr 8, 2026
34ff947
fix(config): remove broken UnifiedConfig imports from code_analysis (…
mrveiss Apr 8, 2026
d99af3f
fix(llm): use DEFAULT_LLM_MODEL instead of ROUTING_MODEL in think_too…
mrveiss Apr 8, 2026
466304f
Merge branch origin/Dev_new_gui into fix/issue-3940
mrveiss Apr 8, 2026
c283192
Merge pull request #3958 from mrveiss/fix/issue-3940
mrveiss Apr 8, 2026
39c54cc
fix(deployment): add PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python to…
mrveiss Apr 8, 2026
1038825
fix(config): add depth limit to deep_merge on non-sync paths (#3931)
mrveiss Apr 8, 2026
1652611
Merge pull request #3961 from mrveiss/issue-3931
mrveiss Apr 8, 2026
f1cb60a
fix(config): add depth limit to deep_merge on non-sync paths (#3931)
mrveiss Apr 8, 2026
581b598
fix(security): add CodeQL suppression for well-hardened xdotool comma…
mrveiss Apr 8, 2026
862da79
Merge pull request #3965 from mrveiss/issue-3938
mrveiss Apr 8, 2026
1d33d13
chore(retry): remove tenacity from llm_pattern_analyzer_test.py (#3936)
mrveiss Apr 8, 2026
033e2cb
fix(redis): resolve coroutine handling in KB async Redis initializati…
mrveiss Apr 8, 2026
7114074
Merge pull request #3966 from mrveiss/fix/issue-3936
mrveiss Apr 8, 2026
c86c67e
Merge pull request #3964 from mrveiss/fix/issue-3931
mrveiss Apr 8, 2026
0697350
Merge branch 'issue-3939' into Dev_new_gui
mrveiss Apr 8, 2026
0b548ab
Merge branch 'Dev_new_gui' of https://github.com/mrveiss/AutoBot-AI i…
mrveiss Apr 8, 2026
16cbff1
fix(frontend): remove duplicate :repository prop in KBSearchResultPan…
mrveiss Apr 8, 2026
f2d7ad5
fix(hardening): enhance hook to catch single-quoted path literals (#3…
mrveiss Apr 8, 2026
4982e38
chore(deps): bump npm_and_yarn dependencies across 4 directories
mrveiss Apr 8, 2026
c1fb49f
chore(deps): bump the npm_and_yarn group across 4 directories with 2 …
dependabot[bot] Apr 8, 2026
81eac45
fix: remove non-existent LLMInterface.initialize() calls (#3974)
mrveiss Apr 8, 2026
552fcb6
fix: add missing scrollbars to file lists and upload progress
mrveiss Apr 8, 2026
ac7082e
merge: combine orchestrator and scroll fixes from temp-3949
mrveiss Apr 8, 2026
0781fbb
fix(sec): document vanna CVE monitoring (#3445)
mrveiss Apr 8, 2026
810c7fd
fix(frontend): remove duplicate KnowledgeRepository instance from Kno…
mrveiss Apr 8, 2026
c430d07
chore(redis): clarify async client initialization pattern in document…
mrveiss Apr 8, 2026
c204d57
fix(deps): relax protobuf constraint to <7.0.0 for opentelemetry comp…
mrveiss Apr 8, 2026
6142018
fix(deps): resolve protobuf version incompatibility with chromadb (#3…
mrveiss Apr 8, 2026
23b3e9b
docs(security): monitor unpatched diskcache CVE with 90-day escalatio…
mrveiss Apr 8, 2026
5ee47cb
fix(kb): add ChromaDB service monitoring to health checks and API (#3…
mrveiss Apr 8, 2026
bf088bd
Merge pull request #3976 from mrveiss/issue-3445
mrveiss Apr 8, 2026
f52ccb6
Merge pull request #3977 from mrveiss/issue-3969
mrveiss Apr 8, 2026
6a0f778
Merge pull request #3979 from mrveiss/fix/issue-3971-new
mrveiss Apr 8, 2026
cb7165e
Merge pull request #3980 from mrveiss/issue-3446
mrveiss Apr 8, 2026
658df6f
Merge pull request #3983 from mrveiss/issue-3461
mrveiss Apr 8, 2026
d2caaba
fix: fetch user/group names from API in ShareKnowledgeDialog (#3984)
mrveiss Apr 8, 2026
cfdcb7c
refactor(config): migrate 27 ConfigManager() callers to get_config_ma…
mrveiss Apr 8, 2026
722c8e2
refactor(backend): consolidate orchestrator files (#3393) (#3982)
mrveiss Apr 8, 2026
a11363e
refactor(agents): migrate 3 agents to StandardizedAgent base class (#…
mrveiss Apr 8, 2026
b44c592
fix(frontend): fetch users from API in InviteUserDialog (#3985) (#3992)
mrveiss Apr 8, 2026
1b16061
fix: fetch real participant roles from session API in ParticipantList…
mrveiss Apr 8, 2026
4ed2a0b
fix: fetch real secrets from backend API in SecretVault (#3987) (#3995)
mrveiss Apr 8, 2026
0facbc0
fix: fetch real audit logs from backend API in SecretAuditLog (#3988)…
mrveiss Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
76 changes: 38 additions & 38 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -49,30 +49,30 @@ AUTOBOT_LOG_LEVEL=INFO
# For distributed deployment, use actual VM IPs.
#
# Default VM Layout:
# Main (WSL) - 172.16.168.20 - Backend API + VNC Desktop
# VM1 Frontend - 172.16.168.21 - Web interface
# VM2 NPU Worker - 172.16.168.22 - Hardware AI acceleration
# VM3 Redis - 172.16.168.23 - Data layer
# VM4 AI Stack - 172.16.168.24 - AI processing
# VM5 Browser - 172.16.168.25 - Web automation (Playwright)
# Main (WSL) - YOUR_BACKEND_IP - Backend API + VNC Desktop
# VM1 Frontend - YOUR_FRONTEND_IP - Web interface
# VM2 NPU Worker - YOUR_NPU_WORKER_IP - Hardware AI acceleration
# VM3 Redis - YOUR_REDIS_IP - Data layer
# VM4 AI Stack - YOUR_AI_STACK_IP - AI processing
# VM5 Browser - YOUR_BROWSER_VM_IP - Web automation (Playwright)

# Main Machine (WSL) - Backend API + VNC Desktop
AUTOBOT_BACKEND_HOST=172.16.168.20
AUTOBOT_BACKEND_HOST=YOUR_BACKEND_IP

# VM1 Frontend - Web interface (SINGLE FRONTEND SERVER)
AUTOBOT_FRONTEND_HOST=172.16.168.21
AUTOBOT_FRONTEND_HOST=YOUR_FRONTEND_IP

# VM2 NPU Worker - Hardware AI acceleration
AUTOBOT_NPU_WORKER_HOST=172.16.168.22
AUTOBOT_NPU_WORKER_HOST=YOUR_NPU_WORKER_IP

# VM3 Redis - Data layer
AUTOBOT_REDIS_HOST=172.16.168.23
AUTOBOT_REDIS_HOST=YOUR_REDIS_IP

# VM4 AI Stack - AI processing (Ollama, etc.)
AUTOBOT_AI_STACK_HOST=172.16.168.24
AUTOBOT_AI_STACK_HOST=YOUR_AI_STACK_IP

# VM5 Browser - Web automation (Playwright)
AUTOBOT_BROWSER_SERVICE_HOST=172.16.168.25
AUTOBOT_BROWSER_SERVICE_HOST=YOUR_BROWSER_VM_IP

# Ollama host (typically localhost or AI Stack VM)
AUTOBOT_OLLAMA_HOST=127.0.0.1
Expand Down Expand Up @@ -119,14 +119,14 @@ AUTOBOT_GRAFANA_PORT=3000
# =============================================================================
# These are computed by the SSOT loaders, but can be overridden if needed.

AUTOBOT_BACKEND_URL=http://172.16.168.20:8001
AUTOBOT_FRONTEND_URL=http://172.16.168.21:5173
AUTOBOT_REDIS_URL=redis://172.16.168.23:6379
AUTOBOT_BACKEND_URL=http://YOUR_BACKEND_IP:8001
AUTOBOT_FRONTEND_URL=http://YOUR_FRONTEND_IP:5173
AUTOBOT_REDIS_URL=redis://YOUR_REDIS_IP:6379
AUTOBOT_OLLAMA_URL=http://127.0.0.1:11434
AUTOBOT_AI_STACK_URL=http://172.16.168.24:8080
AUTOBOT_NPU_WORKER_URL=http://172.16.168.22:8081
AUTOBOT_BROWSER_SERVICE_URL=http://172.16.168.25:3000
AUTOBOT_WS_URL=ws://172.16.168.20:8001/ws
AUTOBOT_AI_STACK_URL=http://YOUR_AI_STACK_IP:8080
AUTOBOT_NPU_WORKER_URL=http://YOUR_NPU_WORKER_IP:8081
AUTOBOT_BROWSER_SERVICE_URL=http://YOUR_BROWSER_VM_IP:3000
AUTOBOT_WS_URL=ws://YOUR_BACKEND_IP:8001/ws


# =============================================================================
Expand Down Expand Up @@ -294,7 +294,7 @@ AUTOBOT_REDIS_TLS_DISABLE_PLAIN=false
AUTOBOT_TLS_SOURCE=local

# SLM API for certificate management (when AUTOBOT_TLS_SOURCE=slm-api)
# SLM_API_URL=http://172.16.168.19:8000
# SLM_API_URL=http://YOUR_SLM_IP:8000
# SLM_API_TOKEN=<your-auth-token>
# REDIS_TLS_CREDENTIAL_ID=<credential-id-from-slm>

Expand Down Expand Up @@ -361,30 +361,30 @@ CONTEXT_MAX_TOKENS=150
#
# Run: ./scripts/sync-env.sh to regenerate autobot-vue/.env

VITE_BACKEND_HOST=172.16.168.20
VITE_BACKEND_HOST=YOUR_BACKEND_IP
VITE_BACKEND_PORT=8001
VITE_FRONTEND_HOST=172.16.168.21
VITE_FRONTEND_HOST=YOUR_FRONTEND_IP
VITE_FRONTEND_PORT=5173
VITE_REDIS_HOST=172.16.168.23
VITE_REDIS_HOST=YOUR_REDIS_IP
VITE_REDIS_PORT=6379
VITE_OLLAMA_HOST=127.0.0.1
VITE_OLLAMA_PORT=11434
VITE_AI_STACK_HOST=172.16.168.24
VITE_AI_STACK_HOST=YOUR_AI_STACK_IP
VITE_AI_STACK_PORT=8080
VITE_NPU_WORKER_HOST=172.16.168.22
VITE_NPU_WORKER_HOST=YOUR_NPU_WORKER_IP
VITE_NPU_WORKER_PORT=8081
VITE_BROWSER_HOST=172.16.168.25
VITE_BROWSER_HOST=YOUR_BROWSER_VM_IP
VITE_BROWSER_PORT=3000
VITE_HTTP_PROTOCOL=http

# VNC Configuration
VITE_DESKTOP_VNC_HOST=172.16.168.20
VITE_DESKTOP_VNC_HOST=YOUR_BACKEND_IP
VITE_DESKTOP_VNC_PORT=6080
VITE_DESKTOP_VNC_PASSWORD=autobot
VITE_TERMINAL_VNC_HOST=172.16.168.20
VITE_TERMINAL_VNC_HOST=YOUR_BACKEND_IP
VITE_TERMINAL_VNC_PORT=6080
VITE_TERMINAL_VNC_PASSWORD=autobot
VITE_PLAYWRIGHT_VNC_HOST=172.16.168.25
VITE_PLAYWRIGHT_VNC_HOST=YOUR_BROWSER_VM_IP
VITE_PLAYWRIGHT_VNC_PORT=6081
VITE_PLAYWRIGHT_VNC_PASSWORD=playwright

Expand All @@ -398,12 +398,12 @@ VITE_ENABLE_RUM=true
VITE_DISABLE_CACHE=false

# VM Infrastructure IPs (for multi-host deployments)
VITE_VM0_IP=172.16.168.20
VITE_VM1_IP=172.16.168.21
VITE_VM2_IP=172.16.168.22
VITE_VM3_IP=172.16.168.23
VITE_VM4_IP=172.16.168.24
VITE_VM5_IP=172.16.168.25
VITE_VM0_IP=YOUR_BACKEND_IP
VITE_VM1_IP=YOUR_FRONTEND_IP
VITE_VM2_IP=YOUR_NPU_WORKER_IP
VITE_VM3_IP=YOUR_REDIS_IP
VITE_VM4_IP=YOUR_AI_STACK_IP
VITE_VM5_IP=YOUR_BROWSER_VM_IP


# =============================================================================
Expand All @@ -412,7 +412,7 @@ VITE_VM5_IP=172.16.168.25
# These are provided for backward compatibility with older code.
# New code should use AUTOBOT_* variables via the SSOT config loaders.

REDIS_HOST=172.16.168.23
REDIS_HOST=YOUR_REDIS_IP
REDIS_PORT=6379
OLLAMA_HOST=127.0.0.1
OLLAMA_PORT=11434
Expand All @@ -432,7 +432,7 @@ OLLAMA_PORT=11434
# AUTOBOT_USER_MODE=single_user
#
# PostgreSQL Configuration (required for non-single_user modes)
# AUTOBOT_POSTGRES_HOST=172.16.168.23
# AUTOBOT_POSTGRES_HOST=YOUR_REDIS_IP
# AUTOBOT_POSTGRES_PORT=5432
# AUTOBOT_POSTGRES_DB=autobot
# AUTOBOT_POSTGRES_USER=autobot
Expand All @@ -446,7 +446,7 @@ OLLAMA_PORT=11434
# Traces are exported to Jaeger running on the Redis VM.

# Jaeger OTLP endpoint (default: Redis VM port 4317)
AUTOBOT_JAEGER_ENDPOINT=http://172.16.168.23:4317
AUTOBOT_JAEGER_ENDPOINT=http://YOUR_REDIS_IP:4317

# Trace sampling rate (0.0-1.0)
# 1.0 = trace everything (development)
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/autoresearch-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ jobs:
packages: write

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Log in to GHCR
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v7
with:
context: autobot-backend/services/autoresearch
file: autobot-backend/services/autoresearch/Dockerfile
Expand Down
21 changes: 15 additions & 6 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,19 +52,19 @@ jobs:
- name: Check code formatting with Black
run: |
source .venv/bin/activate
python3 -m black --check --line-length=88 autobot-backend/ autobot-slm-backend/ autobot_shared/ || {
echo "⚠️ Black formatting check failed"
echo "Run 'python3 -m black --line-length=88 autobot-backend/ autobot-slm-backend/ autobot_shared/' to fix"
python3 -m black --check --line-length=120 autobot-backend/ autobot-slm-backend/ autobot_shared/ || {
echo "Black formatting check failed"
echo "Run 'python3 -m black --line-length=120 autobot-backend/ autobot-slm-backend/ autobot_shared/' to fix"
exit 1
}

- name: Check import sorting with isort
run: |
source .venv/bin/activate
# Use --settings-path to read pyproject.toml (profile, src_paths, known_first_party) (#2679)
python3 -m isort --check --settings-path=. autobot-backend/ autobot-slm-backend/ autobot_shared/ || {
echo "⚠️ isort check failed"
echo "Run 'python3 -m isort autobot-backend/ autobot-slm-backend/ autobot_shared/' to fix"
python3 -m isort --check-only --settings-path=. --line-length=120 autobot-backend/ autobot-slm-backend/ autobot_shared/ || {
echo "isort check failed"
echo "Run 'python3 -m isort --settings-path=. --line-length=120 autobot-backend/ autobot-slm-backend/ autobot_shared/' to fix"
exit 1
}

Expand Down Expand Up @@ -106,6 +106,15 @@ jobs:
exit 1
}


- name: Check developer docs reference existing files (#3425)
run: |
python3 pipeline-scripts/check-doc-references.py || {
echo "One or more developer docs reference files that no longer exist."
echo "Update the doc to point to the current file path."
exit 1
}

- name: Code quality summary
if: always()
run: |
Expand Down
12 changes: 6 additions & 6 deletions .mcp/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ repos:
rev: 26.3.1
hooks:
- id: black
args: [--line-length=88]
args: [--line-length=120]
language_version: python3
exclude: ^autobot-infrastructure/

Expand All @@ -30,7 +30,7 @@ repos:
rev: 8.0.1
hooks:
- id: isort
args: [--profile=black, --line-length=88]
args: [--profile=black, --line-length=120]
exclude: ^autobot-infrastructure/

# Python linting with flake8
Expand Down Expand Up @@ -120,7 +120,7 @@ repos:
types: [python, ts, vue]
pass_filenames: false
stages: [pre-commit]
description: "Blocks commits with hardcoded IPs, ports, magic numbers, and role strings"
description: "Blocks commits with hardcoded IPs, ports, magic numbers, role strings, AutoBot file paths, and model name literals (#3397)"

# Function length enforcement (Issue #620)
- repo: local
Expand Down
16 changes: 16 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@

---

## Engineering Standard

You are the world's best AI developer working on AutoBot. Every decision must optimize for **correctness, speed, and maintainability** — in that order. No wasted motion. No speculative work. No half-measures.

**Efficiency rules:**

- **Parallelize everything possible** — run independent tool calls, file reads, and agent tasks concurrently
- **Minimal surface area** — write the least code that fully solves the problem; every extra line is future maintenance debt
- **Async-first** — all I/O must be non-blocking; never add sync calls to async paths
- **Algorithm awareness** — O(n²) loops on large datasets, N+1 Redis calls, and blocking waits are bugs, not style issues
- **Lean commits** — one logical change per commit, no dead code, no commented-out experiments

**Decision speed:** Form a hypothesis in ≤3 exploration commands, then act. If stuck after 3 attempts, escalate to user with findings — don't loop.

---

## Quick Reference

**Every task must:** link to GitHub issue, search Memory MCP first, break into subtasks, use code-reviewer agent, update issue throughout, verify before closing.
Expand Down
Loading
Loading