Repository navigation
v2.2.0
Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and
this project follows Semantic Versioning.
[2.2.0] - 2026-06-02
Added
- Full CLI tool (
stealthhumanizer/stealth-humanize) withhumanize,detect,
andproviderscommands. Supports stdin, file I/O, JSON output, all rewrite levels,
styles, tones, languages, and domains. - Two local CLI-runner providers (
claude-code,codex) that use existing CLI logins
instead of API keys β confined with disabled tools, read-only sandbox, and isolated
working directories. - Batch humanization API (
POST /api/humanize-batch) for up to 20 texts concurrently
with 3 parallel API calls. - GPTZero API integration with local heuristic fallback for AI detection scoring.
- Grammar checking API (
POST /api/grammar) with LLM-backed analysis and local fallback. - Protected region extraction/restoration β code blocks, links, URLs, and mentions are
preserved verbatim during humanization. - Rehumanize API (
POST /api/rehumanize) with regression guard that falls back to
lighter rewrites when semantic drift is detected (Jaccard + n-gram overlap). - Logistic regression human-likeness scorer (
POST /api/model-score) with 11 text
features. - File upload with magic-byte validation for PDF (pdfjs-dist), DOCX (mammoth), and TXT
extraction (max 10 MB). - Standardized API error handling module (
lib/api-response.ts) with consistent error
response format across all routes. - Shared text utilities module (
lib/text-utils.ts) deduplicating sentence splitting
and word counting. - Unit test suites for detector engine (25+ tests), rate limiter, and input validation.
- CLI regression test suite (18 tests) with mocked provider fetch and fake CLI runners.
- SEO: JSON-LD structured data, FAQ schema, programmatic robots.txt and sitemap.xml.
.env.exampledocumenting all 15 provider API key variables plus CLI overrides.- SECURITY.md supported versions table and responsible disclosure policy.
- Comprehensive troubleshooting guide (
docs/TROUBLESHOOTING.md). - GitHub issue templates for bug reports, feature requests, and API key issues.
- Release workflow for tag-based GitHub releases with changelog validation.
Changed
- Security hardening: Content-Security-Policy headers, X-Frame-Options DENY, HSTS,
X-Content-Type-Options nosniff, per-IP rate limiting (30 req/min default), SSRF
prevention via Cloudflare account ID validation, XSS-safe error responses. - API routes enforce CLI-only provider rejection β browser and serverless contexts
cannot spawnclaude-codeorcodexsubprocesses. - Detector calibrated with corpus-derived thresholds instead of static heuristics.
- Architecture doc updated to reflect current provider count and module structure.
- CLI binary path configurable via
STEALTHHUMANIZER_CLAUDE_CODE_BINand
STEALTHHUMANIZER_CODEX_BINenvironment variables.
Fixed
- Performance:
detectAI()no longer re-runs on every React render (useMemo fix). - EPIPE crash on CLI stdin when child process exits early.
- PDF upload parsing stability (pdfjs-dist replacing pdf-parse).
- Score regressions in rehumanize loop β regression guard prevents semantic drift.
- pnpm-lock.yaml synced with package.json (dotenv dependency added).
- CI/CD workflow branch triggers updated for
masterbranch. - Client bundle crash from
node:fsimport in browser-targetedstyle-model.ts. - LinkedIn URL corrected in
Footer.tsx.
Security
- Per-IP rate limiting on all API routes with configurable window.
- Input validation on all endpoints (length, type, format checks).
- File upload magic-byte validation prevents content-type spoofing.
- CLI runners confined:
claude-coderuns with--tools ""(all tools disabled);
codexruns with--sandbox read-only, isolated directory, no env inheritance. - SSRF prevention: Cloudflare account IDs validated as 32-char hex strings.
- API error responses sanitized to prevent information leakage.
[2.1.0] - 2026-04-11
Added
- Style-aware humanization engine calibrated from academic writing statistics
(OpenAlex, 11 domains, 2018β2025). - Style model capturing real human writing patterns: sentence length distribution
(mean 20.5, median 20, stddev 9.4), burstiness (0.426), vocabulary diversity
(69.4%), passive voice ratio (18.1%), transition word frequencies, and sentence
starter distributions. - Style-aware prompt builder that injects corpus-calibrated statistical targets
directly into LLM rewrite prompts. - Corpus-calibrated detection thresholds β dynamic baselines derived from real
academic writing rather than hardcoded values. - Corpus-aware post-processing engine for output refinement.
- Expanded collocation database with 50+ new AI phrase replacements (150+ total).
- Bulk paper download and ingestion pipeline (
scripts/papers/).
Changed
- Style model (
public/corpus-style-model.json) now loads viafetch()for
client-side compatibility (nonode:fsin browser bundle). - AI detector uses dynamic corpus-calibrated thresholds instead of static
heuristics.
Fixed
- LinkedIn URL corrected in
Footer.tsx. - CI/CD workflow branch triggers updated from
maintomaster. - Client bundle crash resolved by isolating
node:fsusage from browser-targeted
style-model.ts. - Markdown lint configuration fixed for Quality workflow.
[2.0.0] - 2026-03-31
Added
- 13 AI provider support with configurable API keys
- 4 rewrite levels including multi-pass ninja mode
- 13 preset writing tones and style controls
- Integrated AI detection heuristic scoring
- Readability analysis layer (Flesch-Kincaid, Gunning Fog)
- PDF and DOCX file upload support
- Grammar check integration
- Multi-language humanization support
- Browser-first API key storage (no server-side persistence)
- Side-by-side humanizer/detector workflow
- Dark/light theme toggle
- Research pipeline scripts for benchmark and training
- Comprehensive docs site with GitHub Pages deployment
Changed
- Major rewrite from initial prototype to production Next.js application
- Upgraded to Next.js 16, React 19, TypeScript 6
- Modernized CI with Node 20/22 matrix testing
- Overhauled UI with Tailwind CSS and glass-morphism design
Security
- All user data (API keys, history) stored client-side only
- No server-side persistence of user prompts or outputs
[1.0.0] - 2026-04-09
Added
- Comprehensive governance and support documentation (
SUPPORT.md, improved
contribution/security policies). - Professionalized GitHub community templates and automation (
CODEOWNERS,
Dependabot, workflow modernization). - Structured Markdown docs information architecture under
docs/for onboarding
and usage. - Release workflow for tag-based GitHub release publishing.
Changed
- Overhauled
README.mdfor professional onboarding, architecture overview, and
policy links. - Modernized CI and Pages workflows for
mainbranch and clearer quality gates. - Added repository hygiene baselines (
.editorconfig,.gitattributes, refined
.gitignore).
Removed
- Removed duplicate root-level
FUNDING.ymlin favor of.github/FUNDING.yml.
What's Changed
- Add Groq (Free)-only setup walkthrough to README and main website with 11-step visual guide by @Copilot in #93
- Fix PDF upload extraction reliability and prevent rehumanize score regressions by @rudra496 in #94
- Pipeline robustness: sentence splitter, light-mode flow, region protection, length anchors (5 bundled) by @imajus in #101
- build(deps): bump lucide-react from 1.14.0 to 1.16.0 by @dependabot[bot] in #100
- build(deps-dev): bump @tailwindcss/postcss from 4.2.4 to 4.3.0 by @dependabot[bot] in #99
- build(deps-dev): bump tsx from 4.21.0 to 4.22.0 by @dependabot[bot] in #96
- build(deps-dev): bump @types/node from 25.6.1 to 25.8.0 by @dependabot[bot] in #97
- Add first-class terminal CLI interface for StealthHumanizer by @Copilot in #103
- build(deps-dev): bump tsx from 4.22.0 to 4.22.3 by @dependabot[bot] in #104
- build(deps-dev): bump postcss from 8.5.14 to 8.5.15 by @dependabot[bot] in #107
- build(deps-dev): bump @types/node from 25.8.0 to 25.9.1 by @dependabot[bot] in #106
- Triage open issues, harden API key runtime handling, and refresh verified maintainer responses by @Copilot in #108
- build(deps-dev): bump @types/react from 19.2.14 to 19.2.15 by @dependabot[bot] in #105
- Revert #103 (Copilot CLI) per #110 by @jhubbardsf in #111
- feat(cli): add stealthhumanizer CLI for humanize, detect, and provider listing by @jhubbardsf in #109
- feat(cli): Claude Code & Codex local CLI-runner providers by @rudra496 in #113
- build(deps): bump lucide-react from 1.16.0 to 1.17.0 by @dependabot[bot] in #114
- Add local GPTZero/grammar fallbacks, robust rehumanize logic, and UI updates by @rudra496 in #115
- β‘ perf: Fix detectAI() running on every render with useMemo by @roman-ryzenadvanced in #117
- π§ͺ test: Add unit tests for rate-limit and validation modules by @roman-ryzenadvanced in #119
- β»οΈ refactor: Deduplicate sentence splitting, word counting into shared text-utils by @roman-ryzenadvanced in #118
- π§ refactor: Standardize API error handling and response format by @roman-ryzenadvanced in #120
- π docs: Fix version mismatches and add missing env vars by @roman-ryzenadvanced in #121
- π fix: Security Hardening - Headers, Rate Limiting, SSRF Fix, XSS Fix, Input Validation by @rudra496 in #132
- feat(providers): add 22 new API gateways and local runners bringing total to 35 supported providers by @cobra91 in #122
- π― feat: 4-Axis Adversarial Humanization Engine (PR-010) by @roman-ryzenadvanced in #123
- π€ feat: VoicePrint Personal Style Profiles (PR-012) by @roman-ryzenadvanced in #125
- π feat: LiteLLM Unified Provider Layer β 100+ Providers (PR-013) by @roman-ryzenadvanced in #126
- π feat: Multi-Detector Ensemble with Per-Feature Breakdown (PR-015) by @roman-ryzenadvanced in #128
- β‘ feat: Semantic Caching for LLM Calls (PR-016) by @roman-ryzenadvanced in #129
- Add streaming SSE API, semantic-fidelity checks, privacy-mode local humanizer, observability dashboard, and browser extension by @rudra496 in #135
New Contributors
- @jhubbardsf made their first contribution in #111
- @roman-ryzenadvanced made their first contribution in #117
- @cobra91 made their first contribution in #122
Full Changelog: v1.0.0...v2.2.0