Владелец задачи: golnet, Moscow - Russia
Текущий статус:
Поддержка
Страница дополнения
Модуль интеграции opencode.ai с Majordomo. Добавляет AI-ассистента с поддержкой любых LLM-провайдеров (Ollama, OpenAI и др.), управление устройствами через MCP, выполнение bash-команд и работу с файлами прямо из админки и пользовательского интерфейса.
Настройка показа времени сообщений и секунды в чате
Настройка показа времени сообщений и секунды в чате
Revert "Fix form answer matching: ordinal words, sentiment-aware fall…
Revert "Fix form answer matching: ordinal words, sentiment-aware fallback (prefer allow for affirmative/any; deny for negative), use first option by default"
This reverts commit 3a5284eff681a77338f3f7e2c03a5b3398316e27.
https://github.com/golnet1/majordomo-opencode/comm...
Fix form answer matching: ordinal words, sentiment-aware fallback (pr…
Fix form answer matching: ordinal words, sentiment-aware fallback (prefer allow for affirmative/any; deny for negative), use first option by default
https://github.com/golnet1/majordomo-opencode/comm...
Bound REST timeouts and prevent poll pile-up in Apache workers
Bound REST timeouts and prevent poll pile-up in Apache workers
https://github.com/golnet1/majordomo-opencode/comm...
opencode: поднимать MCP-серверы перед запросом к ассистенту
opencode: поднимать MCP-серверы перед запросом к ассистенту
В OpenCode 2 инструменты MCP попадают к модели через динамический
«Code Mode»-каталог. Когда MCP-сервер не в статусе connected, его
инструменты исчезают из каталога, и ассистент отвечает, что управление
умным домом недоступно (в наборе остаются только музыка и служебные
функции) — это и есть «отвалы MCP».
MCP-соединение периодически отваливается: stdio-процесс завершился,
opencode закрыл простаивающее соединение, сервис перечитал конфиг и
перезапустился.
ensureMcpConnected() перед каждым запросом проверяет статусы через
/api/mcp и через /api/experimental/mcp/{server}/connect поднимает
отключённые серверы, дожидаясь статуса connected. Если всё в порядке —
почти бесплатная проверка (один GET /api/mcp).
https://github.com/golnet1/majordomo-opencode/comm...
opencode: не показывать ошибку, если обновлять было нечего
opencode: не показывать ошибку, если обновлять было нечего
Кнопка «Обновить OpenCode» при уже установленной последней версии
запускала opencode upgrade, он завершался быстро без смены версии, и
модуль показывал красное «Не удалось обновить OpenCode: версия не
изменилась», хотя всё было в порядке.
Fix MCP status display: unwrap the v2 /mcp response envelope
Fix MCP status display: unwrap the v2 /mcp response envelope
The v2 API answers GET /mcp with a wrapper object:
{"location": {...}, "data": [{"name": ..., "status": {"status": "connected"}}]}.
The status poll passed that wrapper straight to the template, whose JS
iterated Object.keys() and rendered "location" and "data" as MCP servers
with a red (unknown) indicator.
Speed up module pages: avoid heavy Python import on every request
Speed up module pages: avoid heavy Python import on every request
Opening the module admin page (and the 5-second status poll) ran 'python3 -c import mcp' on every request. The mcp package pulls in pydantic/httpx/anyio and takes ~4s to import, on top of ~0.5s to spawn the opencode binary for the version check, so pages took 4-5s.
Measured on dacha: check_status 4.2s -> 0.07s.
https://github.com/golnet1/majordomo-opencode/comm...
Fix: remember 'Require authorization' checkbox state on admin page
Fix: remember 'Require authorization' checkbox state on admin page
https://github.com/golnet1/majordomo-opencode/comm...
Support OpenCode v2 alongside v1
Support OpenCode v2 alongside v1
Detect v2 by 'opencode --version'; use the 'serve' subcommand, the /api prefix and password auth for v2, keep 'web' for v1.
Unwrap the {data: ...} response envelope for v2 (session create, message list, model list); v1 paths unchanged.
v2 flow: create session with model+agent, POST /session/{id}/prompt, POST /experimental/session/{id}/wait, then read the newest assistant message (?type=assistant&order=desc).
v2 system prompt is delivered via agents.<agent>.system in opencode.jsonc (the v2 prompt endpoint has no system field): regenerate the config and restart the service on save.
Send the system prompt with each message and forbid reasoning in replies
Send the system prompt with each message and forbid reasoning in replies
OpenCode ignores 'system' on session creation, so the module's system prompt was never applied. It is now sent with every message (POST /session/:id/message). Added a LANG_OPENCODE_NO_REASONING instruction so the model keeps its chain of thought out of the reply.
https://github.com/golnet1/majordomo-opencode/comm...
Merge config updates instead of rewriting the whole row
Merge config updates instead of rewriting the whole row
saveConfig() serializes the entire in-memory array back over the row, using
whatever getConfig() read at the start of the request. Callers that hold that
snapshot for a while then discard edits made in between, which is why the MCP
server list kept reverting:
updateConfig() re-reads the row and merges only the keys it was given, with
null removing one. All eleven call sites outside the settings form now use it;
the form keeps saveConfig(), since there writing every posted field is the
point.
Verified with two processes: a worker holding a stale snapshot and an admin
save. The admin's value survives and the worker's key is still written.
https://github.com/golnet1/majordomo-opencode/comm...
feat: remote MCP через mcp-proxy + type: remote
feat: remote MCP через mcp-proxy + type: remote
Add Parameters section with memory limit UI in server tab
Add Parameters section with memory limit UI in server tab
Add Parameters section with memory limit UI in server tab
Add Parameters section with memory limit UI in server tab
fix: add MemoryMax/MemoryHigh limits to opencode-web systemd service
fix: add MemoryMax/MemoryHigh limits to opencode-web systemd service
https://github.com/golnet1/majordomo-opencode/comm...
fix: only add default MCP server if OC_MCP_SERVERS key missing from c…
fix: only add default MCP server if OC_MCP_SERVERS key missing from config
https://github.com/golnet1/majordomo-opencode/comm...
fix: check OC_MCP_SERVERS in config instead of file existence
fix: check OC_MCP_SERVERS in config instead of file existence
https://github.com/golnet1/majordomo-opencode/comm...
fix: load config before saveConfig in install() to prevent settings wipe
fix: load config before saveConfig in install() to prevent settings wipe
https://github.com/golnet1/majordomo-opencode/comm...
fix: tab value override in run() prevents saving settings on first visit
fix: tab value override in run() prevents saving settings on first visit
https://github.com/golnet1/majordomo-opencode/comm...
feat: add default music MCP server example on first install only
feat: add default music MCP server example on first install only
https://github.com/golnet1/majordomo-opencode/comm...
Вы можете помочь в развитии проекта, сообщив об ошибках, поделившись своими идеями или проголосовав за уже добавленные. В случае добавления ошибок, обязательно указывайте детали окружения (ОС, версия ПО и т.п.), сообщения об ошибках без деталей будут игнорироваться.
| Дополнение DashBoard Pro |
| Дополнение Piper TTS |
| Модуль MCP XiaoZhi AI |
| Дополнение PHP Manager |
| Дополнение Котел Stout Plus |