Repository navigation
Releases: GooDAnDReaDY/dsh-clinebot
Release list
v0.5.33 [DSH v0.2.0-rc.2]
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).
- Bearer-токен прозрачного прокси теперь хранится строго в приватной памяти модуля (
- Комплексное тестирование:
- Добавлен тестовый файл
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]
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, проверен ESLintno-undef).
- Полные секретные API-ключи исключены из ответа
Влияние на пользователя
Пользовательский опыт остаётся прежним: найденные локальные ключи 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(tagv0.5.32) - GitHub mirror commit:
9f741365af02218da1d4b06028e36be1b27a43cf(tagv0.5.32) - npm:
@goodandready/dsh-clinebot@0.5.32
v0.5.31
ClineBot v0.5.31
Maintenance & Quality Fixes
- Host Native Adapter Test (#241): Mocked
process.env.CLINEBOT_API_KEYintest/settings-service.test.js:638with guaranteed cleanup, ensuring compatibility with newer@deepseek-ai/dsh-llm-pi-aiadapter authentication requirements. - Design Token Compliance (#242): Removed hardcoded hex
#888andrgba(0,0,0,0.15)in favor of DSH theme variables (var(--dsw-alias-label-secondary)andvar(--dsw-elevation-prominent)). - Design Contract Synchronization (#243): Updated
docs/design/DESIGN.mdwith specifications forDashboardDialogmodal,settings.section, native web searchClineBotSearchProvider, and multimodal KV-cache prompt budgeting. - Repository Hygiene (#244): Pruned obsolete
.tgzrelease archives from repository root.
v0.5.30
ClineBot v0.5.30
Features & Fixes
- Native Web Search Provider (
lib/web-search.js) (#233): Built-in search provider forctx.webwithout 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 withmaxPayloadMb. - First-Class Settings Section (
settings.section) (#239, GH #16): Moved configuration into DSH Settings (iddsh-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
showSidebarQuotatoggle 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
Added
- Composer Session Cost Widget (
conversation.composer.dockslot) (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/discoveredwith secure secret masking and one-click import banner inAccountsSectionto seamlessly add discovered keys into the DSH credentials and accounts pool.
v0.5.28: Sidebar Quota Meter, Central Dashboard Overlay & Models Provider Card
Added
- Sidebar Quota Meter (
sidebar.footer.actionslot) (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 (
mainslot) (Issue #229): Registered full overlay dashboard under keyclinebot-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-cardslot) (Issue #230): Added native provider card registered underclinebotandllm-clineboton 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 (defaulttrue) allowing users to easily enable or disable the sidebar quota meter.
v0.5.27: Visible Models Selector, Plan Auto-Filtering & Genuine Limits
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/visiblefor updating visible model selections with input validation.
Changed
- Genuine Creator Limits Default (Issue #228):
createCuratedModelnow 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
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): Fordeepseek-v4-proand other V4 models, correctly set to 1,000,000 tokens (1M) instead of falling back to legacy V3 limits (128K context / 16.4K output).
- Output ceiling (
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
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-flashinOBSOLETE_MODEL_ID_MAPandpublicConfig(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
parsePlanIncludedModelsto 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
What's Changed in v0.5.24
Security
- Settings & Updater Authentication Boundary (Issue #222): Integrated
getConnection(ctx)and delegated request verification to DSH core serviceconnection.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