Skip to content

Releases: andrelncampos/dscode-public

v1.0.46

23 Jun 19:29

Choose a tag to compare

🎓 V44: Quickstart — Interactive SDD Pipeline Tour

The /quickstart command demonstrates the SDD pipeline in practice — users learn planned → created → verified → implemented → audited by watching it run, not reading documentation.

/quickstart — 5-minute guided tour

  • Demo mode: The LLM creates an example spec (hello-world CLI) and walks through the full cycle: /spec-plan/spec-new/spec-verify/spec-implement/spec-audit.
  • Real project: Alternatively, users can apply SDD immediately to their own project.
  • CLI flag: dscode --quickstart jumps straight into the tour without typing commands.
  • Welcome screen: The command appears as a suggestion for new users on the start screen.

Spec-plan optimized — zero LLM cost (spec 560)

/spec-plan-begin, /spec-plan-end, and /spec-plan-reset now execute as pure TypeScript (Level B), consuming zero auxiliary model tokens. Each call saves ~200-500 tokens that were previously wasted.

  • Bug fix: /spec-plan-end no longer fails when detecting the begin marker — the /spec-plan-begin message is now correctly stored in the session.
  • Cleaner architecture: All spec-plan orchestration was removed from OpenAIMessageConverter, leaving it focused solely on message format conversion.

Internal improvements

  • Lesson L11: New anti-pattern documented — don't split specs when documentation overhead outweighs code changes.
  • Vertical slice check: All three SDD templates (plan, verify, audit) now include end-to-end completeness verification.
  • Spec-list tree: /spec-list renders specs as a hierarchical tree grouped by status.
  • DeepCode purged: All legacy deepcode references removed from production code and tests.
  • Budget: Column Custo (USD) renamed to Custo Total (USD) in the /budget table for clarity.

Fixes

  • /spec-audit now correctly injects karpathyContent (missing since spec 550).
  • ESLint warnings fixed in AppStateContext.tsx and PromptInput.tsx.

⚡ V40: Performance-First Execution — 4 specs, zero regressions

Surgical optimization of I/O, CPU, and memory across 4 fronts. Result: faster sessions, lighter startup, leaner history.

Session I/O (spec 420)

  • Incremental writes: appendFileSync instead of rewriting the entire messages file
  • Sessions index cache: _cachedSessionsIndex in memory — loadSessionsIndex() was called 6× per turn reading from disk
  • Directory guard: _projectDirEnsured avoids unnecessary mkdirSync
  • String buffers: push + join in streaming loops instead of += (reallocation per chunk)

Startup (spec 430)

  • Parallel skills: Promise.all + fs/promises — simultaneous loading, zero sequential readFileSync
  • Cached templates: Prompt templates (templates/tools/*.md, templates/skills/*.md) in immutable cache — no longer re-read from disk every turn

Compaction & memory (spec 440)

  • Incremental hash: findStablePrefixEndIndex() uses a single incremental SHA-256 instance — O(N) instead of O(N²)
  • Parallel turns: readRecentTurns() decompresses files in parallel with Promise.all
  • Async backup: backupSpecFile() uses fs/promises.copyFile — zero blocking

Hardening (spec 450)

  • Limited concurrency: readRecentTurns processes in batches of 8 with early termination — no wasted I/O
  • Mtime invalidation: Sessions index cache checks mtimeMs — safe for multi-terminal use
  • ENOENT recovery: ensureProjectDir resets the flag if .dscode/ is deleted during a session
  • ESLint no-floating-promises: Active rule — 5 violations fixed with void

🐛 PDF: Context Budget Fix (spec 460)

  • PDFs with compressed ObjStm: countPdfPages returns null (not 0) when regex heuristic fails. Large PDFs are no longer embedded as base64 in context — preventing overflow of the 1M token window.

🚀 Node.js 24 Native API Optimizations

  • Grep handler: native fs.globSync, async parallel reads, streaming — -143 lines, -1 dependency
  • Glob handler: Custom walker replaced by fs.globSync-51 lines

🔧 Fixes

  • cacheMode in Zod schema: Settings with cacheMode are no longer rejected as invalid
  • /spec-pipe: Auto-creates session when none is active
  • FD leaks: File descriptors closed in grep binary detection catch block and MCP client disconnect
  • Unused variable: unusedInBinaryDetection regex removed from grep handler

📋 Documentation & infra

  • 5 steering rules in AGENTS.md: authorization, cross-check, verification, consequence, output
  • V39 and V40 documented in vision.md
  • Node 26 notice on welcome screen: "Starting October 2026, DsCode will require Node.js 26."
  • Release notes now use RELEASE_NOTES.md (not --generate-notes)

🚀 Node.js 24 — All-in

Complete migration to Node 24 as baseline. Zero compatibility with older versions.

Native APIs replacing dependencies

  • fs.globSync native replaces glob npm package — -4 dependencies
  • node:zstd native replaces Brotli fallback from node:zlib — 4× smaller compressor
  • Error.isError()getErrorMessage() function cross-realm safe in 21 files
  • structuredClone native — deep clone from 8 lines to 1
  • esbuild target node24 — no polyfills for Node 22
  • CI on Node 24 — build and test on real runtime

🍎 macOS Apple Silicon in automatic releases

  • macOS ARM64 (macos-latest) now builds automatically on every tag push
  • macOS Intel (macos-13) removed — GitHub deprecated runner, no queue wait
  • Dry-run covers Windows, Linux, and macOS ARM64
  • Checksum download fixed (root cause of 400 Bad Content-Length error in v1.0.41)

🔄 Robust Auto-Update

  • 100% aligned asset naming between CI and update-check.ts
  • Portable packages (fallback when SEA fails) now copy all companion files: dscode.mjs, node, templates/, node_modules/
  • File extraction and atomic binary replacement on all platforms

🖼️ Local OCR with Tesseract.js

  • Offline OCR via tesseract.js for models without image support (e.g., DeepSeek V4)
  • Dynamic importtesseract.js only loads when OCR is actually used, zero startup impact
  • All 12 transitive dependencies bundled in the portable package
  • Extracted text truncated at 2000 characters (word boundary)
  • /image-paste and /image-upload with automatic OCR fallback
  • File drag-and-drop via terminal paste

🐛 Fixes

  • v1.0.41: 400 Bad Content-Length error on publish — checksums were not downloaded
  • v1.0.42/43: macOS Intel stuck releases due to missing runner — removed from pipeline
  • Auto-update: Portable packages broke on update — now copies companion files
  • Bundle: Silent build failure — now exit(1) and CI detects it
  • OCR startup: regenerator-runtime not found at startup — tesseract.js loaded on demand
  • Ink ErrorBanner error, context window overflow, spec suffixes

📐 Specifications & build

  • Specs 370-410: build validation, operational resilience, traceability, auto-update
  • validate-binary.mjs uses tag version (not package.json)
  • release-dry-run.yml covers 3 platforms
  • README URL validation in CI

v1.0.45

21 Jun 15:19

Choose a tag to compare

⚡ V40: Performance-First Execution — 4 specs, zero regressions

Surgical I/O, CPU, and memory optimization across 4 fronts. Result: faster sessions, lighter startup, leaner history.

Session I/O (spec 420)

  • Incremental writes: appendFileSync replaces rewriting the entire messages file
  • Sessions index cache: _cachedSessionsIndex in memory — loadSessionsIndex() was called 6× per turn reading from disk
  • Directory guard: _projectDirEnsured avoids unnecessary mkdirSync
  • String buffers: push + join in streaming loops instead of += (reallocation on every chunk)

Startup (spec 430)

  • Parallel skills: Promise.all + fs/promises — simultaneous loading, zero sequential readFileSync
  • Cached templates: Prompt templates (templates/tools/*.md, templates/skills/*.md) in immutable cache — no longer re-read from disk each turn

Compaction & memory (spec 440)

  • Incremental hash: findStablePrefixEndIndex() uses a single incremental SHA-256 instance — O(N) instead of O(N²)
  • Parallel turns: readRecentTurns() decompresses files in parallel with Promise.all
  • Async backup: backupSpecFile() uses fs/promises.copyFile — zero blocking

Hardening (spec 450)

  • Bounded concurrency: readRecentTurns processes in batches of 8 with early bailout — no wasted I/O
  • mtime-based invalidation: Sessions index cache checks mtimeMs — safe for multi-terminal use
  • ENOENT recovery: ensureProjectDir resets the flag if .dscode/ is deleted mid-session
  • ESLint no-floating-promises: Rule active — 5 violations fixed with void

🐛 PDF: Context Budget Fix (spec 460)

  • PDFs with compressed ObjStm: countPdfPages returns null (not 0) when the regex heuristic fails. Large PDFs are no longer embedded as base64 in context — preventing 1M token window overflow.
  • PDF read handler uses followUpMessages: Output is a short descriptive string instead of inline base64. Content goes through contentParams as image_url, matching the image handler pattern. Prevents context pollution.
  • Functional pages parameter: pages now extracts only the requested page range (via pdf-lib) instead of encoding the entire file. Falls back to full file with clear error metadata on extraction failure.
  • 5 new tests: Covers descriptive output, followUpMessages, page extraction, fallback on corruption, and single-page extraction.

🚀 Optimizations with native Node.js 24 APIs

  • Grep handler: native fs.globSync, async parallel reads, streaming — -143 lines, -1 dependency
  • Glob handler: custom walker replaced by fs.globSync-51 lines

🔧 Fixes

  • cacheMode in Zod schema: Settings with cacheMode are no longer rejected as invalid
  • /spec-pipe: Auto-creates session when none is active
  • FD leaks: File descriptors closed in grep binary detection catch and MCP client disconnect
  • Unused variable: Regex unusedInBinaryDetection removed from grep handler

📋 Documentation & infra

  • 5 steering rules in AGENTS.md: authorization, cross-check, verify, consequence, output
  • V39 and V40 documented in vision.md
  • Node 26 notice on welcome screen: "Starting October 2026, DsCode will require Node.js 26."
  • Release notes now use RELEASE_NOTES.md (not --generate-notes)

🚀 Node.js 24 — All-in

Full migration to Node 24 as baseline. Zero backward compatibility.

Native APIs replacing dependencies

  • Native fs.globSync replaces npm glob package — -4 dependencies
  • Native node:zstd replaces Brotli fallback from node:zlib — 4× smaller compressor
  • Error.isError()getErrorMessage() cross-realm safe in 21 files
  • Native structuredClone — 8-line deep clone becomes 1
  • esbuild target node24 — no polyfills for Node 22
  • CI on Node 24 — build and test on the real runtime

🍎 macOS Apple Silicon in automatic releases

  • macOS ARM64 (macos-latest) now builds automatically on every tag push
  • macOS Intel (macos-13) removed — deprecated runner by GitHub, no queue wait
  • Dry-run covers Windows, Linux, and macOS ARM64
  • Checksum download fixed (cause of 400 Bad Content-Length error in v1.0.41)

🔄 Robust auto-update

  • Asset naming 100% aligned between CI and update-check.ts
  • Portable packages (fallback when SEA fails) now copy all companion files: dscode.mjs, node, templates/, node_modules/
  • File extraction and atomic binary replacement across all platforms

🖼️ Local OCR with Tesseract.js

  • Offline OCR via tesseract.js for models without image support (e.g., DeepSeek V4)
  • Dynamic importtesseract.js only loads when OCR is actually used, zero startup impact
  • All 12 transitive dependencies packaged in the portable bundle
  • Extracted text truncated at 2000 characters (word boundary)
  • /image-paste and /image-upload with automatic OCR fallback
  • Drag-and-drop files via paste in terminal

🐛 Fixes (from previous versions)

  • v1.0.41: 400 Bad Content-Length error on publish — checksums were not downloaded
  • v1.0.42/43: macOS Intel blocked releases due to missing runner — removed from pipeline
  • Auto-update: Portable packages broke on update — now copies companion files
  • Bundle: Silent build failure — now exit(1) and CI detects it
  • OCR startup: regenerator-runtime not found at startup — tesseract.js loaded on demand
  • ErrorBanner in Ink, context window overflow, spec suffixes

📐 Specifications and build

  • Specs 370-410: build validation, operational resilience, traceability, auto-update
  • validate-binary.mjs uses tag version (not package.json)
  • release-dry-run.yml covers 3 platforms
  • README URL validation in CI

v1.0.44

19 Jun 19:26

Choose a tag to compare

🚀 Node.js 24 — All-in

Migração completa para Node 24 como baseline. Zero compatibilidade com versões antigas.

APIs nativas que substituíram dependências

  • fs.globSync nativo substitui pacote glob npm — -4 dependências
  • node:zstd nativo substitui fallback Brotli do node:zlib — compressor 4× menor
  • Error.isError() → função getErrorMessage() cross-realm safe em 21 arquivos
  • structuredClone nativo — clone profundo de 8 linhas vira 1
  • esbuild target node24 — sem polyfills para Node 22
  • CI em Node 24 — build e teste no runtime real

🍎 macOS Apple Silicon em releases automáticas

  • macOS ARM64 (macos-latest) agora builda automaticamente em todo push de tag
  • macOS Intel (macos-13) removido — runner deprecated pelo GitHub, sem fila de espera
  • Dry-run cobre Windows, Linux e macOS ARM64
  • Download de checksums corrigido (causa do erro 400 Bad Content-Length na v1.0.41)

🔄 Auto-update robusto

  • Naming de assets 100% alinhado entre CI e update-check.ts
  • Pacotes portable (fallback quando SEA falha) agora copiam todos os arquivos companheiros: dscode.mjs, node, templates/, node_modules/
  • Extração de arquivos e substituição atômica do binário em todas as plataformas

🖼️ OCR local com Tesseract.js

  • OCR offline via tesseract.js para modelos sem suporte a imagem (ex: DeepSeek V4)
  • Import dinâmicotesseract.js só carrega quando OCR é realmente usado, zero impacto no startup
  • Todas as 12 dependências transitivas empacotadas no pacote portable
  • Texto extraído truncado em 2000 caracteres (limite de palavra)
  • /image-paste e /image-upload com fallback automático de OCR
  • Drag-and-drop de arquivos via paste no terminal

🐛 Correções

  • v1.0.41: Erro 400 Bad Content-Length na publicação — checksums não eram baixados
  • v1.0.42/43: macOS Intel travava release por falta de runner — removido do pipeline
  • Auto-update: Pacotes portable quebravam ao atualizar — agora copia arquivos companheiros
  • Bundle: Build silencioso em falha — agora exit(1) e CI detecta
  • OCR startup: regenerator-runtime não encontrado no startup — tesseract.js carregado sob demanda
  • Erro no ErrorBanner Ink, overflow de context window, sufixos de spec

📐 Especificações e build

  • Specs 370-410: validação de build, resiliência operacional, rastreabilidade, auto-update
  • validate-binary.mjs usa versão da tag (não package.json)
  • release-dry-run.yml cobre 3 plataformas
  • Validação de URLs dos READMEs no CI

v1.0.43

19 Jun 18:58

Choose a tag to compare

Full Changelog: v1.0.37...v1.0.43

v1.0.39

18 Jun 20:43

Choose a tag to compare

Full Changelog: v1.0.37...v1.0.39

v1.0.38

17 Jun 20:13

Choose a tag to compare

Full Changelog: v1.0.37...v1.0.38

v1.0.37

17 Jun 14:19

Choose a tag to compare

🇧🇷 Português

🆕 Novos comandos slash (37 no total)

Sessão

  • /context — Exibe 12 métricas da sessão: tokens usados, custo estimado, cache hit rate, modelo ativo, thinking mode, etc.
  • /clear — Limpa o contexto da sessão (zera mensagens e tokens) sem encerrar a sessão.

Notas de desenvolvimento

  • /notes — Lista todas as notas com status, tags, spec vinculada, e dias até o vencimento.
  • /notes-add — Cria uma nova nota de desenvolvimento (com spec, tags, data de vencimento).
  • /notes-delete <id> — Remove uma nota pelo ID numérico.
  • /notes-search <termo> — Busca notas por texto livre.

Sistema

  • /help — Abre o modal de ajuda com todos os comandos e atalhos de teclado, populado dinamicamente.

🧠 Threshold de compactação dinâmico

O gatilho de compactação agora se ajusta automaticamente por modelo:

  • DeepSeek (V4 Pro / Flash): 600K tokens (cache ratio alto → 60% da janela de 1M)
  • Anthropic (Claude Sonnet 4-6): 380K tokens (cache ratio moderado → 38% da janela de 1M)
  • Novos modelos: cálculo automático com base em contextWindow × f(cacheRatio)
  • Fallback: 128K tokens para modelos desconhecidos

🏗️ Arquitetura — Session Module Split

Módulos extraídos da session para arquivos próprios:

  • src/session/compaction.ts — Lógica de compactação
  • src/session/mcp-lifecycle.ts — Ciclo de vida MCP
  • src/session/skills.ts — Descoberta de skills (377 linhas)

🎨 UX

  • Menu # vs / — Prefixo # ativa skills; prefixo / ativa comandos slash. Separados no autocomplete.
  • Help Modal dinâmico/help lista todos os comandos built-in com i18n.
  • READMEs — Atualizados em 5 idiomas (PT, EN, ES, HI, ZH) com todos os novos comandos.

📐 Especificações

12 specs auditadas (260, 260A/B, 270, 280, 290, 300, 320, 330, 340, 350, 360).
76 arquivos alterados · +8.105 inserções, −713 deleções · 28 commits.


🇺🇸 English

🆕 New slash commands (37 total)

Session

  • /context — Displays 12 session metrics: tokens used, estimated cost, cache hit rate, active model, thinking mode, and more.
  • /clear — Clears the session context (resets messages and tokens) without ending the session.

Developer Notes

  • /notes — Lists all notes with status, tags, linked spec, and days until due.
  • /notes-add — Creates a new development note (with spec, tags, due date).
  • /notes-delete <id> — Removes a note by numeric ID.
  • /notes-search <query> — Searches notes by free text.

System

  • /help — Opens the help modal with all commands and keyboard shortcuts, dynamically populated.

🧠 Dynamic Compaction Threshold

The compaction trigger now auto-adjusts per model:

  • DeepSeek (V4 Pro / Flash): 600K tokens (high cache ratio → 60% of 1M window)
  • Anthropic (Claude Sonnet 4-6): 380K tokens (moderate cache ratio → 38% of 1M window)
  • New models: automatic calculation based on contextWindow × f(cacheRatio)
  • Fallback: 128K tokens for unknown models

🏗️ Architecture — Session Module Split

Modules extracted from session into their own files:

  • src/session/compaction.ts — Compaction logic
  • src/session/mcp-lifecycle.ts — MCP lifecycle
  • src/session/skills.ts — Skill discovery (377 lines)

🎨 UX

  • # vs / menu# prefix activates skills; / prefix activates slash commands. Separated in autocomplete.
  • Dynamic Help Modal/help lists all built-in commands with i18n.
  • READMEs — Updated in 5 languages (PT, EN, ES, HI, ZH) with all new commands.

📐 Specifications

12 audited specs (260, 260A/B, 270, 280, 290, 300, 320, 330, 340, 350, 360).
76 files changed · +8,105 insertions, −713 deletions · 28 commits.


🇪🇸 Español

🆕 Nuevos comandos slash (37 en total)

Sesión

  • /context — Muestra 12 métricas de la sesión: tokens usados, costo estimado, tasa de cache hit, modelo activo, modo thinking, etc.
  • /clear — Limpia el contexto de la sesión (reinicia mensajes y tokens) sin cerrar la sesión.

Notas de desarrollo

  • /notes — Lista todas las notas con estado, etiquetas, spec vinculada, y días hasta el vencimiento.
  • /notes-add — Crea una nueva nota de desarrollo (con spec, etiquetas, fecha de vencimiento).
  • /notes-delete <id> — Elimina una nota por ID numérico.
  • /notes-search <término> — Busca notas por texto libre.

Sistema

  • /help — Abre el modal de ayuda con todos los comandos y atajos de teclado, poblado dinámicamente.

🧠 Umbral de compactación dinámico

El disparador de compactación ahora se ajusta automáticamente por modelo:

  • DeepSeek (V4 Pro / Flash): 600K tokens (cache ratio alto → 60% de la ventana de 1M)
  • Anthropic (Claude Sonnet 4-6): 380K tokens (cache ratio moderado → 38% de la ventana de 1M)
  • Nuevos modelos: cálculo automático basado en contextWindow × f(cacheRatio)
  • Fallback: 128K tokens para modelos desconocidos

🏗️ Arquitectura — Session Module Split

Módulos extraídos de session a archivos propios:

  • src/session/compaction.ts — Lógica de compactación
  • src/session/mcp-lifecycle.ts — Ciclo de vida MCP
  • src/session/skills.ts — Descubrimiento de skills (377 líneas)

🎨 UX

  • Menú # vs / — Prefijo # activa skills; prefijo / activa comandos slash. Separados en el autocompletado.
  • Help Modal dinámico/help lista todos los comandos built-in con i18n.
  • READMEs — Actualizados en 5 idiomas (PT, EN, ES, HI, ZH) con todos los nuevos comandos.

📐 Especificaciones

12 specs auditadas (260, 260A/B, 270, 280, 290, 300, 320, 330, 340, 350, 360).
76 archivos modificados · +8.105 inserciones, −713 eliminaciones · 28 commits.


🇮🇳 हिन्दी

🆕 नए स्लैश कमांड (कुल 37)

सत्र (Session)

  • /context — सत्र के 12 मीट्रिक्स दिखाता है: उपयोग किए गए टोकन, अनुमानित लागत, कैश हिट दर, सक्रिय मॉडल, थिंकिंग मोड, आदि।
  • /clear — सत्र का संदर्भ साफ करता है (संदेश और टोकन रीसेट करता है) बिना सत्र समाप्त किए।

डेवलपर नोट्स (Developer Notes)

  • /notes — सभी नोट्स को स्थिति, टैग, लिंक्ड spec, और देय तिथि तक शेष दिनों के साथ सूचीबद्ध करता है।
  • /notes-add — एक नया डेवलपमेंट नोट बनाता है (spec, टैग, देय तिथि के साथ)।
  • /notes-delete <id> — संख्यात्मक ID द्वारा एक नोट हटाता है।
  • /notes-search <शब्द> — फ्री टेक्स्ट द्वारा नोट्स खोजता है।

सिस्टम (System)

  • /help — सभी कमांड और कीबोर्ड शॉर्टकट के साथ सहायता मोडल खोलता है, गतिशील रूप से पॉपुलेटेड।

🧠 डायनामिक कॉम्पैक्शन थ्रेशोल्ड

कॉम्पैक्शन ट्रिगर अब प्रति मॉडल स्वतः समायोजित होता है:

  • DeepSeek (V4 Pro / Flash): 600K टोकन (उच्च कैश अनुपात → 1M विंडो का 60%)
  • Anthropic (Claude Sonnet 4-6): 380K टोकन (मध्यम कैश अनुपात → 1M विंडो का 38%)
  • नए मॉडल: contextWindow × f(cacheRatio) पर आधारित स्वचालित गणना
  • फॉलबैक: अज्ञात मॉडलों के लिए 128K टोकन

🏗️ आर्किटेक्चर — Session Module Split

सत्र से निकाले गए मॉड्यूल अपनी फाइलों में:

  • src/session/compaction.ts — कॉम्पैक्शन लॉजिक
  • src/session/mcp-lifecycle.ts — MCP लाइफसाइकिल
  • src/session/skills.ts — स्किल डिस्कवरी (377 पंक्तियाँ)

🎨 UX

  • # बनाम / मेनू# उपसर्ग skills सक्रिय करता है; / उपसर्ग स्लैश कमांड सक्रिय करता है। ऑटोकम्प्लीट में अलग।
  • डायनामिक हेल्प मोडल/help सभी बिल्ट-इन कमांड को i18n के साथ सूचीबद्ध करता है।
  • READMEs — सभी नए कमांड के साथ 5 भाषाओं (PT, EN, ES, HI, ZH) में अपडेटेड।

📐 विशिष्टताएँ

12 ऑडिटेड specs (260, 260A/B, 270, 280, 290, 300, 320, 330, 340, 350, 360)।
76 फ़ाइलें बदली गईं · +8,105 जोड़, −713 हटाए गए · 28 कमिट्स


🇨🇳 简体中文

🆕 新增斜杠命令(共37个)

会话 (Session)

  • /context — 显示12项会话指标:已用Token、预估费用、缓存命中率、当前模型、思考模式等。
  • /clear — 清除会话上下文(重置消息和Token),但不结束会话。

开发者笔记 (Developer Notes)

  • /notes — 列出所有笔记,包含状态、标签、关联spec、距截止日期剩余天数。
  • /notes-add — 创建新的开发笔记(包含spec、标签、截止日期)。
  • /notes-delete <id> — 按数字ID删除笔记。
  • /notes-search <关键词> — 按自由文本搜索笔记。

系统 (System)

  • /help — 打开帮助弹窗,动态列出所有命令和键盘快捷键。

🧠 动态压缩阈值

压缩触发器现在按模型自动调整:

  • DeepSeek (V4 Pro / Flash):600K Token(高缓存比率 → 1M窗口的60%)
  • Anthropic (Claude Sonnet 4-6):380K Token(中等缓存比率 → 1M窗口的38%)
  • 新模型:基于 contextWindow × f(cacheRatio) 自动计算
  • 回退:未知模型使用128K Token

🏗️ 架构 — 会话模块拆分

从会话模块中提取到独立文件:

  • src/session/compaction.ts — 压缩逻辑
  • src/session/mcp-lifecycle.ts — MCP生命周期
  • src/session/skills.ts — 技能发现(377行)

🎨 用户体验

  • #/ 菜单分离# 前缀激活技能;/ 前缀激活斜杠命令。自动补全中分开显示。
  • 动态帮助弹窗/help 列出版本所有内置命令并支持国际化。
  • README — 已更新为5种语言(葡萄牙语、英语、西班牙语、印地语、简体中文),包含所有新命令。

📐 规范

12个已审计的Spec(260, 260A/B, 270, 280, 290, 300, 320, 330, 340, 350, 360)。
76个文件变更 · +8,105行新增, −713行删除 · 28次提交


Full Changelog: v1.0.36...v1.0.37

v1.0.36

15 Jun 20:28

Choose a tag to compare

Full Changelog: v1.0.21...v1.0.36

v1.0.35

15 Jun 19:43

Choose a tag to compare

Full Changelog: v1.0.21...v1.0.35

v1.0.34

15 Jun 17:22

Choose a tag to compare

Full Changelog: v1.0.21...v1.0.34