Ikanos v1.0.0-beta4 — "Barquentine"
Pre-release⛵ A barquentine carries two rigging styles on one hull — square sails forward for power, fore-and-aft sails aft for control. Beta4 pairs exactly that combination: power from adopting the latest MCP protocol, control from the engine's first real end-to-end test harness. A focused release that keeps Ikanos current with its main protocol and starts closing the e2e test gap identified in the new feature coverage tracker.
What is Ikanos?
Ikanos is the first open-source engine for Spec-Driven Integration. Capabilities are declared entirely in YAML — no Java, no code generation, no compilation step. The engine reads the spec at startup and immediately serves it as a multi-protocol server: MCP, Skill, REST, and Control. The spec is the artifact and the runtime contract.
Ikanos comes from the Greek ικανός — capable.
This v1.0.0-beta4 release builds on v1.0.0-beta3 ("Brigantine") with a focus on protocol currency and test governance: the MCP transport is migrated to the 2026-07-28 specification (bringing cache hints and capability versioning to the schema), the engine gains its first automated end-to-end test suite validating OAuth 2.1 and Bearer authentication against real Keycloak/Microcks infrastructure, and a living feature-coverage tracker now maps all 32 blueprint features against their test depth and delivery phase. Only additive schema changes since beta3 — no breaking change.
🌐 Ecosystem
Polychro — Spec Linting for Ikanos Capabilities
Polychro remains the companion spec linting engine for the Ikanos ecosystem. It validates Ikanos capability files against rulesets declared in YAML, surfacing diagnostics as SARIF, JSON, or LLM-native output — directly inside your editor, CI pipeline, or AI agent. See the Polychro release notes for its own changelog.
✨ Highlights
🔌 MCP Protocol Migrated to 2026-07-28 (#695, closes #662)
Ikanos moves its MCP transport from the 2025-11-25 specification to the 2026-07-28 one:
- New
CacheScopeenum (public/private) andttlMson the MCPexposesadapter — a freshness hint so clients can cache tool/resource responses and cut down on polling instead of always hitting the server - New
info.versionfield on the capability document — capabilities can now declare their own version independently of the Ikanos spec version they conform to - Large test-suite refactor to adapt to the new protocol shape, plus new tests covering the added caching properties
🧪 First End-to-End Test Suite — OAuth 2.1 & Bearer Auth (#690, closes #612)
The first real, infrastructure-backed E2E suite lands in CI:
- A Docker Compose stack (Microcks + Keycloak) provides real backing services; Ikanos itself is started per feature by the workflow — genuine end-to-end, not mocked in-process
- OAuth2 feature: real JWKS validation via Keycloak's
.well-known/oauth-authorization-serverauto-discovery, exercised throughlist-ships/ filter /get-shipwith two independent valid JWTs plus an invalid-token case - Bearer feature: static-token validation exercised with a valid and an invalid token
- New
e2e-feature-tests.ymlworkflow and.github/e2e/resources/fixtures (compose file, Keycloak realm, shared secrets, per-featurerun.sh+helpers.sh) — a reusable scaffold for future feature-level E2E suites
🗺️ Feature Coverage Tracker (#622, #702, closes #590)
A new living tracker closes the gap between "what's specified" and "what's actually tested":
ikanos-docs/testing/feature-coverage-tracker.mdcovers all 32 blueprint features (one blueprint = one feature)- Two orthogonal axes tracked per feature: test depth (
NATIVE/JVM/NONE) and blueprint phase delivery (delivered / total), so it doubles as a roadmap-progress board, not just a test-gap list - Mirrored to the internal Notion ITD; refreshed after the MCP protocol migration (#702) and after native control-port / HTTP-serve facts landed
🧹 Deserializer Null-Safety & Schema README Refresh (#647)
NamedMapDeserializersetter method-references converted to explicit null-safe lambdas across every named-object map deserializer inikanos-spec(input parameters, aggregates, MCP/REST/HTTP operations, skills, and more)ikanos-engine's header blank-check and tunnel scheduler hardened the same wayschemas/README.md— still referencing1.0.0-alpha1— rebranded Naftiko → Ikanos and bumped to1.0.0-beta1
🤝 Agent & Contributor Experience
AGENTS.md's cross-cutting-fix rule repointed to the transversal "factor by default, specialize by exception" principle now anchored ingolden-repo-naftiko'sengineering.md— broadened beyond theexposes/consumesframing to cover any recurring engine mechanism (#669, closes #666)
📦 Dependency Updates
io.modelcontextprotocol.sdk:mcp-core1.0.0 → 1.0.1 (#682)io.opentelemetry:opentelemetry-api1.48.0 → 1.62.0 (#681)com.nimbusds:nimbus-jose-jwt9.37.3 → 9.37.4 (#683)
⚠️ Known Issues & Limitations
- CLI pre-built binary installation — running the CLI binary directly is not straightforward on macOS (Gatekeeper quarantine requires
xattr -dr com.apple.quarantineor system approval) and on Windows (SmartScreen warning, unsigned binary). Workaround: run viajava -jar ikanos.jarfrom the JAR instead (#281) - Reverse tunnel remains declarative-only in the schema — capabilities that declare
tunnel:parse and validate today, but the engine still dials the publicbaseUridirectly until the embedded tunnel feature is enabled. Use the sidecar pattern from the Reverse Tunnel guide for production today. - CLI pre-built binaries available for macOS ARM64, Linux AMD64, Linux ARM64, and Windows AMD64.
🔢 By the Numbers
- 22 commits merged since v1.0.0-beta3
- 176 files changed, +5,123 / −1,462 lines (the largest diff since alpha3, driven by the MCP protocol migration's test refactor and the new E2E infrastructure)
- 5 contributors
🙏 Contributors
Huge thanks to the team for shipping this release:
- @neyeahmed — MCP protocol migration to 2026-07-28 (#695), feature coverage tracker refresh (#702), beta4 release coordination
- @farah-t-trigui — first E2E test suite for OAuth 2.1 & Bearer auth (#690)
- @eskenazit — feature coverage tracker foundation (#622), AGENTS.md factor-by-default principle (#669)
- @jlouvel — deserializer null-safety hardening, schema README refresh (#647)
- @jeremnaf — release coordination (#703)
Full Changelog: v1.0.0-beta3...v1.0.0-beta4