Skip to content

Releases: GooDAnDReaDY/dsh-clinebot

v0.5.33 [DSH v0.2.0-rc.2]

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 19 Oct 13:44

v0.5.33 [DSH v0.2.0-rc.2]

Зачем выпускаем

Релиз устраняет потенциальную уязвимость безопасности, связанную с утечкой локального bearer-токена встроенного прокси (CLINEBOT_LOCAL_PROXY_TOKEN) в окружение дочерних процессов, а также усиливает защиту эндпоинтов прокси обязательным шлюзом авторизации DSH Connection.

Что исправлено и улучшено

  • Proxy Token Isolation from Environment & Child Processes (Issue #247, PR #249):
    • Bearer-токен прозрачного прокси теперь хранится строго в приватной памяти модуля (cachedToken) в lib/proxy-token.js и никогда не экспортируется в process.env.
    • Добавлена очистка переменных окружения при старте и вызове setLocalProxyToken.
    • В lib/updater.js окружение для порождаемых дочерних процессов (spawn) явно очищается от CLINEBOT_LOCAL_PROXY_TOKEN.
    • Введен универсальный шлюз assertAuthorizedProxyRequest, обеспечивающий строгую проверку loopback-адреса, отклонение браузерных кросс-доменных запросов, вызов DSH connection rejection gate (conn.requestRejection(req) возвращает 401/403) и проверку валидности Bearer-токена.
    • Обработчики /v1/chat/completions и /v1/models в lib/routes/proxy.js переведены на использование единого шлюза assertAuthorizedProxyRequest. Лимит строк серверных модулей строго соблюден (578 строк, <= 600).
  • Комплексное тестирование:
    • Добавлен тестовый файл test/proxy-token-env.test.js с 9 новыми тестами.
    • Общий набор тестов: 226/226 успешно пройдены (100% pass rate).

Влияние на пользователя и сервис

Повышена изоляция и безопасность рантайма: сторонние плагины или запускаемые утилиты больше не имеют доступа к токену локального прокси через process.env. Маршруты прокси защищены от несанкционированных вызовов согласно стандартному протоколу авторизации DSH.

Связанные задачи и PR

  • Gitea Issue: #247
  • Gitea Pull Request: #249
  • Gitea commit: 9e59d38
  • GitHub mirror commit: cafcb7d

v0.5.32 [DSH v0.2.0-rc.2]

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 19 Oct 12:55

v0.5.32 [DSH v0.2.0-rc.2]

Зачем выпускаем

Релиз устраняет критическую уязвимость безопасности, связанную с утечкой секретных API-ключей в браузер при сканировании и импорте локально найденных ключей Cline.

Что исправлено и улучшено

  • API Key Sanitization in Key Auto-Discovery & Import Flow (Issue #246, PR #248):
    • Полные секретные API-ключи исключены из ответа GET /dsh-clinebot/keys/discovered. Обнаруженные ключи кэшируются исключительно на стороне сервера с 15-минутным TTL под непрозрачным идентификатором UUID (id).
    • Добавлен защищённый эндпоинт POST /dsh-clinebot/keys/discovered/import, извлекающий и расходующий секрет по id на сервере с прямым сохранением в DSH Credentials (saveCredentialKey) без передачи секрета в браузер.
    • Клиентский интерфейс настроек (AccountsSection, SettingsPage) обновлён: обращение к item.key полностью устранено, импорт выполняется строго по непрозрачному идентификатору.
    • Клиентский бандл пересобран (lib/client.js: 164 KiB, укладывается в лимит < 256 KiB, проверен ESLint no-undef).

Влияние на пользователя

Пользовательский опыт остаётся прежним: найденные локальные ключи CLI/IDE отображаются в виде маскированных строк с указанием источника и импортируются в один клик. При этом секретные ключи больше не попадают в память браузера, сетевые логи, devtools и HAR-дампы.

Проверки и верификация

  • npm test: 217/217 тестов пройдено (100% pass, 0 fail).
  • Тесты санитизации test/key-discovery.test.js: подтверждено отсутствие key и строк с префиксом cline_ в HTTP-ответе /keys/discovered.
  • Проверка безопасного импорта: ключ успешно сохраняется в DSH Credentials, повторный импорт по тому же id отклоняется (404).
  • Декомпозиция: все серверные модули <= 403 строк (лимит 600), клиентские компоненты <= 495 строк (лимит 500).

Соответствие коммитов

  • Gitea commit: a3174cb (tag v0.5.32)
  • GitHub mirror commit: 9f741365af02218da1d4b06028e36be1b27a43cf (tag v0.5.32)
  • npm: @goodandready/dsh-clinebot@0.5.32

v0.5.31

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 18 Oct 17:03

ClineBot v0.5.31

Maintenance & Quality Fixes

  • Host Native Adapter Test (#241): Mocked process.env.CLINEBOT_API_KEY in test/settings-service.test.js:638 with guaranteed cleanup, ensuring compatibility with newer @deepseek-ai/dsh-llm-pi-ai adapter authentication requirements.
  • Design Token Compliance (#242): Removed hardcoded hex #888 and rgba(0,0,0,0.15) in favor of DSH theme variables (var(--dsw-alias-label-secondary) and var(--dsw-elevation-prominent)).
  • Design Contract Synchronization (#243): Updated docs/design/DESIGN.md with specifications for DashboardDialog modal, settings.section, native web search ClineBotSearchProvider, and multimodal KV-cache prompt budgeting.
  • Repository Hygiene (#244): Pruned obsolete .tgz release archives from repository root.

v0.5.30

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 18 Oct 12:29

ClineBot v0.5.30

Features & Fixes

  • Native Web Search Provider (lib/web-search.js) (#233): Built-in search provider for ctx.web without extra dependencies.
  • Multimodal Prompt Cache & Payload Budgeting (lib/multimodal-budget.js) (#234): KV-cache preservation via deterministic image placeholders for seen historical turns; request budgeting with maxPayloadMb.
  • First-Class Settings Section (settings.section) (#239, GH #16): Moved configuration into DSH Settings (id dsh-clinebot, order 30) peer to General/Models/Plugins.
  • Quota Modal Dialog (DashboardDialog) (#239, GH #16): Preserves active chat view; opens quota/status breakdown as a modal dialog with Escape/backdrop handling.
  • Boot-Time Styles (#239, GH #16): Synchronous CSS injection at startup preventing unstyled quota meter on initial load.
  • Sidebar Quota Toggle (#239, GH #16): Fixed snapshot status evaluation so showSidebarQuota toggle works cleanly.
  • Footer Stacking Isolation (#239, GH #16): Scoped :has() selector preventing cross-plugin footer disruption.
  • Open-Source Mirror Sources: Mirror tree now includes src/client/, scripts/, and full test suite.

v0.5.29: Composer Session Cost Dock & Local Key Auto-Discovery

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 17 Oct 20:22

Added

  • Composer Session Cost Widget (conversation.composer.dock slot) (Issue #231): Added live token & cost indicator pill inside the chat composer dock. Displays real-time estimated dollar cost (≈ bash.00X) and token volume (prompt, completion, reasoning) with an interactive popover showing full pricing breakdown.
  • Local Key Auto-Discovery (lib/key-discovery.js) (Issue #232): Automatically scans local Cline CLI configuration (~/.cline/, ~/.config/cline/, ~/.cline.json), VS Code and Cursor extension storage (saoudrizwan.claude-dev), and environment variables (CLINE_API_KEY, CLINEPASS_API_KEY) to discover existing keys.
  • Discovered Keys API & Import UI (Issue #232): Added endpoint GET /dsh-clinebot/keys/discovered with secure secret masking and one-click import banner in AccountsSection to seamlessly add discovered keys into the DSH credentials and accounts pool.

v0.5.28: Sidebar Quota Meter, Central Dashboard Overlay & Models Provider Card

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 17 Oct 20:09

Added

  • Sidebar Quota Meter (sidebar.footer.action slot) (Issue #229): Added live subscription quota indicator in DSH sidebar footer right above Settings. Supports collapsed rail mode with 20px dynamic circular ring (MiniRing) and wide mode with plan name (ClinePass Pro), rolling 5h quota progress bar, and percentage used.
  • Center-Column Dashboard Overlay (main slot) (Issue #229): Registered full overlay dashboard under key clinebot-dashboard, providing detailed view of 5-hour and weekly quota rolling windows, reset countdown timers, active account pool routing mode, and a close button (×) that restores the current chat view without page reload.
  • Native Models Provider Card (settings.models.provider-card slot) (Issue #230): Added native provider card registered under clinebot and llm-clinebot on DSH Settings -> Models page, featuring connection status badges, quick API key input and save into DSH credentials, active model count, and direct navigation to full ClineBot settings.
  • Sidebar Quota Toggle (showSidebarQuota) (Issue #229): Added volatile config field and settings toggle (default true) allowing users to easily enable or disable the sidebar quota meter.

v0.5.27: Visible Models Selector, Plan Auto-Filtering & Genuine Limits

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 17 Oct 19:53

Added

  • Visible Models Multi-Select (visibleModels) (Issue #228): Users can now select an exact subset of models to expose in the DSH chat model picker. Includes search filtering, quick-select buttons (All, Plan only, Clean stale), and badge indicators for genuine context window and max output limits.
  • Subscription Plan Auto-Filtering (filterModelsByPlan) (Issue #228): Added toggle to automatically hide models that are not included in the active Cline account's subscription tier, preventing request failures due to tier mismatch.
  • Visible Models API Endpoint (Issue #228): Added POST /dsh-clinebot/models/visible for updating visible model selections with input validation.

Changed

  • Genuine Creator Limits Default (Issue #228): createCuratedModel now defaults context window and max tokens directly to genuine vendor factory limits (origCtx / origMax) instead of legacy hardcoded 128k/8k limits.

v0.5.26: Authentic Factory Context & Output Limits for DeepSeek V4 Series

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 17 Oct 18:22

What's Changed in v0.5.26

Fixed

  • Authentic Factory Limits for DeepSeek V4 Series (GH #15): Fixed authentic factory creator specifications (mode: 'all-original') for all models in the DeepSeek V4 series (deepseek-v4, deepseek-v4-pro, deepseek-v4.1, deepseek-v41, deepseek-v4.1-flash).
    • Output ceiling (originalMaxTokens): Correctly set to the authentic 384,000 tokens (384K) ceiling instead of 65,536.
    • Context window (originalContextLength): For deepseek-v4-pro and other V4 models, correctly set to 1,000,000 tokens (1M) instead of falling back to legacy V3 limits (128K context / 16.4K output).

Verification

  • All 207 unit and behavioral tests passed.
  • All 6 architectural and decomposition limits verified.

Full Changelog: v0.5.25...v0.5.26

v0.5.25: Subscription Plan Model Synchronization & DeepSeek V4.1 Flash Migration

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 16 Oct 09:37

What's Changed in v0.5.25

Fixed

  • Subscription Plan Model Synchronization & Default Model Migration (GH #14): Updated canonical default model identifier and baseline catalog entry to cline-pass/deepseek-v4.1-flash (DeepSeek V4.1 Flash), matching upstream ClinePass subscription changes.
  • Obsolete Model Auto-Migration: Added automatic silent migration for legacy cline-pass/deepseek-v4-flash in OBSOLETE_MODEL_ID_MAP and publicConfig (defaultModel, disabledModels, enabledModels), eliminating false-positive warning banners (Configured default model ... is not available in your active plan) for existing configurations.
  • Robust Model Parsing & Deduplication: Enhanced parsePlanIncludedModels to resolve both legacy and modern plan model feature strings with deduplication by model ID.

Full Changelog: v0.5.24...v0.5.25

v0.5.24: Settings & Updater Authentication Boundary Hardening

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 13 Oct 20:08

What's Changed in v0.5.24

Security

  • Settings & Updater Authentication Boundary (Issue #222): Integrated getConnection(ctx) and delegated request verification to DSH core service connection.requestRejection(request). When accessed across LAN bridges or reverse-proxies, unauthenticated requests lacking DSH session authentication are rejected with HTTP 401/403 fail-closed, preventing unauthorized credential modification (/save-key), account pool manipulation, model toggling, or telemetry resets from LAN clients.

Full Changelog: v0.5.23...v0.5.24