• v2.1.3 b00bd6255c

    v2.1.3 Stable

    kerem released this 2026-01-29 17:30:01 +03:00 | 20 commits to main since this release

    📅 Originally published on GitHub: Thu, 29 Jan 2026 14:32:52 GMT
    🏷️ Git tag created: Thu, 29 Jan 2026 14:30:01 GMT

    Fixed

    • 🪟 Windows Spawn Error: Fixed "spawn UNKNOWN" error on Windows
      • Added Windows-specific spawn options (windowsHide, shell, stdio)
      • Process now spawns correctly with proper path resolution on Windows
      • Added helpful troubleshooting tips for Windows users when spawn fails

    Improved

    • 🔧 Better Windows Error Guidance: Enhanced error messages for Windows users
      • Detects common spawn errors (UNKNOWN, ENOENT)
      • Provides actionable troubleshooting steps:
        • Check Windows Defender/antivirus blocking
        • Try running as Administrator
        • Reinstall nport if needed
    Downloads
  • v2.1.2 8077807c20

    v2.1.2 Stable

    kerem released this 2026-01-28 08:50:33 +03:00 | 21 commits to main since this release

    📅 Originally published on GitHub: Wed, 28 Jan 2026 05:51:30 GMT
    🏷️ Git tag created: Wed, 28 Jan 2026 05:50:33 GMT

    [2.1.2] - 2026-01-28

    Fixed

    • 📊 Analytics Integration: Fixed GA4 Measurement Protocol implementation
      • Created dedicated CLI analytics stream (G-JJHG4DP1K9) separate from website
      • Fixed session_id format (now uses numeric timestamp as required by GA4)
      • Fixed engagement_time_msec to use actual number instead of string
      • Added timestamp_micros for accurate event timing
      • Removed debug endpoint that was preventing events from being recorded
      • Added proper debug logging when NPORT_DEBUG=true

    Changed

    • 📦 Optimized Bundle Size: Switched from tsc to esbuild for significantly smaller package
      • New scripts/build.js bundles and minifies CLI into single file
      • Tree-shaking removes unused code
      • Disabled TypeScript declaration and source map generation
      • Reduced files in npm package (only postinstall.js script included)
    • Faster Development: Improved watch mode with esbuild
      • Minification disabled during development for faster rebuilds
      • Concurrent watching for main CLI and bin-manager entry points
      • Better console output showing active file monitoring

    Improved

    • 🧪 Enhanced Smoke Tests: Better npm package validation in CI
      • Tests now simulate full npm pack/install flow
      • Installation tested from generated tarball
      • More accurate pre-publish validation

    Technical Details

    • esbuild Configuration:
      • Target: Node.js 20
      • Format: ESM
      • External dependencies: axios, chalk, ora (avoids CJS/ESM issues)
      • Shebang added via esbuild banner instead of source file
    • tsconfig.json: Updated with noEmit: true, esbuild handles output
    • Package Size: Significantly reduced dist folder size
    • Analytics Events: cli_start, tunnel_created, tunnel_error, tunnel_shutdown, update_available
    Downloads
  • v2.1.1 df60e3a1ba

    v2.1.1 Stable

    kerem released this 2026-01-27 13:18:33 +03:00 | 34 commits to main since this release

    📅 Originally published on GitHub: Tue, 27 Jan 2026 10:20:03 GMT
    🏷️ Git tag created: Tue, 27 Jan 2026 10:18:33 GMT

    [2.1.1] - 2026-01-27

    Fixed

    • 🐛 NPM Package Build: Fixed missing dist/ folder in published package
      • Added build step to npm-publish workflow before publishing
      • Package now includes compiled JavaScript files correctly

    Added

    • 🚀 CI/CD Workflows: Added GitHub Actions for automated deployments
      • ci.yml: Runs tests on push to main and pull requests
      • deploy-server.yml: Auto-deploys Cloudflare Worker on server changes
      • deploy-website.yml: Auto-deploys website to Cloudflare Pages on changes
    • 🧪 Server Test Configuration: Fixed Vitest config for CI environment
      • Added miniflare bindings for test environment variables
      • Tests now pass in CI without .dev.vars file
    • ⚙️ Wrangler Configuration: Added preview_urls setting to suppress warnings
    Downloads
  • v2.1.0 fe83556307

    v2.1.0 Stable

    kerem released this 2026-01-27 12:34:07 +03:00 | 35 commits to main since this release

    📅 Originally published on GitHub: Tue, 27 Jan 2026 09:35:39 GMT
    🏷️ Git tag created: Tue, 27 Jan 2026 09:34:07 GMT

    [2.1.0] - 2026-01-27

    Added

    • 🔷 Full TypeScript Migration: Complete rewrite of CLI and Server in TypeScript
      • Strict type checking enabled across the entire codebase
      • All modules converted from JavaScript to TypeScript
      • Type-safe interfaces for configuration, tunnels, analytics, and i18n
      • Better IDE support with IntelliSense and autocompletion
    • 📚 Comprehensive Documentation: New docs folder with detailed guides
      • docs/ARCHITECTURE.md: System overview, component diagrams, and data flow
      • docs/API.md: Complete API reference with endpoints and examples
      • docs/CONTRIBUTING.md: Contribution guidelines and development setup
    • 🤖 AI Context Support: Added .ai/context.md for AI-assisted development
      • Project structure and key patterns documented
      • Coding conventions and architecture decisions
      • Makes AI pair programming more effective
    • 🧪 Unit Testing with Vitest: Comprehensive test suite for CLI
      • Tests for argument parsing (tests/args.test.ts)
      • Tests for version comparison (tests/version.test.ts)
      • Tests for state management (tests/state.test.ts)
      • Easy to run with npm test
    • 📋 Code Ownership: Added .github/CODEOWNERS file
      • Clear ownership for code review assignments
      • Faster PR reviews with automatic reviewer assignment
    • 📝 Cursor Rules: Added .cursorrules for consistent AI assistance
      • Project-specific coding conventions
      • TypeScript and naming guidelines
      • Common patterns and anti-patterns
    • 🔄 Auto-download Cloudflared: Binary downloads automatically on first run
      • No need to run separate install commands
      • Seamless first-time user experience
      • Progress indicator during download
    • 🔒 Protected Subdomain Support: Enhanced error handling for reserved subdomains
      • User-friendly error message when trying to create protected subdomains (like api)
      • Formatted error output matching existing error style
      • Helpful suggestions to use alternative subdomain names
      • Prevents accidental use of backend service subdomains
    • 📋 TODO Management: Added TODO.md for tracking planned features
      • Move time limit enforcement to backend
      • Update README powered-by section
      • Track terminal link clicks

    Changed

    • 🏗️ Project Structure: Reorganized for better maintainability
      • All source code in src/ directory
      • Type definitions in src/types/
      • Shared constants in src/constants.ts
      • Tests in tests/ directory
    • 📦 Build System: Updated to TypeScript compilation
      • Uses tsc for compilation
      • Output to dist/ directory
      • Source maps for debugging
    • 🔧 Development Workflow: Improved developer experience
      • npm run dev for watch mode
      • npm run build for production
      • npm test for running tests
      • npm run lint for type checking
    • ⚙️ System Requirements: Updated to Node.js 20+
      • Minimum Node.js version: 20.0.0
      • Minimum npm version: 10.0.0
      • Better security and performance with latest LTS

    Improved

    • Better Error Messages: Enhanced user feedback for protected subdomains
      • Catches SUBDOMAIN_PROTECTED errors from backend
      • Formats error messages consistently with other error types
      • Shows actionable options when subdomain is reserved

    Fixed

    • 🐛 Intel Mac Binary Download: Fixed cloudflared binary download on Intel Macs
      • Node.js reports architecture as x64, not amd64 - now correctly mapped
      • Fixed ARM64 Macs to download the correct cloudflared-darwin-arm64.tgz binary
      • Previously ARM64 Macs were incorrectly downloading the AMD64 binary
    Downloads
  • v2.0.7 c33720a8c5

    v2.0.7 Stable

    kerem released this 2026-01-16 07:26:34 +03:00 | 44 commits to main since this release

    📅 Originally published on GitHub: Fri, 16 Jan 2026 04:29:55 GMT
    🏷️ Git tag created: Fri, 16 Jan 2026 04:26:34 GMT

    [2.0.7] - 2026-01-14

    Added

    • 🌐 Smart Network Warning System: Intelligent handling of QUIC/network connectivity issues
      • Automatic detection and filtering of QUIC protocol errors
      • User-friendly warning messages instead of scary red error spam
      • Bilingual support (English & Vietnamese)
      • Smart throttling: Shows warning only after 5 errors, max once per 30 seconds
      • Clear explanations of what's happening and how to fix it
      • Automatic reset when connection is restored
    • 🔒 Protected Subdomain Support: Enhanced error handling for reserved subdomains
      • User-friendly error message when trying to create protected subdomains (like api)
      • Formatted error output matching existing error style
      • Helpful suggestions to use alternative subdomain names
      • Prevents accidental use of backend service subdomains

    Improved

    • 🔇 Cleaner Terminal Output: No more error spam from cloudflared
      • QUIC timeout errors are now silently tracked instead of displayed
      • Network warnings filtered: "failed to accept QUIC stream", "timeout: no recent network activity", etc.
      • Only shows meaningful warnings when there's an actual persistent issue
      • Terminal stays clean and readable during normal operation
    • 📡 Better User Communication: Context-aware network issue reporting
      • Explains that QUIC failures are usually not critical
      • Tunnel continues working via HTTP/2 fallback
      • Provides actionable troubleshooting steps
      • Reassures users that the tunnel is still functional
    • Better Error Messages: Enhanced user feedback for protected subdomains
      • Catches SUBDOMAIN_PROTECTED errors from backend
      • Formats error messages consistently with other error types
      • Shows actionable options when subdomain is reserved

    Technical Details

    • Network Error Patterns: Added detection for 7 common QUIC/network error patterns
    • State Management: New network issue tracking in application state
      • networkIssueCount: Counter for network errors
      • lastNetworkWarningTime: Timestamp tracking for cooldown
      • shouldShowNetworkWarning(): Smart decision logic
    • Configuration: New NETWORK_CONFIG with threshold and cooldown settings
    • Bilingual Messages: Complete translations for all network warning messages
    • Protected Subdomain Handling: Enhanced error handling in src/api.js
      • Added check for SUBDOMAIN_PROTECTED error type
      • Consistent formatting with existing error messages
      • Clear user guidance for alternative subdomain choices

    User Experience

    Before:

    [Cloudflared] 2026-01-14T04:33:02Z ERR failed to accept QUIC stream...
    [Cloudflared] 2026-01-14T04:33:03Z ERR failed to accept QUIC stream...
    [Cloudflared] 2026-01-14T04:33:04Z ERR failed to accept QUIC stream...
    [Cloudflared] 2026-01-14T04:33:05Z ERR failed to accept QUIC stream...
    

    After:

    ✔ [1/2] Connection established...
    ✔ [2/2] Compression enabled...
    
    ⚠️  NETWORK CONNECTIVITY ISSUE DETECTED
       Cloudflared is having trouble maintaining a stable connection...
       📡 Your tunnel is still working, but connection quality may be affected.
       
       💡 Possible reasons:
          • Unstable internet connection or high packet loss
          • Firewall/Router blocking UDP traffic (QUIC protocol)
          • ISP throttling or network congestion
          
       🔧 What to try:
          • Check your internet connection stability
          • Try connecting from a different network
          • Disable VPN/Proxy if you're using one
          
       ℹ️  This is usually not critical - your tunnel should continue working normally.
    
    Downloads