TGViewer
🇺🇦 Math.random(): community of engineers 🇺🇦 Math.random(): community of engineers @mathrandomcommunity · 1.25K subscribers
Post #975 540
Друзі, у мене сьогодні реліз 🎉

jscpd v5.0.16 — три нові фічі, але головна зірка тут --summary.

Роками jscpd відповідав на одне питання: «де в мене дублікати?». Тепер він відповідає й на наступне, важливіше: «з чого почати рефакторинг?»

Що робить --summary

Флаг додає до результатів прогону карту гарячих точок: топ файлів і папок, відсортованих за токенами, рядками, розміром або оцінкою цикломатичної складності — і для кожного показує його частку дублювання.

В одному звіті ви бачите, як перетинаються два сигнали: «цей файл великий і складний» плюс «у ньому 30% скопійованого коду». Це і є ідеальний кандидат на рефакторинг — великий, заплутаний і продубльований файл болить найсильніше.

Керування

• --summary-top <n> — скільки рядків показати
• --summary-by tokens|lines|size|complexity — за якою метрикою ранжувати
• усе те саме доступне через конфіг

Без затримки сканування

Зведення рахується після детекції з даних, що вже є в пам'яті — прогони без флага не змінюються. Ви не платите часом сканування за додаткову аналітику.

Не ламає наявні інтеграції

У JSON-звіті зведення з'являється як додатковий ключ, якого немає, коли флаг вимкнено — схема для наявних споживачів не змінюється. Ваші CI-пайплайни та парсери звітів працюють як раніше.

Дружить з AI

В AI-репортері зведення виводиться компактно — один рядок на запис. Агент отримує пріоритизований список цілей для рефакторингу за мінімум токенів, замість того щоб самому розбирати весь звіт про клони.

По суті, --summary перетворює jscpd з детектора на навігатор: не просто «ось список клонів», а «ось п'ять файлів, куди дивитися першими».

Що ще в релізі

• MCP-сервер через stdio — проєкт сканується один раз при старті й тримається в пам'яті у вигляді готових до детекції токен-хешів, тому перевірка сніпета відповідає за мілісекунди. Ніяких портів і мережевих політик — клієнт сам запускає процес.
• Ізольовані групи папок для монорепо — дублікати між папками різних команд можна виключити зі звіту, а дублювання всередині папки й проти спільного коду досі репортиться. Порт вкладу зі спільноти на Rust-движок.
• Безпека — усі GitHub Actions запінені на повні SHA комітів, токени workflow за принципом найменших привілеїв, з'явилася політика безпеки з приватним каналом розкриття вразливостей.

Знайти дублікати. Знайти гарячу точку. Рефакторити першою.

👀Спробуйте --summary на своєму проекті й напишіть, що знайшли у топі. Мені щиро цікаво, які файли вилізуть у вас на перше місце.

🔗 Реліз і встановлення: github.com/kucherenko/jscpd/releases/tag/v5.0.16
💻 GitHub: github.com/kucherenko/jscpd
☕ Підтримати: opencollective.com/jscpd
GitHub Release Release v5.0.16 · kucherenko/jscpd New Features MCP server over stdio (--mcp) — cpd --mcp /path/to/project serves the Model Context Protocol on stdin/stdout, the transport MCP clients spawn and manage themselves (no port, no networ...
  • ❤ 12
  • 🔥 5
  • 👍 3
  • 👏 3
More from @mathrandomcommunity
  1. Sep 30, 2026Подивись, як AI-судді розбирають код агента👆 Це тестова гра нашої команди в ololo. Навіщо…
  2. Sep 30, 2026video post
  3. Sep 29, 2026Найнебезпечніша фраза від AI-агента: «Готово, тести проходять». Мій агент пише її щодня. З…
  4. Sep 29, 2026video post
  5. Sep 24, 2026Нова модель Jev від TypeSafe AI стала однією з найпомітніших новинок останнього тижня 🆕 Я…
  6. Sep 21, 2026Ваш агент платить за генерацію тексту там, де йому потрібна відповідь «так» або «ні». Таке…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →