From 6edb6503401f6b0598b721aaa5d058fa9ffea4fd Mon Sep 17 00:00:00 2001 From: Snider Date: Thu, 5 Feb 2026 10:27:00 +0000 Subject: [PATCH] Introduce typed messaging system for IPC (#322) * Introduce typed messaging system for IPC using Go generics This change replaces the interface{}-based IPC system with a type-safe alternative using Go generics. Key changes: - Added generic dispatch functions: Action, Ask, AskAll, Perform. - Added inference-based dispatch functions: DispatchQuery, DispatchTask using the new Request[R] marker interface. - Added type-safe registration: RegisterAction, RegisterQuery, RegisterTask. - Migrated pkg/git, pkg/agentic, and internal/cmd/dev to the new system. - Updated documentation and added comprehensive tests. - Re-exported all new types and functions in the framework package. This provides compile-time type guarantees for messages and their responses, significantly improving maintainability and refactorability. * Introduce typed messaging system for IPC using Go generics This change replaces the interface{}-based IPC system with a type-safe alternative using Go generics. Key changes: - Added generic dispatch functions: Action, Ask, AskAll, Perform. - Added inference-based dispatch functions: DispatchQuery, DispatchTask using the new Request[R] marker interface. - Added type-safe registration: RegisterAction, RegisterQuery, RegisterTask. - Migrated pkg/git, pkg/agentic, and internal/cmd/dev to the new system. - Updated documentation and added comprehensive tests. - Re-exported all new types and functions in the framework package. - Fixed formatting issues. This provides compile-time type guarantees for messages and their responses, significantly improving maintainability and refactorability. * Introduce typed messaging system for IPC and fix CI workflows This change replaces the interface{}-based IPC system with a type-safe alternative using Go generics. Key framework changes: - Added generic dispatch functions: Action, Ask, AskAll, Perform. - Added inference-based dispatch functions: DispatchQuery, DispatchTask using the new Request[R] marker interface. - Added type-safe registration: RegisterAction, RegisterQuery, RegisterTask. - Re-exported all new types and functions in the framework package. Migrations: - Migrated pkg/git, pkg/agentic, and internal/cmd/dev to the new system. - Updated documentation and added comprehensive tests. CI/Workflow fixes: - Added GH_REPO environment variable to auto-merge.yml to fix "not a git repository" error in reusable workflows. - Fixed incorrect/future versions of GitHub Actions across all workflow files (e.g., actions/checkout@v6 -> v4, actions/setup-go@v6 -> v5). This provides compile-time type guarantees for messages and their responses, significantly improving maintainability and refactorability. * Introduce typed messaging system for IPC and fix CI workflows This change replaces the interface{}-based IPC system with a type-safe alternative using Go generics. Key framework changes: - Added generic dispatch functions: Action, Query, QueryAll, Perform. - Added inference-based dispatch functions: DispatchQuery, DispatchTask using the new Request[R] marker interface. - Added type-safe registration: RegisterAction, RegisterQuery, RegisterTask. - Re-exported all new types and functions in the framework package. Migrations: - Migrated pkg/git, pkg/agentic, and internal/cmd/dev to the new system. - Updated documentation and added comprehensive tests in query_test.go and ipc_test.go. CI/Workflow fixes: - Added GH_REPO environment variable to auto-merge.yml to fix "not a git repository" error in reusable workflows. - Fixed incorrect/future versions of GitHub Actions across all workflow files (e.g., actions/checkout@v6 -> v4, actions/setup-go@v6 -> v5). This provides compile-time type guarantees for messages and their responses, significantly improving maintainability and refactorability. * feat(framework): introduce type-safe IPC messaging system Implemented a generic-based messaging system for ACTION, QUERY, and PERFORM patterns to provide compile-time guarantees and improve maintainability. - Introduced generic functions Ask, AskAll, Perform, and Action in framework package. - Added Request[R] interface for type inference with DispatchAsk and DispatchTask. - Migrated git, agentic, and dev services to the new typed handlers. - Updated core tests to verify the new typed system. - Fixed non-existent action versions in CI workflows (v6/v7/v8 to v4). - Updated README.md documentation with usage examples for the typed system.