Update dependency txn2/kubefwd to v1.25.9 #1347
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.22.5→v1.25.9Release Notes
txn2/kubefwd (txn2/kubefwd)
v1.25.9: kubefwd-v1.25.9Compare Source
MCP Server Improvements
Graceful Startup Without API Connection
The MCP server now starts and registers all tools even when the kubefwd API is unavailable. This enables:
Consistent Error Handling
All MCP tool handlers now return structured
ProviderUnavailableErrorresponses with:Example error response:
{ "code": "provider_unavailable", "message": "State reader not available", "diagnosis": "kubefwd may not be running. Start it with: sudo -E kubefwd", "suggested_actions": [{"action": "get_health", "hint": "Check kubefwd status"}], "retry_recommended": true }New Files
glama.json: Configuration for Glama.ai MCP registry claimingdocs/images/kubefwd-logo.svg: Logo asset for documentationTesting
cmd/kubefwd/mcp/mcp_test.go)cmd/kubefwd/mcp: 0% → 13.5%Upgrade Notes
This is a non-breaking change. The MCP server behavior is improved but maintains backward compatibility. Users who previously ran
kubefwd mcpwithout the API available will now see the server start (with warnings) instead of immediately exiting.Full Changelog
NewProviderUnavailableErrorglama.jsonconfiguration file for registry claimingChangelog
7881c5aFix gofmt -s simplification issues6efedb9MCP server improvements (#372)dd8a3d2Quality/gocyclo (#363)cd084caQuality/housekeeping (#369)080853cReplace outdated TUI guide with revamped User Guide (#360)bdacb6dRevert "Fix gofmt -s simplification issues"6ad2509Tests/coverage (#362)b96ea6dci: bump actions/checkout from 4.2.2 to 6.0.1 (#370)a961053ci: bump actions/setup-go from 5.2.0 to 6.1.0 (#368)a84426dci: bump codecov/codecov-action from 5.4.3 to 5.5.2 (#365)9e9da2dci: bump github/codeql-action from 3.27.9 to 4.31.9 (#367)f265619ci: bump golangci/golangci-lint-action from 6.1.1 to 9.2.0 (#366)e8b851fci: bump ossf/scorecard-action from 2.4.1 to 2.4.3 (#364)v1.25.8: kubefwd-v1.25.8Compare Source
Bug Fixes
fix: Windows hosts path auto-detection (#359) - kubefwd now automatically detects the correct hosts file path based on the operating system:
C:\Windows\System32\drivers\etc\hosts/etc/hostsPreviously, the
--hosts-pathflag defaulted to/etc/hostson all platforms, causing kubefwd to fail immediately on Windows with "Hosts path does not exist: /etc/hosts".Changes
runtimeimport to detect OS at runtimedefaultHostsPath()function that returns OS-appropriate path--hosts-pathflag to use dynamic defaultWindows Support
This release fixes a critical issue that prevented kubefwd from running on Windows without manually specifying the
--hosts-pathflag. Windows users can now run kubefwd without any additional configuration:Before (Windows):
After (Windows):
Installation
Windows
Download from GitHub Releases and extract to your PATH.
macOS (Homebrew)
Linux
Download from GitHub Releases or use your package manager.
Verifying This Release
All release artifacts are signed with Sigstore for supply chain security. Each binary archive has its own
.sigstore.jsonsignature bundle.Verify Individual Binaries
Verify Checksums File
Available Signed Artifacts
kubefwd_Linux_x86_64.tar.gzkubefwd_Linux_x86_64.tar.gz.sigstore.jsonkubefwd_Linux_arm64.tar.gzkubefwd_Linux_arm64.tar.gz.sigstore.jsonkubefwd_Linux_armv6.tar.gzkubefwd_Linux_armv6.tar.gz.sigstore.jsonkubefwd_Linux_i386.tar.gzkubefwd_Linux_i386.tar.gz.sigstore.jsonkubefwd_Darwin_x86_64.tar.gzkubefwd_Darwin_x86_64.tar.gz.sigstore.jsonkubefwd_Darwin_arm64.tar.gzkubefwd_Darwin_arm64.tar.gz.sigstore.jsonkubefwd_Windows_x86_64.zipkubefwd_Windows_x86_64.zip.sigstore.jsonkubefwd_Windows_i386.zipkubefwd_Windows_i386.zip.sigstore.jsonDocker Image Verification
v1.25.7: kubefwd-v1.25.7Compare Source
TUI Browse Modal
Introduces an interactive Browse Modal for discovering and forwarding Kubernetes services directly from the TUI. Press
fto open a hierarchical browser that navigates through contexts, namespaces, and services - then forward individual services or entire namespaces without leaving the interface.Browse Modal Features
cto switch Kubernetes contextsKeyboard Shortcuts
fj/↓k/↑gGEnter/→Esc/←/qcUse Case
Start kubefwd with minimal namespaces, then dynamically add services as needed:
Bug Fixes
Pod Logs Streamer Reliability
Fixed nil interface issues with clientSet initialization in the TUI pod logs streamer. Improved namespace manager integration ensures reliable log streaming.
Log Spam Prevention
ServiceFWD now tracks "no pods" warnings with a flag to prevent repeated log messages. The flag resets when pods become available, allowing future warnings if pods disappear again.
Test Coverage Improvements
Significant expansion of TUI test coverage:
pkg/fwdtuipkg/fwdtui/eventspkg/fwdtui/stateNew test files:
browse_test.go— 1,277 lines covering BrowseModel navigation, loading states, error handlingtui_test.go— 1,712 lines covering RootModel, event handling, and UI componentsDocumentation
Updated API reference and OpenAPI specification with documentation for Kubernetes pod debugging and event endpoints (no new code, documentation only).
CI Updates
codeql-action/upload-sarifversion in Scorecard workflowNo MCP/API Code Changes
This release contains no changes to the MCP server or REST API functionality. All MCP tools (29 total) continue to work as documented in v1.25.6.
Changes
Full Changelog
Changelog
269f550Add Kubernetes pod debugging and event APIs (#357)3f0f812Documentation and badge housekeepin (#352)f259e34Housekeeping/documentation (#356)addd289Potential fixes for 2 code quality findings (#353)fc2215fPotential fixes for 3 code quality findings (#354)56ad479Potential fixes for 3 code quality findings (#355)1351ad1TUI Browse Modal & Tests (#358)ebe298bci: bump actions/setup-python from 5.3.0 to 6.1.0 (#349)76a9fadci: bump actions/upload-artifact from 4.6.1 to 6.0.0 (#345)118f9deci: bump anchore/sbom-action from 0.18.0 to 0.21.0 (#347)a15b5f1ci: bump docker/setup-buildx-action from 3.7.1 to 3.12.0 (#348)49b7db3ci: bump sigstore/cosign-installer from 3.7.0 to 4.0.0 (#346)v1.25.6: kubefwd-v1.25.6Compare Source
Fixes critical issues with the Kubernetes discovery MCP tools introduced in v1.25.5. The tools were defined but their HTTP API routes were not registered, causing 404 errors.
Fixed: Missing API Routes
The following MCP tools now work correctly:
get_pod_logs/v1/kubernetes/pods/:namespace/:podName/logslist_pods/v1/kubernetes/pods/:namespaceget_pod/v1/kubernetes/pods/:namespace/:podNameget_events/v1/kubernetes/events/:namespaceget_endpoints/v1/kubernetes/endpoints/:namespace/:serviceNameFixed: Response Format Errors
list_podsget_eventsFixed: get_connection_info Without Namespace
Previously, calling
get_connection_infowith only a service name (no namespace) would return 404. Now it:Changes
Full Changelog
Changelog
516bdc3Fix Missing Kubernetes API Routes for MCP (#351)60238c7deps: bump github.com/bep/debounce from 1.2.0 to 1.2.1 (#344)v1.25.5: kubefwd-v1.25.5Compare Source
MCP Kubernetes Discovery Enhancements
Expands MCP server capabilities with comprehensive Kubernetes read operations for debugging and discovery. Previously, users could not inspect Kubernetes resources beyond forwarded services through the MCP interface.
New MCP Tools (5 tools)
get_pod_logslist_podsget_podget_eventsget_endpointsUse Cases
Claude Desktop (or any MCP client) can now:
Debug a failing service:
list_podswith service_name filterget_podfor detailed statusget_eventsfor scheduling/pulling/startup eventsInvestigate pod issues:
get_pod_logsget_pod_logswith previous=trueget_podwith container detailsVerify service routing:
get_endpointsshows ready vs not-ready addressesComplete MCP Tool Inventory (29 tools)
Forwarding Management (7): add_namespace, remove_namespace, add_service, remove_service, reconnect_service, reconnect_all_errors, sync_service
Service Discovery (7): list_services, get_service, find_services, list_k8s_namespaces, list_k8s_services, list_contexts, get_connection_info, list_hostnames
Pod Operations (5) — NEW: list_pods, get_pod, get_pod_logs, get_events, get_endpoints
Monitoring & Diagnostics (10): get_health, get_quick_status, get_metrics, get_http_traffic, get_analysis, diagnose_errors, get_logs, get_history
OpenSSF Scorecard
Added OpenSSF Scorecard workflow for security best practices monitoring. The scorecard analyzes the repository for security posture including branch protection, dependency management, and code review practices.
Changes
Full Changelog
v1.25.4: kubefwd-v1.25.4Compare Source
This release focuses on MCP tool response, code quality improvements, test reliability, and bug fixes identified by GitHub's security scorecard and code quality analysis tools.
Bug Fixes
MCP Tool Response Format
list_services,add_namespace, etc.add_namespacereported "Discovered 0 services" despite successful forwardingSLSA Provenance Generation
.zip) didn't existfindcommand to reliably locate all artifacts before hashingTest Improvements
Eliminated Flaky Tests
time.Sleeppatterns with proper synchronization usingwaitForConditionhelperpkg/fwdsvcregistrynow poll for conditions instead of arbitrary delaysRace Condition Fixes
sync.Oncewith mutex-protected bool inpkg/fwdapi/manager.goandpkg/fwdapi/logbuffer.goCode Quality
string(rune('0'+i))patterns withfmt.Sprintffor claritycontainshelper withstrings.ContainsBuild/CI Improvements
~> v2.13in both CI and release workflowsFull Changelog
Changed Files
.github/workflows/ci.yml- Pin GoReleaser version.github/workflows/release.yml- Pin GoReleaser version, fix hash generationpkg/fwdapi/logbuffer.go- Replace sync.Once with mutex patternpkg/fwdapi/logbuffer_test.go- Improve test reliability and claritypkg/fwdapi/manager.go- Replace sync.Once with mutex patternpkg/fwdapi/manager_test.go- Update for new initialization patternpkg/fwdmcp/httpclient_test.go- Fix invalid port numberpkg/fwdmcp/tools.go- Return nil CallToolResult for proper JSON responsespkg/fwdmcp/tools_test.go- Update tests for new handler behaviorpkg/fwdmetrics/httpsniff_test.go- Replace confusing string expressionspkg/fwdns/manager_test.go- Use strings.Containspkg/fwdsvcregistry/fwdsvcregistry_test.go- Add waitForCondition, eliminate time.SleepChangelog
0271289MCP Registry Readiness (#341)1f7def5MCP and Test Quality Improvements (#342)v1.25.3: kubefwd-v1.25.3Compare Source
Changelog
41931d2Improve Unit Test Coverage (#340)v1.25.2: kubefwd-v1.25.2Compare Source
This release focuses on security improvements, OpenSSF Scorecard compliance, and MCP bug fixes.
Highlights
Security Fix: IP Parsing Bounds Validation
Fixed CodeQL security alert for incorrect integer conversion in IP parsing. The
ipFromString()function now validates that each octet is within 0-255 bounds before casting to byte, preventing potential overflow issues.MCP Bug Fixes
remove_namespaceno longer corrupts state for subsequentadd_servicecallsadd_namespacenow correctly reports discovered service count via direct K8s API queryOpenSSF Scorecard Improvements
MCPB Bundle Signing
MCPB bundles are now signed with Cosign and included in SLSA provenance attestation for enhanced supply chain security.
What's New
Security
ipFromStringfor malformed input (#336)Bug Fixes
remove_namespacecorrupting state for subsequentadd_servicecalls (#338)add_namespacereporting "Discovered 0 services" (#338)StatusPendingandStatusStopping(#338)fwdsvcregistry.GetAll()(#338)Build/CI
Testing
Dependencies
github.com/quic-go/quic-gofrom 0.54.0 to 0.57.0Installation
Homebrew (macOS/Linux)
Claude Desktop (MCPB)
Download the appropriate
.mcpbfile for your platform and double-click to install.Binary Download
Download the appropriate archive for your platform from the release assets.
Docker
Package Managers
kubefwd_amd64.apk,kubefwd_arm64.apkkubefwd_amd64.deb,kubefwd_arm64.debkubefwd_amd64.rpm,kubefwd_arm64.rpmChecksums & Verification
All release artifacts include:
kubefwd_checksums.txtkubefwd_checksums.txt.sigstore.jsonVerify signatures with:
Breaking Changes
None.
Upgrade Notes
This is a drop-in replacement for v1.25.1. No configuration changes required.
Contributors
Thanks to all contributors who made this release possible.
Full Changelog
See the commit log for the complete list of changes.
Changelog
b4ffd89Add fuzz testing to CI workflow6345ab0Add fuzz tests and fix panic in ipFromStringa7735faFix CodeQL autobuild and improve Scorecard compliancec762a68Fix CodeQL security alert (#339)8bbb961Fix MCPB build script for goreleaser arm64 directory namingbdd56ddImprove OpenSSF Scorecard - Pin dependencies and restrict token permissions (#337)64510b0MCP Bug Fixes and Improvements (#338)ce94be8Pin mkdocs-material version in docs workflowcafed0bSign MCPB bundles with Cosign and include in SLSA provenance56615cfdeps: bump github.com/quic-go/quic-go from 0.54.0 to 0.57.0v1.25.1: kubefwd-v1.25.1Compare Source
This release focuses on MCP (Model Context Protocol) stability improvements, MCPB bundle distribution for Claude Desktop, and enhanced test coverage.
Highlights
MCPB Bundle Support for Claude Desktop
kubefwd now ships with
.mcpbbundles for one-click installation in Claude Desktop:kubefwd-1.25.1-darwin-amd64.mcpbkubefwd-1.25.1-darwin-arm64.mcpbkubefwd-1.25.1-windows-amd64.mcpbSimply download and double-click to install kubefwd as an MCP server in Claude Desktop.
MCP Stability Improvements
add_servicerace condition - The tool now waits for pod discovery to complete before returning, ensuring services appear in state immediately with correct connection infoEvent Bus Enhancements
NamespaceRemovedevent type for proper cleanup coordinationWhat's New
Features
NamespaceRemovedevent type and handler for TUI cleanupRemoveByNamespacemethod to clean up orphaned forwards and servicesPodAddedevent subscription for accurate service initializationBug Fixes
add_serviceMCP tool that returned before pod discovery completedDocumentation
Testing
RemoveByNamespacefunctionalityDependencies
golang.org/x/cryptofrom 0.44.0 to 0.45.0Installation
Homebrew (macOS/Linux)
Claude Desktop (MCPB)
Download the appropriate
.mcpbfile for your platform and double-click to install.Binary Download
Download the appropriate archive for your platform from the release assets.
Docker
Package Managers
kubefwd_amd64.apk,kubefwd_arm64.apkkubefwd_amd64.deb,kubefwd_arm64.debkubefwd_amd64.rpm,kubefwd_arm64.rpmChecksums & Verification
All release artifacts include:
kubefwd_checksums.txtkubefwd_checksums.txt.sigstore.jsonVerify signatures with:
Breaking Changes
None.
Upgrade Notes
This is a drop-in replacement for v1.25.0. No configuration changes required.
Contributors
Thanks to all contributors who made this release possible.
Full Changelog
See the commit log for the complete list of changes.
Changelog
2514351Add API documentation image to reference guide6bd4863Add MCP mode detection and banner suppression logic6d7d1d0AddNamespaceRemovedevent type and its handler833ee0bAddRemoveByNamespaceto clean up orphaned forwards and servicesf52eeafAdd script and workflows to build and upload MCPB bundles6af4115Add test utilities and integration tests for MCP state management6078193Add tests forRemoveByNamespacein store8a0b841Add tests for namespace blocking and unblocking behavior in state store684f61aAdd unsubscribe logic and tests for event handlers in Bus implementation8b5b215Emit NamespaceRemoved event after service removal77fc7dcFix typo in README: correct "API Refrence" to "API Reference"b6439a0HandleNamespaceRemovedevent in TUIe95fad3Improve context handling and logging for namespace and service operations0c07d77Prevent race conditions during namespace removal by introducing blocking/unblocking logic in the state store5111771Revise and expand MCP integration guide with enhanced feature descriptions971c307Specify required parameters in MCP tool descriptions6695eb4Subscribe toPodAddedevents for services to ensure accurate initialization4aca09fUpdate README with new links for API Reference and MCP Integrationda3255fdeps: bump golang.org/x/crypto from 0.44.0 to 0.45.0v1.25.0: kubefwd-v1.25.0Compare Source
This is a major release introducing a REST API for programmatic control and an MCP (Model Context Protocol) server for AI assistant integration. Developers can now manage port forwards dynamically through API calls or by chatting with AI tools like Claude Desktop, Cursor, and VS Code Copilot. This release also introduces "idle mode" for daemon-style operation, allowing kubefwd to start without any namespaces and add them on-the-fly.
Highlights
New Features
REST API (PR #330)
kubefwd now includes a comprehensive REST API built with Gin, enabling programmatic control over port forwarding:
API Features
http://kubefwd.internal/docs/api/v1/events/api/v1/analyzeand/api/v1/statusdesigned for LLM consumptionKey Endpoints
GET /api/health,/api/infoGET/POST/DELETE /api/v1/servicesGET /api/v1/forwardsGET/POST/DELETE /api/v1/namespacesGET /api/v1/metrics[/services]GET /api/v1/logs[/stream]GET /api/v1/events(SSE)GET /api/v1/diagnosticsGET /api/v1/analyze,/api/v1/statusGET /api/v1/history/*GET /api/v1/kubernetes/*Example: Add a Namespace Dynamically
MCP Server Integration (PR #330)
kubefwd now includes a full Model Context Protocol server for seamless AI assistant integration:
MCP Capabilities
Available Tools
list_services,get_service,find_servicesadd_namespace,remove_namespace,add_service,remove_servicereconnect_service,reconnect_all_errors,sync_serviceget_metrics,get_logs,get_http_trafficlist_k8s_namespaces,list_k8s_services,list_contextsdiagnose_errors,get_health,get_analysis,get_quick_statusget_connection_info,list_hostnamesget_historyAvailable Resources
kubefwd://serviceskubefwd://forwardskubefwd://metricskubefwd://summarykubefwd://errorskubefwd://statuskubefwd://http-traffickubefwd://contextsAvailable Prompts
setup_local_devconnection_guideforward_namespacetroubleshootfix_errorsdebug_servicequick_connectanalyze_issuesexplain_statusmonitorClaude Desktop Integration
Add to
~/Library/Application Support/Claude/claude_desktop_config.json(macOS):{ "mcpServers": { "kubefwd": { "command": "kubefwd", "args": ["mcp"], "env": { "KUBECONFIG": "/Users/you/.kube/config" } } } }Then chat naturally with Claude:
Cursor Integration
Add to Cursor settings:
{ "mcp": { "servers": { "kubefwd": { "command": "sudo", "args": ["-E", "kubefwd", "mcp"], "type": "stdio" } } } }Idle Mode (PR #330)
kubefwd can now run without specifying namespaces upfront, enabling daemon-style operation:
This is particularly useful for:
Namespace Manager (PR #330)
New dynamic namespace management system (
pkg/fwdns):Security Improvements
CORS Origin Whitelist
The API now uses an explicit origin whitelist instead of
Access-Control-Allow-Origin: *:Bounded Memory Allocations (CWE-770)
All ring buffer allocations now have explicit bounds to prevent memory exhaustion:
Improvements
AI-Friendly Error Handling
Errors now include machine-readable codes and suggested actions:
{ "error": { "code": "CONNECTION_REFUSED", "message": "Failed to connect to pod", "suggestion": "The pod may not be ready. Try 'reconnect_service' after the pod is running.", "affectedService": "postgres.default.minikube" } }Event History
New ring buffer-based history system tracks:
HTTP Traffic Inspection
Monitor HTTP requests flowing through port forwards:
OpenAPI Documentation
Interactive API documentation available at
/docs:Testing
New Test Coverage
Comprehensive tests added for all new packages:
Test Infrastructure
-raceflagBuild and Infrastructure
New Packages
pkg/fwdapipkg/fwdapi/handlerspkg/fwdapi/middlewarepkg/fwdapi/typespkg/fwdapi/historypkg/fwdmcppkg/fwdnsDependencies
New dependencies for this release:
github.com/gin-gonic/gin- HTTP frameworkgithub.com/modelcontextprotocol/go-sdk/mcp- MCP protocolDocumentation
New Documentation
/openapi.yamlUpdated Documentation
Bug Fixes
*)time.Now().Sub()to usetime.Since()idiomBreaking Changes
None. This release is fully backward compatible with v1.24.x.
The new features are opt-in:
--apiflag or idle mode)kubefwd mcp)Installation
Homebrew (macOS/Linux)
Docker
Binary Downloads
Download pre-built binaries from the GitHub Releases page.
Available for:
Package Managers
kubefwd_arm64.apk,kubefwd_amd64.apkkubefwd_arm64.deb,kubefwd_amd64.debkubefwd_arm64.rpm,kubefwd_amd64.rpmVerifying Downloads
Verify Checksum Signature
Verify Docker Image
Upgrade Notes
Upgrading from v1.24.x should be seamless. New features are opt-in.
Try the REST API
Try MCP with Claude Desktop
Try Idle Mode
Full Changelog
See the commit history for the complete list of changes.
Changelog
8c5bc5cAdd AI-focused analysis and status handlers00bc8adAdd API adapters and handlers forfwdapipackage69bc443Add API documentation handlers and unit tests80835acAdd API response and metadata types forfwdapipackagec9638aeAdd HTTP client methods and controllers for MCP API integration0008590Add HTTP traffic inspection handlers for forwards and servicesf502482Add HTTP-based MCP server integration and related API adaptersfeced12Add HTTP-based providers for Analysis, Traffic, and History APIs234ad96Add KubernetesHandler for resource discovery and API integrationf6eedd7Add MCP command integration to kubefwd CLI98d820aAdd MCP mode and server integration with support for diagnostics, metrics, and service controlde810f2](https://redirect.github.com/txn2Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.