Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ffb8ef7
improve history handler + storage test coverage
Badoot Jun 19, 2026
0c60cf3
dissolve dangling test file
Badoot Jun 19, 2026
3f2c151
improve storage test coverage
Badoot Jun 19, 2026
7f3868c
rm unnecessary sliceutil
Badoot Jun 19, 2026
93af502
rm slices
Badoot Jun 19, 2026
fa96e7c
pubsub and network test coverage
Badoot Jun 19, 2026
644f84b
cli auth test coverage
Badoot Jun 19, 2026
d943f8a
improve migration test
Badoot Jun 19, 2026
d4199e9
fix lints
Badoot Jun 19, 2026
4e9c6f9
rm make test-short
Badoot Jun 19, 2026
ce1d8da
dissolve scenario tests
Badoot Jun 19, 2026
e80b5b0
improve cli tests
Badoot Jun 19, 2026
364ebd4
process unix test coverage
Badoot Jun 19, 2026
86ef8e9
clarify emulator naming
Badoot Jun 19, 2026
588031c
improve signal defs
Badoot Jun 19, 2026
f09fe28
fix errors in tests
Badoot Jun 19, 2026
88a430c
dissolve interfaces
Badoot Jun 19, 2026
d2ee208
centralize posture defs + rm unused mocks
Badoot Jun 19, 2026
fa37ead
move emulator to test dir
Badoot Jun 19, 2026
fae6fc1
cleanup httpclient dir
Badoot Jun 19, 2026
f812497
cleanup constants
Badoot Jun 20, 2026
94d1429
go fmt
Badoot Jun 20, 2026
71cf5b4
rm nonsensical tests
Badoot Jun 20, 2026
366e6ae
improving error typing
Badoot Jun 20, 2026
8dbd213
more error typing
Badoot Jun 20, 2026
7e3b6c7
more error typing fixes
Badoot Jun 20, 2026
9eff9b3
governance errors
Badoot Jun 20, 2026
c98c023
test error updates and fixes
Badoot Jun 20, 2026
f91afb8
test fixes
Badoot Jun 20, 2026
c1d9c4a
fix error capital
Badoot Jun 20, 2026
a7d0949
update schema
Badoot Jun 20, 2026
a370f19
more schema cleanup
Badoot Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.1.5] - 2026-06-20

### Overview

v1.1.5 is a code quality and test coverage release that focuses on error typing improvements, comprehensive test coverage expansion, and codebase cleanup. This release dissolves unnecessary abstractions, centralizes posture definitions, and significantly improves test coverage across CLI, pubsub, network, storage, and history handler components.

### Changed

* **Error Typing Improvements** — Systematically improved error typing across governance and storage services for better error handling and consistency.
* **Test Coverage Expansion** — Significantly improved test coverage for CLI auth, pubsub, network operations, storage services, and history handler.
* **Emulator Reorganization** — Moved agentic tool emulator to test directory for better code organization.
* **Scenario Test Dissolution** — Dissolved scenario tests into standard integration tests for improved maintainability.
* **Codebase Cleanup** — Removed unnecessary utilities (slices, sliceutil), unused mocks, and dissolved unnecessary interfaces.
* **Posture Definitions Centralization** — Centralized posture definitions and removed duplicate code.
* **Signal Definitions Improvements** — Improved signal definitions for better clarity and consistency.
* **Constants Cleanup** — Cleaned up constants and removed deprecated entries.
* **HTTP Client Directory Cleanup** — Reorganized HTTP client directory structure.

### Fixed

* **Test Errors** — Fixed various test errors and improved test reliability across multiple test suites.
* **Lint Issues** — Addressed linting issues identified by static analysis tools.
* **Code Formatting** — Applied gofmt and standardized code formatting.

## [1.1.4] - 2026-06-19

### Overview
Expand All @@ -19,6 +43,7 @@ v1.1.4 is a code quality and test coverage release that significantly improves t

### Breaking Changes

* **`emulator` renamed to `agentic-tool-emulator`** - The emulator CLI command and internal package are renamed to `agentic-tool-emulator` for clarity. Directory renamed from `internal/emulator` to `internal/agentic_tool_emulator`, CLI command changed from `g8e emulator` to `g8e agentic-tool-emulator`, and all references in code, documentation, and configuration files are updated accordingly.
* **`insecure_mcp` renamed to `local_http_stdio`** - The insecure MCP mode is renamed to `local_http_stdio` for clarity. Service directory, package names, constants, JSON keys, and all references are updated accordingly.

### Changed
Expand Down Expand Up @@ -407,7 +432,7 @@ v1.0.10 is a major release that hardens the platform's security posture, simplif
* **Storage layer refactor** — Major refactor of the storage subsystem:
* `TokenStoreService.KVScanPrefix` now decrypts values (previously returned encrypted ciphertext).
* Removed dead `TextScrubber` dependency from `ExecutionVaultService`.
* Chaos test infrastructure moved to `internal/test/chaos/`.
* Chaos test infrastructure moved to `test/chaos/`.

* **Gateway architecture** — Decomposed gateway HTTP handling into dedicated controllers:
* `AuthController` — authentication, enrollment, and session management.
Expand Down
38 changes: 13 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ TEST_TIMEOUT := 180s
TEST_SHORT_TIMEOUT := 180s
TEST_RACE := $(if $(filter windows,$(HOST_OS)),,-race)
TEST_COUNT := -count=1
COVERAGE_THRESHOLD := 65
COVERAGE_THRESHOLD := 70

# =============================================================================
# COVERAGE EXCLUSIONS — single source of truth
Expand All @@ -61,11 +61,11 @@ COVERAGE_THRESHOLD := 65
EXCLUDE_PKGS := \
mocks \
/cmd/ \
/internal/test \
/test/ \
/internal/protocol/proto \
/internal/contracts \
/internal/interfaces \
/internal/constants \
/internal/services/gateway/docs \
/internal/services/gateway/scripts \
/internal/services/storage/storagetest
Expand Down Expand Up @@ -133,20 +133,13 @@ help:
@echo ""
@echo "Test:"
@echo " test Run all tests (unit + integration)"
@echo " test-short Run short tests with race detection"
@echo " test-pkg-<path> Run tests for a specific package (e.g., make test-pkg-internal/services/auth)"
@echo " test-coverage Run tests with coverage (enforces 60% threshold). Use PKG=./path/to/pkg for specific package, VERBOSE=true for verbose output"
@echo " test-shuffle Run all tests with randomized order"
@echo " test-integration Run Tier 2 (In-Process Integration) tests - no external dependencies"
@echo " test-docker Run Tier 3 (Docker E2E) tests - requires Docker"
@echo " test-gov Run Tier 3 (Gov Demo E2E) tests - requires Docker"
@echo " test-gateway Run gateway-specific integration tests"
@echo " test-mcp Run MCP integration tests (legacy - redirects to test-integration)"
@echo " test-a2a Run A2A integration tests (legacy - redirects to test-integration)"
@echo " test-universal-gateway Run universal gateway integration tests (legacy - redirects to test-integration)"
@echo " test-byo Run BYO client integration tests (legacy - redirects to test-integration)"
@echo " test-native Run native tool integration tests (legacy - redirects to test-integration)"
@echo " test-scenario Run scenario integration tests (legacy - redirects to test-integration)"
@echo ""
@echo "Lint & Quality:"
@echo " lint Run all linting and quality checks"
Expand Down Expand Up @@ -260,6 +253,7 @@ protoc-install:
.PHONY: build
build:
@echo "Building g8e Operator for current platform..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@NODE_BINARY=$(BIN_DIR)/g8e-$(HOST_OS)-$(HOST_ARCH); \
if [ "$(HOST_OS)" = "windows" ]; then \
Expand All @@ -285,6 +279,7 @@ build:
.PHONY: build-all
build-all:
@echo "Building g8e Operator for all platforms..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@for platform in $(PLATFORMS); do \
GOOS=$${platform%/*}; \
Expand All @@ -306,6 +301,7 @@ build-all:
.PHONY: build-darwin
build-darwin:
@echo "Building g8e for Darwin..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@for arch in $(DARWIN_ARCHS); do \
NODE_BINARY=$(BIN_DIR)/g8e-darwin-$$arch; \
Expand All @@ -318,6 +314,7 @@ build-darwin:
.PHONY: build-linux
build-linux:
@echo "Building g8e for Linux..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@for arch in $(LINUX_ARCHS); do \
NODE_BINARY=$(BIN_DIR)/g8e-linux-$$arch; \
Expand All @@ -330,6 +327,7 @@ build-linux:
.PHONY: build-windows
build-windows:
@echo "Building g8e for Windows..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@for arch in $(WINDOWS_ARCHS); do \
NODE_BINARY=$(BIN_DIR)/g8e-windows-$$arch.exe; \
Expand All @@ -342,6 +340,7 @@ build-windows:
.PHONY: build-docker
build-docker:
@echo "Building g8e binary in Docker (linux/amd64)..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@DOCKER_BUILDKIT=1 docker build --target builder -t g8e-builder:$(VERSION) .
@docker run --rm -e GOOS=linux -e GOARCH=amd64 -v $(PWD)/$(BIN_DIR):/out g8e-builder:$(VERSION) sh -c "CGO_ENABLED=0 GOOS=\$$GOOS GOARCH=\$$GOARCH go build -ldflags \"-s -w -X main.version=\$$(cat VERSION) -X main.buildID=\$$(git rev-parse --short HEAD 2>/dev/null || echo 'unknown') -X main.buildTime=\$$(date -u '+%Y-%m-%dT%H:%M:%SZ') -X main.platform=\$${GOOS}_\$$GOARCH\" -o /build/g8e ./cmd/operator && cp /build/g8e /out/g8e-linux-amd64"
Expand All @@ -351,6 +350,7 @@ build-docker:
.PHONY: build-linux-docker
build-linux-docker:
@echo "Building g8e for Linux in Docker..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@DOCKER_BUILDKIT=1 docker build --target builder -t g8e-builder:$(VERSION) .
@for arch in $(LINUX_ARCHS); do \
Expand All @@ -363,6 +363,7 @@ build-linux-docker:
.PHONY: build-windows-docker
build-windows-docker:
@echo "Building g8e for Windows in Docker..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@DOCKER_BUILDKIT=1 docker build --target builder -t g8e-builder:$(VERSION) .
@for arch in $(WINDOWS_ARCHS); do \
Expand All @@ -375,6 +376,7 @@ build-windows-docker:
.PHONY: build-darwin-docker
build-darwin-docker:
@echo "Building g8e for Darwin in Docker..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@DOCKER_BUILDKIT=1 docker build --target builder -t g8e-builder:$(VERSION) .
@for arch in $(DARWIN_ARCHS); do \
Expand All @@ -387,6 +389,7 @@ build-darwin-docker:
.PHONY: build-all-docker
build-all-docker:
@echo "Building g8e for all platforms in Docker..."
@gofmt -w .
@mkdir -p $(BIN_DIR)
@DOCKER_BUILDKIT=1 docker build --target builder -t g8e-builder:$(VERSION) .
@for platform in $(PLATFORMS); do \
Expand Down Expand Up @@ -416,34 +419,19 @@ test-unit:
@echo "Running Tier 1 (Unit) tests..."
@go test -p=1 -tags=!integration $(TEST_RACE) $(TEST_COUNT) -timeout $(TEST_SHORT_TIMEOUT) $(TEST_PKGS)

.PHONY: test-short
test-short:
@echo "Running short unit tests (skips long-running tests)..."
@go test $(TEST_RACE) -short $(TEST_COUNT) -timeout $(TEST_SHORT_TIMEOUT) $(TEST_PKGS)

# Tier 2: In-Process Integration Tests - no external dependencies
.PHONY: test-integration
test-integration:
@echo "Running Tier 2 (In-Process Integration) tests..."
@go test -tags=integration $(TEST_RACE) $(TEST_COUNT) -timeout $(TEST_TIMEOUT) ./...

# Tier 3a: Docker E2E Tests - requires Docker
# Tier 3: Docker E2E Tests - requires Docker
.PHONY: test-docker
test-docker:
@echo "Running Tier 3 (Docker E2E) tests..."
@go test -tags=e2e $(TEST_RACE) $(TEST_COUNT) -timeout 300s ./test/e2e/...

# Tier 3b: Gov Demo E2E Tests - requires Docker
.PHONY: test-gov
test-gov:
@echo "Running Tier 3 (Gov Demo E2E) tests..."
@go test -tags=e2e -run TestDockerGateway_GovDemo $(TEST_RACE) $(TEST_COUNT) -timeout 300s ./test/e2e/...

# Legacy targets - redirect to honest names
.PHONY: test-mcp test-a2a test-byo test-native test-scenario test-universal-gateway
test-mcp test-a2a test-byo test-native test-scenario test-universal-gateway:
@echo "Running integration tests (legacy target)..."
@go test -tags=integration $(TEST_RACE) $(TEST_COUNT) -timeout $(TEST_TIMEOUT) ./...

# Gateway tests (subset of integration tests)
.PHONY: test-gateway
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.1.4
v1.1.5
5 changes: 3 additions & 2 deletions cmd/operator/actuator_pub_export_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,19 @@ import (
"testing"

"github.com/g8e-ai/g8e/internal/constants"
"github.com/g8e-ai/g8e/internal/paths"
)

func TestExportActuatorPublicKey(t *testing.T) {
// Create a temporary directory for testing
tmpDir := t.TempDir()

// Initialize paths for the test environment
if err := constants.InitPathsWithBase(tmpDir); err != nil {
if err := paths.InitWithBase(tmpDir); err != nil {
t.Fatalf("Failed to initialize paths: %v", err)
}

pkiDir := constants.Paths.Infra.PkiDir
pkiDir := paths.Infra.PkiDir

// Generate a test Ed25519 key pair
pubKey, _, err := ed25519.GenerateKey(nil)
Expand Down
Loading
Loading