g8e v1.6.6
Immutable
release. Only release title and notes can be modified.
[1.6.6] - 2026-07-27
Overview
Comprehensive "Tribunal" → "Consensus" rename across the entire codebase, plus several structural refactors and a new --doctrine-dir CLI flag. This release renames all user-facing identifiers (CLI flags, env vars, API paths, Go types, error constants, event constants, status enums, collection names, package paths) from "Tribunal" to "Consensus" to align naming with the protocol's consensus governance model. The monolithic DBController is split into three focused controllers, L2 consensus verification logic is extracted from the L4 Warden into a standalone file with generic interfaces, and the gateway construction API is refactored to public two-phase initialization.
Breaking Changes
- "Tribunal" → "Consensus" rename — All user-facing identifiers renamed. CLI flags
--tribunal-id,--tribunal-url,--tribunal-bootstrapare now--consensus-id,--consensus-url,--consensus-bootstrap. Env varsG8E_TRIBUNAL_*are nowG8E_CONSENSUS_*. API paths/api/v1/admin/tribunalsand/tribunal/v1/deliberateare now/api/v1/admin/consensusand/consensus/v1/deliberate. Bootstrap config filetribunal-bootstrap.jsonis nowconsensus-bootstrap.json. Users must update CLI invocations, environment variables, API clients, and bootstrap config file names. SetTribunal()/SetEnvelopeProcessor()removed —GatewayModeServiceno longer exposesSetTribunal()(nowSetConsensusService()) orSetEnvelopeProcessor()for late-bound dependency injection. Late-bound dependencies are now injected at construction time viaInitHTTPHandler(). External code that called these methods must switch to the two-phase construction pattern.initHandlersAndServers()→InitHTTPHandler()— Gateway construction changed from privateinitHandlersAndServers()to publicInitHTTPHandler()(two-phase construction). Late-bound dependencies (consensus service, envelope processor) are now injected at construction time instead of via atomic pointers.
Added
--doctrine-dirCLI flag — New flag (G8E_DOCTRINE_DIRenv var) allows loading custom doctrine JSON files for L1 threat detection from a specified directory.NewL1DoctrineFromDir()constructor added. All demos updated to pass--doctrine-dir /etc/g8e/doctrine.query_pa_statusMCP tool — New MCP tool added to the healthcare demo'spa_api_server.pyfor querying prior authorization status.
Changed
- "Tribunal" → "Consensus" comprehensive rename — Go types (
TribunalPolicy→ConsensusPolicy,TribunalStore→ConsensusStore,TribunalService→ConsensusService), error constants (ErrTribunal*→ErrConsensus*), event constants (AiTribunalSession*→AiConsensusSession*,AiTribunalVoting*→AiConsensusVoting*), status enums (TribunalMember→ConsensusMember,TribunalAuditMode→ConsensusAuditMode,TribunalAuditStatus→ConsensusAuditStatus), collection (CollectionTribunals→CollectionConsensus), package (internal/services/tribunal/→internal/services/consensus/). DBControllersplit — MonolithicDBControllerdecomposed intoDataController,AuditController, andSignerControllerwith focused responsibilities.l2_consensus.goextracted — L2 verification logic moved froml4_warden.gotol2_consensus.gowith genericL2ConsensusPolicyandL2ConsensusPolicyStoreinterfaces.AppPolicyStoreremoved fromL4Warden— Simplified the warden constructor by removing the unusedappPolicyStoreparameter.- Gateway construction refactored —
initHandlersAndServers()(private) replaced withInitHTTPHandler()(public, two-phase construction). Late-bound dependencies injected at construction time instead of via atomic pointers. - Demo
compose.ymlfiles updated — All demo compose files updated with--doctrine-dirflag and consensus naming.
Documentation
- Protocol docs —
protocol/docs/spec.md,protocol/docs/mcp.md,protocol/docs/constants.mdupdated with Consensus naming (collections, events, API paths, status enums, env vars, CLI flags, file references). - Build guide —
docs/guides/build_apps.mdupdated: all Tribunal references renamed to Consensus (persona catalog, section titles, protocol mapping table, governance interlock description). - Generated proto API docs — Regenerated via
make prototo reflectconsensus_set_idfield name and consensus member terminology inL2Metadata/L2Votemessages.