Repository navigation
feat(OMN-2084): Add CI handshake enforcement workflow - #293
jonahgabriel merged 3 commits into
Conversation
Add check-handshake.yml workflow that verifies the installed architecture handshake matches the omnibase_core source on push/PR to main. Follows the same pattern as omnibase_spi. Also refreshes the stale handshake to match omnibase_core v0.16.0.
Update docstrings and documentation that referenced the old architecture constraint #7 ("Kafka is optional") to reference platform-wide rule #8 ("Kafka is required infrastructure"). Also add token documentation to CI handshake workflow. - provider_kafka_producer.py: rule #7 → rule #8 - event_bus_kafka.py: "graceful degradation" → "resilience against transient failures" - EVENT_BUS_OPERATIONS_RUNBOOK.md: same pattern - check-handshake.yml: document OMNIBASE_CORE_TOKEN requirement
- Remove stale "degraded mode" language from EventBusKafka.start() docstring - Clarify ProviderKafkaProducer propagates creation failures (required infra) - Enhance CI workflow checkout verify step with diagnostics - Add override note to runbook KAFKA_BOOTSTRAP_SERVERS default - Add ADR documenting Kafka-optional → Kafka-required policy reversal Review iteration: 1/10
📝 WalkthroughWalkthroughThis pull request establishes Kafka as required infrastructure across the platform by updating the architecture handshake with platform-wide rules, introducing an architecture validation workflow, documenting the decision via ADR, and adjusting error handling semantics in event bus components to treat Kafka failures as fatal rather than gracefully degradable. Changes
Poem
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@docs/decisions/adr-kafka-required-infrastructure.md`:
- Around line 37-38: Update the ADR to remove the conflicting guidance by
eliminating the statement that "localhost:9092 defaults in config models remain
as development conveniences" and instead state that no service defaults may be
localhost per rule `#7` (no hardcoded configuration); locate and edit the
paragraph referencing "localhost:9092" and replace it with guidance that configs
must require explicit environment-specific bootstrap servers or use a
clearly-scoped development-only profile (named e.g., "dev" and not a default),
and update any dependent docs or config model examples to either omit a default
or mark the value as required to satisfy rule `#7`.
| - The `localhost:9092` defaults in config models remain as development conveniences but | ||
| must be overridden in deployed environments (per rule #7: no hardcoded configuration). |
There was a problem hiding this comment.
Reconcile localhost-default guidance with rule #7.
This says localhost defaults remain for development, but the architecture-handshake rule #7 now states “No localhost defaults.” Please align the ADR (and any dependent docs) with the intended rule to avoid conflicting guidance.
🤖 Prompt for AI Agents
In `@docs/decisions/adr-kafka-required-infrastructure.md` around lines 37 - 38,
Update the ADR to remove the conflicting guidance by eliminating the statement
that "localhost:9092 defaults in config models remain as development
conveniences" and instead state that no service defaults may be localhost per
rule `#7` (no hardcoded configuration); locate and edit the paragraph referencing
"localhost:9092" and replace it with guidance that configs must require explicit
environment-specific bootstrap servers or use a clearly-scoped development-only
profile (named e.g., "dev" and not a default), and update any dependent docs or
config model examples to either omit a default or mark the value as required to
satisfy rule `#7`.
Summary
check-handshake.ymlCI workflow that verifies the installed architecture handshake matches the omnibase_core sourceDetails
Follows the exact pattern from
omnibase_spi/.github/workflows/check-handshake.yml:4dc7a0a— current main)check-handshake.shwhich compares the installedsource_sha256metadata against the current source file hashTest plan
check-handshake.shverification passes with refreshed handshake.claude/architecture-handshake.mdpath change)workflow_dispatchmanual trigger worksCloses OMN-2084
Summary by CodeRabbit
Documentation
Chores