Skip to content

9.1.0

Choose a tag to compare

@bgauryy bgauryy released this 15 Dec 19:03
3c911f2

Changelog - PR #236: Build System Modernization

[Unreleased]

version: "9.1.0"

Added

  • Standalone Binary Distribution - Pre-compiled binaries for all major platforms without Node.js dependency
    • macOS (Apple Silicon & Intel)
    • Linux (x64, ARM64, Alpine/musl)
    • Windows (x64)
  • One-line Installer Script - curl -fsSL https://raw.githubusercontent.com/bgauryy/octocode-mcp/main/install/install.sh | sh
  • Bun Build Scripts - Cross-compilation support via bun build --compile
    • build:bin - Build for current platform
    • build:bin:all - Build for all platforms
    • build:bin:darwin-arm64, build:bin:darwin-x64, build:bin:linux-x64, etc.
  • tsup Configuration - Modern esbuild-based bundler replacing Rollup
  • Type Export - FileContentQuery type now explicitly exported from schema

Changed

  • Build System - Migrated from Rollup to tsup (esbuild)
    • Faster builds with esbuild
    • Simpler configuration via tsup.config.ts
    • Tree-shaking enabled by default
  • Schema Validation - FileContentQuerySchema refactored to use superRefine()
    • Better error messages with specific paths (['fullContent'], ['startLine'])
    • Can report multiple validation failures simultaneously
  • Package Search Schema - Refactored to use flat field definitions avoiding deep type inference
  • Dependencies Upgraded
    • @typescript-eslint/*: 6.x → 8.x
    • zod: 3.23.8 → 3.24.0
    • typescript: 5.9.2 → 5.9.3
    • Added: tsup, tslib, eslint-config-prettier, eslint-plugin-prettier
  • Error Handling - Empty catch blocks replace unused error variables (ESLint v8 compliance)

Removed

  • Rollup Configuration - rollup.config.js and rollup-plugin-string dependency
  • Separate TypeScript Build Config - tsconfig.build.json (tsup handles compilation)
  • Type Declarations from Package - .d.ts files no longer published (binary-focused distribution)

Breaking Changes

  • GitHubReposSearch Validation - Now requires at least one of keywordsToSearch or topicsToSearch
    • Queries with only owner filter will fail validation
    • Error message: "At least one of 'keywordsToSearch' or 'topicsToSearch' is required"

Fixed

  • Formatting Consistency - Standardized conditional expression formatting across codebase
  • Type Safety - Improved generic constraints in createSuccessResult<T extends Record<string, unknown>>

Migration Guide

For Binary Users (New!)

# Install standalone binary (no Node.js required)
curl -fsSL https://raw.githubusercontent.com/bgauryy/octocode-mcp/main/install/install.sh | sh

# Configure MCP client
{
  "mcpServers": {
    "octocode": {
      "command": "~/.local/bin/octocode-mcp"
    }
  }
}

For npm Users

No changes required - npx octocode-mcp continues to work.

For API Consumers

If you're using githubSearchRepositories with owner-only queries:

// Before (now fails validation)
{ owner: "microsoft", limit: 10 }

// After (add keywords or topics)
{ owner: "microsoft", keywordsToSearch: ["*"], limit: 10 }
// or
{ owner: "microsoft", topicsToSearch: ["typescript"], limit: 10 }

Files Changed Summary

Category Files Lines Added Lines Removed
Build Config 4 46 58
Schema 3 50 33
Source 10 27 30
Tests 12 152 217
Dependencies 4 507 312
Documentation 2 243 1
Total 36 1043 709

Related Links

  • PR: #236
  • Branch: build