Add module-level caching for compiled Handlebars templates to avoid
recompilation on every generateOutput call. This improves performance
especially for split output mode where templates are rendered multiple times.
- Move makeChunkConfig and renderGroups to module level for better readability
- Add GenerateOutputFn type alias using typeof generateOutput
- Add comment explaining O(N²) complexity and why it's acceptable
- Fix test mock property names to match actual GitDiffResult/GitLogResult types
- Update integration tests to use produceOutput instead of individual functions
Move split/single output generation and writing logic to
packager/produceOutput.ts to keep packager.ts focused
on the high-level orchestration flow.
- Create produceOutput module handling both output modes
- Simplify packager.ts from 227 to 181 lines
- Update related tests to use new dependency structure
- Add test for sizeParse overflow case
- Use RepomixProgressCallback type in outputSplit.ts for consistency
- Improve configuration.md description for splitOutput option
- Use buildSplitOutputFilePath for consistent file path generation
in calculateMetrics.ts (fixes repomix-output.xml.part-1 → repomix-output.1.xml)
- Remove duplicate validation in packager.ts (already handled by
validateConflictingOptions in defaultAction.ts)
- Add overflow check for large size values in sizeParse.ts
Document --split-output feature with:
- Use case (AI Studio's 1MB file size limit)
- Usage example and file naming convention
- Note about directory-based grouping
Extract conflicting options validation into a dedicated function that
uses a data-driven approach. This makes it easier to add new conflicts
and reduces code duplication.
- Add validateConflictingOptions function with conflict definitions
- Support --split-output, --skill-generate, --stdout, --copy conflicts
- Handle --output "-" as stdout mode
Adds a size-based output splitter via --split-output (kb/mb) and writes numbered parts without splitting within a top-level folder.
Also updates metrics aggregation for multi-part output and adds unit tests.
When external users (without write access) create issues, the OIDC
token exchange fails with "User does not have write access" error.
Adding explicit github_token bypasses this authentication flow.
Replace the original strip-comments package with @repomix/strip-comments,
which provides enhanced support for:
- Go directives (//go:build, //go:generate, etc.)
- C++ document comments (///)
- Python docstrings (""" and ''') and hash comments
This removes the custom GoManipulator, PythonManipulator, and CppManipulator
implementations in favor of the improved library support.
Note: preserveNewlines option keeps newlines for line number preservation,
so docstrings are replaced with empty lines rather than being fully removed.
Add comprehensive tests to increase code coverage from 89.81% to 90.28%:
writeSkillOutput.ts (63.88% → 100%):
- Add test for techStack file writing
- Add tests for EPERM/EACCES error handling
- Add test for generic error handling
- Add test for non-Error object handling
fileSystemReadFileTool.ts (62.5% → 100%):
- Add test for directory path error
- Add test for successful file reading
- Add test for security check failure
- Add test for general errors during file reading
- Add test for non-Error object handling
Add release notes for v1.10.1 which includes:
- Bug fixes for skill generation project name and .claude/ directory conflicts
- Improvement for source URL in SKILL.md for remote repositories
- Use TextDecoder('utf-8', { fatal: true }) to distinguish actual decode
errors from legitimate U+FFFD characters in UTF-8 files
- Change test temp directory from tests/fixtures to os.tmpdir() to avoid
clobbering committed fixtures and reduce parallel-run collisions
- Non-UTF-8 files still use iconv.decode() fallback behavior
Addresses CodeRabbit review comments on PR #1007
Remove the confidence < 0.2 check that was causing valid UTF-8/ASCII files
to be incorrectly skipped. Files are now only skipped if they contain actual
decode errors (U+FFFD replacement characters).
This fixes issues where:
- Valid Python files were skipped with confidence=0.00 (#869)
- HTML files with Thymeleaf syntax (~{}) were incorrectly detected as binary (#847)
The isbinaryfile library (added in PR #1006) now handles binary detection more
accurately, making the confidence-based heuristic unnecessary.
Fixes#869
The action.yml description was outdated - the style parameter passes
directly to the repomix CLI which does support json. Restored json to
match the English documentation.
The action.yml only supports xml, markdown, plain styles but the
documentation incorrectly listed json as an option. Updated the Russian
translation to match actual supported options.
Add Russian (ru) as the 14th language to the Repomix documentation website.
This includes:
- New configRu.ts with navigation, sidebar, and search translations
- Updated config.ts to include Russian locale
- Updated configShard.ts to include Russian search configuration
- Complete Russian translations for all 24 documentation pages
Related to community request for Russian language support based on
the large Russian developer population (~85-110万 IT specialists).
Slack thread: https://yamadashy.slack.com/archives/C08S1M3ESHF/p1765620770607819
Add pnpm package manager option to 10 language installation guides
that were missing it (en, ja, zh-cn, zh-tw, ko, de, es, fr, it, pt-br).
All 13 languages now consistently show 5 package managers:
npm, yarn, pnpm, bun, and Homebrew.
Replace individual package manager sections with VitePress code-group
syntax for a cleaner, tabbed interface. Users can now easily switch
between npm, yarn, bun, and Homebrew installation commands.
Applied to all 13 language versions of installation.md.