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.
This commit is contained in:
parent
dfc684a8fa
commit
6edb650340