Skip to content

Releases: startvibecoding/mothx

v1.1.71

Choose a tag to compare

@github-actions github-actions released this 21 Jul 04:08

Full Changelog: v1.1.70...v1.1.71

v1.1.70

Choose a tag to compare

@github-actions github-actions released this 19 Jul 18:30

Full Changelog: v1.1.69...v1.1.70

v1.1.69

Choose a tag to compare

@github-actions github-actions released this 18 Jul 17:41

Full Changelog: v1.1.68...v1.1.69

v1.1.68

Choose a tag to compare

@github-actions github-actions released this 16 Jul 17:49

Full Changelog: v1.1.67...v1.1.68

v1.1.67

Choose a tag to compare

@github-actions github-actions released this 15 Jul 09:31

Full Changelog: v1.1.66...v1.1.67

v1.1.66

Choose a tag to compare

@github-actions github-actions released this 15 Jul 01:07

Full Changelog: v1.1.65...v1.1.66

v1.1.65

Choose a tag to compare

@github-actions github-actions released this 12 Jul 01:16

Full Changelog: v1.1.63...v1.1.65

v1.1.65-pre

v1.1.65-pre Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jul 00:56

Full Changelog: v1.1.61...v1.1.65-pre

v1.1.61

Choose a tag to compare

@zhenruyan zhenruyan released this 09 Jul 03:37

Changelog

v1.1.61

✨ Features

  • Per-Session Tool Capabilities

    • Added x_tools extension to /v1/chat/completions for enabling webSearch, browser, a2aMaster, delegate, and multiAgent per session.
    • Added GET /api/capabilities and GET/PATCH /api/sessions/{id}/capabilities APIs for querying and updating session tool toggles.
    • Added session_capabilities persistence table (migration 007) in sessions.db.
    • Added CLI flags --web-search, --browser, --enable-a2a-master for serve mode.
    • Added webSearch, browser, a2aMaster fields to serve.json config.
    • Web UI session tool toggles in composer bar with PATCH to capabilities API.
    • Per-session settings injection for webSearch via settingsForSession.
    • Added x_session_id + x_working_dir cwd conflict detection (HTTP 409).
    • Added /api/sessions?scope=all|active and /api/sessions/active endpoints.
    • /mode and /delegate commands now persist capability changes per session.
  • Session Streaming & Stats Dashboard

    • Added SSE-based session streaming for real-time chat updates (session_stream.go).
    • Added sequenced message/event replay for cursor-based streaming.
    • Added /api/stats/ endpoints (summary, timeseries, by-provider, by-model, recent).
    • Track session running state and publish run/capability events to stream.
    • Added cache read/write tokens to usage tracking.
    • Web UI: SSE streaming in Chat view, Stats dashboard view, Channels/Logs settings.
    • Added WorkingDirDefaultWorkDir rename in serve config.
    • Added legacy config dir normalization for session/skills dirs.
  • Run & Capability Event Tracking

    • Added session_run_events and session_capability_events tables (migration 008).
    • Record run lifecycle events (started/finished/failed/canceled) for every chat completion.
    • Record capability change events for /mode, /delegate, x_tools, and PATCH API.
    • New endpoints: GET /api/sessions/{id}/run-events, GET /api/sessions/{id}/capability-events.
    • Web UI displays recent run and capability events.
    • Added make serve Makefile target.
  • Transcript SSE Events for Streaming

    • Added x_transcript field to ChatCompletionRequest for enabling transcript-mode streaming.
    • When enabled, streaming handler emits event: transcript frames (assistant_delta and message types) instead of legacy tool_status events.
    • Web UI sends x_transcript:true and routes transcript events through shared upsertTranscriptMessage path.
    • Refactored streaming handler to branch on transcript flag with helper functions for building transcript toolCall/toolResult entries.
  • Embedded Web UI Assets

    • Web UI assets are now embedded in the binary via go:embed, no longer requiring dist files on disk.
    • Added ui package with DistFS() and fs.FS abstraction for both embedded and override paths.
    • --web-ui-dir flag still supported for overriding embedded assets.
  • External Bind Address via --port

    • --port now accepts full addresses (e.g. 0.0.0.0:8080).
    • Removed displayListenAddr rewrite that overrode 0.0.0.0 to 127.0.0.1.
  • Web UI Keyboard Shortcuts & Pagination

    • Sidebar: Cmd/Ctrl+K to focus search, Shift+Cmd/Ctrl+K for new chat.
    • Platform-aware shortcut labels (macOS vs other), Escape clears search.
    • Sessions view: paginated list (25 per page) with page navigation controls.
  • WeChat QR Login API & Channels Settings UI

    • Added WeChat QR login API endpoints (login status, QR proxy, base64 mode).
    • Added wechatLoginSession for managing QR scan flow state.
    • Rewrote Channels.svelte with full WeChat QR login flow (polling, display, error handling).
    • Added Feishu config form (appId/appSecret/workspace/allowedUsers) and WebSocket channel toggle.
    • Added ProviderSettings.svelte wrapper and comprehensive i18n strings for channel settings.
    • Dispatcher nil-checks before starting platforms.
  • Sub-Agent Detach & Rule Guard Fix

    • Added DetachChild() to AgentManager to remove child from parent's active list while retaining the child agent for later inspection.
    • Added HasRunning() to AgentManager to check if any agent is actively executing.
    • Changed DelegateSubAgentTool to use DetachChild instead of Destroy so completed delegated children remain inspectable via handle.
    • Delegate result now returns handle for tracking delegated child agents.
    • Fixed /rule command guard to use HasRunning() instead of Count() > 0 so rule changes are allowed when only completed retained agents exist.
  • Cron Store Migration to SQLite

    • Replaced FileCronStore (cron.json) with SQLiteCronStore (sessions.db) for reliable, transactional cron job persistence.
    • Added SessionScopedStore to bind cron jobs to sessions with per-session isolation and automatic workDir inheritance.
    • Added --cron CLI flag as independent option (separate from --multi-agent).
    • Cron now enabled by default in serve mode without requiring multi-agent.
    • Scheduler attaches scheduled local runs to existing sessions when SessionID is set.
    • Added cron_jobs table migration in sessions.go.
    • Cron tool supports findJob by name (with ambiguity detection) for enable, disable, delete, and run actions.
    • Dispatcher lazily initializes AgentManager for cron-only sessions.
  • Serve Settings Hot-Reload & Workflows Toggle

    • Added Server.ApplySettings() to hot-reload provider/model after settings save.
    • Added workflows session tool option and feature flag in serve.
    • Added nearestExistingBrowseDir fallback when default work dir is missing.
    • Refactored truncation to util.TruncateWithSuffix (UTF-8 safe).
  • System Prompt Rename to MothX

    • Renamed system prompt identity from VibeCoding to MothX.

🔧 Improvements

  • Web UI Settings Expansion

    • Added ListEditor reusable component for editing string lists in settings.
    • Expanded AppSettings with full form-based editor for defaults, web search, context files, compaction, sandbox, retry, approval, and provider config.
    • Expanded ServeConfig with full form-based editor for features, API, cron, memory, security, agent, hooks, channels, and lobster mode settings.
    • Web UI: sessions table fixed columns with ellipsis layout.
    • Web UI: skill_ref and workflow_lint tool call/result display.
    • Web UI: simplified WeChat QR to open-in-new-tab instead of embed.
    • Web UI: resetSelectedModelToDefault on session switch and settings save.
    • Web UI: workdir settings refresh after save, cleaner restrict logic.
    • i18n: added zh/en strings for workflow and skill_ref tools.
  • Web UI Internationalization & Theme Support

    • Added a complete i18n system for the Web UI with Chinese/English language switching.
    • Added a preference controls panel (PreferenceControls) for adjusting language and theme.
    • Replaced all hardcoded strings across views and components with translation keys.
    • Added a CSS variable-driven theme system supporting Dark/Light theme switching.
  • Web UI Tool Calls & Plan Card Rendering

    • The Web UI chat interface now renders tool calls, tool results, and plan cards.
    • Tool calls are displayed as running/completed status chips; tool results are collapsible (summary shows first line, click to fetch full output on demand).
    • Plan tool invocations render as a live-updating todo checklist.
    • Backend added /api/sessions/:id/tool-results/:callId endpoint for lazy-loading full tool output.
    • ListActiveSessions now also returns historical sessions so the Sessions page shows all persisted conversations.
  • Richer Tool Status Streaming in Serve Mode

    • SSE streaming events now carry richer tool status information, enabling the frontend to display real-time tool execution progress.
    • Tool status events include tool name, arguments, and execution results.
  • Debug Mode pprof Server

    • Added --debug flag to start a local pprof profiling server across all entry points (CLI, TUI, Serve, ACP, A2A).
  • Speedtest Command

    • Added vibecoding speedtest CLI subcommand for testing model response speed.
  • New StepFun Vendor Support

    • Added stepfun vendor with Base URL https://api.stepfun.com/step_plan/v1 using OpenAI-compatible protocol.
    • Added step-3.7-flash model with 256K context window and multimodal (text + image) input support.
  • Multimodal Image Input

    • Serve mode now supports multimodal (image) input; images can be uploaded via API for conversations.
    • Improved session persistence to correctly store multimodal messages.
  • Serve init-config Subcommand

    • Added mothx serve init-config subcommand for initializing global and project-level serve.json configuration.
  • TUI Input Queue On-Demand Start

    • Input queue ticker now starts on demand and stops when idle, reducing unnecessary CPU usage.
  • TUI Backspace/Delete to Remove Auth Models

    • Added Backspace/Delete shortcut in the auth dialog model list to delete a selected model entry.
    • Action rows like + Add Model and Done are excluded from deletion.
  • Split-Paste Coalescing Configurable

    • Split-paste event coalescing is now configurable via test parameters, facilitating unit test verification.

🔒 Security

  • Browse API Restriction

    • Browse API is now restricted to allowedWorkDirs whitelist directories, rejecting out-of-bounds access.
    • Auth requests without tokens are now rejected to prevent unauthorized access.
  • Code Scanning Fix

    • Fixed a potentially unsafe quoting issue (Code Scanning Alert #3).

🔄 Refactors

  • Merged Gateway & Hermes into Unified Serve Mode
    • Removed internal/gateway and internal/hermes packages, merged into the unified internal/serve/ arch...
Read more

v1.1.60

Choose a tag to compare

@zhenruyan zhenruyan released this 07 Jul 10:27

Changelog

v1.1.60

✨ Features

  • Unified Serve Mode with Web UI

    • Added mothx serve CLI command to start a unified server exposing OpenAI-compatible APIs, a Web UI management panel, and messaging channels (WeChat/Feishu) simultaneously.
    • Added internal/serve/ package to unify Gateway, Hermes channel, and Web UI configuration and runtime management.
    • Configuration via serve.json (global ~/.mothx/serve.json, project .mothx/serve.json), supporting Gateway, channels, Web UI, Cron, Memory, Security, Hooks, and Agent settings.
    • Built-in Svelte Web UI panel with Dark theme, health check, channel status, config editor, settings editor, and chat interface with SSE streaming.
    • Web UI now includes full management APIs: /api/status, /api/sessions, /api/cron, /api/memory, and /ws/logs for real-time log streaming.
    • WebSocket gateway mounted at /ws, reusing Hermes event protocol for real-time communication.
    • Cron API supports CRUD operations with scheduler integration.
    • Gateway SessionPool now has List/Delete management interfaces.
    • Added --web-ui-dir CLI flag to override the Web UI static assets directory.
    • Added Lobster mode (--lobster) that auto-enables yolo mode, disables sandbox, and turns on sub-agents.
    • Gateway now supports an ExtraRoutes hook for Serve mode to inject custom API routes (/api/serve/config, /api/settings, /api/channels).
  • New Vendor Support

    • Added Huawei Cloud vendor (huawei, huawei-plan) with 13 models total, including standard and Plan reasoning modes.
    • Added Moore Threads vendor (mthreads-plan) with GLM-4.7 model (1M context).
    • Added Tianyi Cloud vendor (ctyun-plan) with 3 models including GLM-5-Turbo.
    • Added JD Cloud vendor (jd-plan) with 10 models including JoyAI-LLM-Flash.
    • Added Kimi-K2.5 and MiMo-V2.5-Pro to Gitee/Moark providers; fixed JD Plan config with missing models.

🐛 Bug Fixes

  • TUI Split Paste Event Coalescing

    • Some terminals split pasted text into separate key events. Added idle detection to wait for a quiet period before flushing the input queue.
    • Split paste events are now coalesced into a single paste when Enter appears within the stream followed by more text.
    • Extracted handleInputSubmit() for cleaner Enter key handling.
  • Legacy VIBECODING_DIR Handling

    • ConfigDir() now falls back to the default .mothx/ path when VIBECODING_DIR is set to the legacy default ~/.vibecoding, avoiding an unintended override of the new config directory.
    • ConfigDirOverridden() no longer reports a custom override when VIBECODING_DIR equals the default legacy path.
    • The stats CLI now reads sessionDir from config.LoadSettings() instead of calling platform.SessionDir() directly, ensuring it respects the configured session directory.

🧪 Tests

  • Added TestConfigDirIgnoresLegacyDefaultEnvDir and TestConfigDirHonorsCustomLegacyEnvDir to verify ConfigDir correctly ignores or honors VIBECODING_DIR based on whether it matches the legacy default.
  • Added TestLoadSettingsWithLegacyDefaultEnvCreatesMothXConfig to verify settings migration creates .mothx/ config when VIBECODING_DIR points to the legacy default.
  • Added TestOpenStatsDBUsesConfiguredSessionDir to verify the stats command resolves the session database path from settings.

v1.1.59

✨ Features

  • Tool Selection Rules in System Prompt

    • Added a "Tool Selection Rules" section to the agent system prompt, instructing the model to prefer dedicated tools (read, ls, grep, find) over bash for file inspection and discovery.
    • Explicitly discourages running cat, sed, awk, grep, find, ls, pwd via bash when equivalent dedicated tools exist.
  • Directory Migration to .mothx/

    • Install scripts (install.sh, install.ps1) now default to ~/.mothx/ (was ~/.vibecoding/).
    • Added MOTHX_INSTALL_DIR env var; VIBECODING_INSTALL_DIR remains as a legacy fallback.
    • Uninstall checks both old (~/.vibecoding/, ./.vibe) and new (~/.mothx/, ./.mothx) directories for backward compatibility.
    • npm postinstall scripts and README updated to reference ~/.mothx/settings.json.

🔧 Improvements

  • Bash Non-Interactive Subprocess & Process Group Kill

    • Bash tool subprocesses now run in non-interactive mode: stdin is set to empty (read sees EOF instead of blocking), and non-interactive env defaults are injected (GIT_TERMINAL_PROMPT=0, GIT_ASKPASS=true, SSH_ASKPASS=true, SSH_ASKPASS_REQUIRE=never, SUDO_ASKPASS=true) unless the user has explicitly set them.
    • On Unix, Setsid gives the shell its own session; cancellation kills the entire process group via kill(-pid) so auth helpers and grandchildren do not linger.
    • Added killCommandProcess helper shared by BashTool and JobManager for unified process termination.
  • TUI Auth Dialog Refactor

    • Auth input fields (API key, provider ID, model name, etc.) now use SetMaxLines(1) instead of SetMaxLines(3), enforcing single-line input for credential and identifier fields.
    • Introduced newAuthInput() helper to centralize editor creation, reducing duplication across auth_dialog.go, auth_model.go, auth_provider.go, and auth_settings_top.go.
    • Removed redundant editor imports from files that now use the helper.
  • Tests

    • Added TestAuthAPIKeyInputStaysSingleLine to verify auth input does not wrap into multiple lines.
    • Added TestLoadSettingsCreatesMothXConfigDir to verify settings creation uses .mothx/ and does not create .vibecoding/.

Full Changelog: v1.1.59...v1.1.60