chore(deps): bump actions/setup-node from 4 to 6#2
Closed
dependabot[bot] wants to merge 711 commits intomainfrom
Closed
chore(deps): bump actions/setup-node from 4 to 6#2dependabot[bot] wants to merge 711 commits intomainfrom
dependabot[bot] wants to merge 711 commits intomainfrom
Conversation
The cache DB lives at ~/.deepl-cli/cache.db globally (ignores DEEPL_CONFIG_DIR), so comparing exact entry counts before/after is unreliable when other test suites clear the cache in parallel. Replace strict equality assertion with structural checks that verify the cache remains functional after dry-run. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DESIGN.md (1,384 lines) duplicated content already in CLAUDE.md, API.md, and README.md. It served no unique audience and had become a maintenance burden that chased implementation rather than leading it. CLAUDE.md reduced from 1,091 to 252 lines (77%) by removing duplicate testing requirements (stated 4 times), completed phase history, dependency lists (duplicates package.json), verbose PR/example templates, and overlapping checklists. Every actual instruction is preserved. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The tests were failing in CI because no API key was set, causing the CLI to reject commands at the auth check before reaching structured file logic. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The checkAndEnd mock fired onEndOfStream as soon as any chunk arrived on ws2, making total chunk count non-deterministic based on event loop scheduling. CI's slower scheduling resulted in only 6 of 10 expected chunks. Now waits for all chunks across both WebSockets before ending. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Foundation for the TypeScript rewrite of i18n skill scripts. Fixes the dots-in-keys ambiguity (KeyPath arrays instead of dot-joined strings), non-string scalar bug, array handling, and adds YAML/ARB support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add config.ts with functions for loading, saving, validating, and creating default i18n project configuration. The config file (.deepl-i18n.json) supports sourceLocale, targetLocales, framework, formality, glossary, localePaths, excludePaths, and monorepo fields. Includes 19 unit tests covering all config operations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add validate-locale.ts CLI script with 5 validation checks: - Key structure match (missing keys = error, extra keys = warning) - Placeholder residue detection (__INTL_* patterns) - Variable preservation per framework (i18next, rails, vue-i18n, etc.) - Untranslated value detection (warning) Supports JSON and text output formats, framework-specific variable patterns, and exit codes (0=pass, 1=fail, 2=error). Includes 21 unit tests covering all checks and framework patterns. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds framework auto-detection (package.json, Gemfile, pubspec.yaml, plus Android/iOS heuristics) and deep-merge for incremental translation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add untracked SKILL.md, reference docs, and bash scripts to version control before rewriting them in TypeScript. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts: # .claude/skills/i18n-translate/references/interpolation-patterns.md
# Conflicts: # .claude/skills/i18n-translate/references/framework-detection.md
Replaces bash helper scripts with TypeScript equivalents. Adds 4-mode workflow (Quick/Audit/Full/Manual), project config, dry-run support, and Android/iOS framework detection. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace require.main === module with process.argv[1] check for ESM compatibility since the project uses "type": "module". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move i18n-translate Claude Code skill (SKILL.md, scripts/, references/) and its 151 tests to https://git.deepl.dev/hack-projects/deepl-i18n-skill. Remove the .gitignore exception for skill lib/ directories. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update semver-compatible dependencies: - @commitlint/cli 20.1.0 → 20.4.1 - @commitlint/config-conventional 20.0.0 → 20.4.1 - @types/node 20.19.19 → 20.19.33 - inquirer 12.9.6 → 12.11.1 - memfs 4.49.0 → 4.56.10 - prettier 3.6.2 → 3.8.1 - ts-jest 29.4.4 → 29.4.6 All 2971 tests pass, 0 vulnerabilities. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…itive matching Language codes like pt-BR and DE were rejected because the registry stores codes in lowercase. Normalize options.to and options.from to lowercase at the entry points of translate() and translateText(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The DeepL API expects split_sentences values of "1", "0", or "nonewlines", but the CLI was sending "on" and "off" directly, causing a 400 Bad Request error. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The DeepL API requires source_lang when a glossary is used. The CLI now validates this upfront with a clear error message instead of letting the API return an opaque 400 Bad Request. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…real API calls Only 1 of 105 test files called nock.disableNetConnect(). Tests could accidentally hit real DeepL API endpoints if a nock interceptor was misconfigured. Now enforced globally via Jest setupFilesAfterEnv. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
config set auth.apiKey echoed the full plaintext key in the success message. config get with no arguments returned the full unmasked config including the API key, while config list properly masked it. Both paths now mask the key consistently (first 4 + ... + last 4 chars). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fix(config): mask API key in config set and config get output - fix(test): add global nock.disableNetConnect() to prevent accidental real API calls
…-rules, detect, languages Create service classes following the established GlossaryService pattern (client in constructor, methods forward to client). AdminService also handles the sttLimit path that previously required inline AdminClient construction in register-admin.ts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update admin, usage, style-rules, detect, and languages commands to accept service objects instead of DeepLClient directly. Update factory functions to compose client → service → command. Remove inline AdminClient construction from register-admin.ts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CacheService.get() now accepts an optional type guard function via a generic overload: get<T>(key, guard). When the guard rejects cached data (schema mismatch, corruption), the entry is logged, evicted, and null is returned. Consumers in TranslationService and WriteService pass guards instead of bare `as` casts, catching stale/corrupted cache at runtime. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
preserveCodeBlocks(), preserveVariables(), and new restorePlaceholders() are now public static on TranslationService, enabling reuse from BatchTranslationService for plain-text file batching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BatchTranslationService.translateFiles() now partitions files: plain text (.txt, .md) files are grouped into TranslationService.translateBatch() calls respecting the 50-text and 128KB limits, reducing HTTP round-trips from N to ceil(N/50). Structured files (.json, .yaml, .yml) continue through the existing per-file FileTranslationService path. Falls back to per-file translation when translationService is not provided, preserving full backward compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix and expand example scripts: - Update GitHub Actions to v4 (18-cicd-integration.sh) - Fix debounce default to 500ms (16-watch-mode.sh) - Fix error message to match CLI validation output (06-document-format-conversion.sh) - Fix --quiet flag placement as global option before subcommand (20-custom-config-files.sh) - Complete formality options list with all 7 values (14-voice.sh) - Standardize error emoji to ❌ across all scripts - Update config paths to XDG defaults (19-configuration.sh, 20-custom-config-files.sh) - Add init setup wizard example script (28-init.sh) - Add advanced translate options example script (29-advanced-translate.sh) - Update run-all.sh and README.md with new scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…test Replace non-deterministic setImmediate polling loop with a deterministic sendEndOfSource mock that triggers onEndOfStream exactly when all chunks have been sent. The polling loop raced with advanceTimersByTimeAsync and real file I/O, causing 10s timeouts on slow CI machines. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Unreleased entries for 35+ documentation fixes: - README, API.md, package.json accuracy fixes - TROUBLESHOOTING.md expansion (init, 503, CheckFailed) - SECURITY.md supported versions table - CONTRIBUTING.md PR checklist and npm commands - Example script fixes and new scripts - Repository URL migration to github.com Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restructure CHANGELOG.md to follow Keep a Changelog standards: - Merge duplicate Added/Changed/Fixed sections within version blocks - Replace non-standard Technical/Documentation categories - Move mislabeled bug fixes from Changed to Fixed - Condense internal details to user-facing summaries - Add version comparison links footer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…test Use chunkInterval: 0 instead of 5 to bypass paceChunks timer delays, removing the fake timer / real file I/O race that caused timeouts on slow CI machines. The 200-iteration timer advancement loop is no longer needed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… publication Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Align README badges with DeepL SDK house style (CI + license only). npm badges will be added after publish (tracked in deepl-cli-ebri). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v6) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
dependabot bot
pushed a commit
that referenced
this pull request
Feb 17, 2026
Fixed two critical bugs that prevented v3 glossary functionality: **Issue #1: getGlossaryEntries returned malformed output** - Root cause: v3 API returns JSON with TSV data in `entries` field - Fix: Parse JSON response and extract `dictionaries[0].entries` - Was expecting raw TSV, got: `{"dictionaries":[{"entries":"tsv data"}]}` **Issue #2: createGlossary returned empty dictionaries** - Root cause: Used wrong request format (form-encoded instead of JSON) - Fix: Send JSON with `dictionaries` array structure - Was sending: `source_lang=EN&target_langs=DE&entries=...` - Should send: `{"dictionaries": [{"source_lang": "EN", ...}]}` **Changes:** - Updated `getGlossaryEntries()` to parse JSON wrapper and extract TSV - Updated `createGlossary()` to use JSON format with dictionaries array - Changed from `makeRequest()` to direct `axios.post()` for JSON support **Verification:** - ✅ Glossary creation now returns populated dictionaries - ✅ Getting entries now works correctly - ✅ Translation with glossary works - ✅ All glossary operations functional Added V3_GLOSSARY_MANUAL_TEST_REPORT.md documenting the investigation and fixes for future reference. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
dependabot bot
pushed a commit
that referenced
this pull request
Feb 17, 2026
…ssues Fixed three critical HIGH priority issues identified in code quality review: 1. Variable Preservation Performance (Issue #7) - Replaced crypto.randomBytes() and SHA-256 with simple counter - Performance improvement: 10-20x faster for texts with many variables - Added 3 comprehensive tests for variable preservation efficiency 2. CSV Parsing Bug in Glossary Service (Issue #5) - Implemented RFC 4180 compliant CSV parser - Now correctly handles quoted commas and escaped quotes - Added 4 comprehensive tests for CSV parsing edge cases 3. Silent Proxy Configuration Failure (Issue #2) - Changed from warning to error for invalid proxy URLs - Prevents security issues where users think they're using proxy but aren't - Added 4 comprehensive tests for proxy URL validation Test suite: 1165 tests passing (11 new tests added) All fixes validated through TDD methodology (RED → GREEN → REFACTOR) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
dependabot bot
pushed a commit
that referenced
this pull request
Feb 17, 2026
Remove 40 extraneous comments including issue references, redundant explanations, and obvious statements that don't add value. All historical context preserved in git history. - Removed 37 issue reference comments (Issue #2-#12) - Removed 3 obvious/redundant comments - Maintained security and non-obvious behavioral comments - All 1460 tests passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps actions/setup-node from 4 to 6.
Release notes
Sourced from actions/setup-node's releases.
... (truncated)
Commits
6044e13Docs: bump actions/checkout from v5 to v6 (#1468)8e49463Fix README typo (#1226)621ac41README.md: bump to latest released checkout version v6 (#1446)2951748Bump@actions/cacheto v5.0.1 (#1449)21ddc7bCorrect mirror option typos (#1442)65d868fUpdate Documentation for Lockfile (#1454)395ad32Bump js-yaml from 3.14.1 to 3.14.2 (#1435)a4d2e2bBump actions/checkout from 5 to 6 (#1439)b9b25d4Remove always-auth configuration handling from action (#1436)633bb92Bump@actions/cachefrom 4.0.3 to 4.1.0 (#1384)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)