This repository was archived by the owner on May 8, 2026. It is now read-only.
Sync with base#5
Open
LeeGathercole wants to merge 692 commits into
Open
Conversation
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat(sdk): add entities, containers, and flows to dumpCatalog Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * update README --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix(core): handle circular refs in asyncapi spec rendering The AsyncAPI parser resolves $ref pointers creating circular object references with oneOf/allOf discriminator patterns. Astro's define:vars calls JSON.stringify internally which crashes on these cycles. Add safeStringify to break circular refs before serialization. Refs: event-catalog/generators#364 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(core): track ancestors not all-seen objects for cycle detection Use a recursive deep-copy with ancestor tracking instead of a WeakSet of all-ever-seen objects. This preserves shared (non-circular) refs while still breaking true cycles from oneOf/allOf discriminator patterns. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Add flows to Service and Domain interfaces - Add deliveryGuarantee, detailsPanel.parameters, and detailsPanel.attachments to Channel - Align SDK types with content.config.ts schema definitions Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* docs: add breaking schema change detection implementation plan Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add .worktrees/ to .gitignore Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(breaking-changes): scaffold package * feat(breaking-changes): json schema differ with tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(breaking-changes): breaking change rules per strategy with tests * feat(breaking-changes): integration tests for public API * feat(cli): add schema_breaking_change trigger type and BreakingSchemaChange Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(cli): parse compatibility strategy from governance.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(cli): evaluate schema_breaking_change governance rules Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(cli): enrich breaking schema changes with actual diff results Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(cli): schema_breaking_change webhook payload with CloudEvents envelope Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: format code Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(breaking-changes): detect root type changes and implicit nested objects - Detect root-level type changes (e.g., object → array) - Recurse into nested schemas that have properties/required but no explicit type Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): validate compatibility strategy and narrow catch scope - Validate strategy against BACKWARD/FORWARD/FULL/NONE on config load - Narrow try/catch to only JSON.parse so detectBreakingChanges errors propagate Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: remove implementation plan from repo Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add changeset for breaking schema change detection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
… groups (#2421) * docs: add message grouping design spec (#2079) Design spec for collapsing grouped messages into MessageGroupNode in service/domain visualiser graphs with Focus Mode drill-down. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add MessageGroupExpandedNode container component (#2079) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: register messageGroupExpanded in all visualiser touch points (#2079) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: implement inline expand/collapse for message group nodes (#2079) Replace modal-based messageGroup click handler with inline expand/collapse. Clicking a compact messageGroup node now swaps it for an expanded container with child message nodes using ReactFlow's parentId + extent pattern. Dagre re-layout recalculates positions after expand/collapse. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add messageGroupExpanded default size to layout (#2079) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(visualiser): render full downstream graph when expanding message groups Pre-compute channels, consumers, and producers server-side for grouped messages so expanding a group shows the same nodes/edges as the ungrouped view. Includes stacked card visual, post-render child centering, edge deduplication, and collapse cleanup that preserves shared nodes. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * change detection * fix(visualiser): preserve shared downstream nodes when collapsing one of multiple expanded groups When two expanded groups share downstream nodes (e.g. same channel), collapsing one group now checks if surviving edges still reference the node before removing it. Prevents dangling edges from the other group. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(core): match grouped message pointers by id/version instead of index The partition function can produce misaligned messages/pointers arrays when a pointer fails hydration. Using explicit id/version matching prevents incorrect channel refs being fed into expansion precomputation. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * fix(visualiser): respect hidden-channel mode when expanding message groups Read hideChannels from a stable ref and filter out channel nodes/edges from the downstream expansion data when channels are hidden. Prevents channel nodes from reappearing after toggling channel visibility off. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * chore(visualiser): fix formatting Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat(sdk): add group field to sends/receives pointers Add optional `group` field to SendsPointer and ReceivesPointer types, buildMessagePointer utility, addMessageToService, and addMessageToDomain. Enables generators to assign messages to named groups for visualiser grouping. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * test(sdk): add tests for group field on sends/receives pointers 7 tests covering: persisting group on write, including group via addEventToService, preserving existing groups, omitting group when not provided, and combining group with fields. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#2429) Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
#2430) Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Unwrap the default export when requiring eventcatalog.config.js so dependencies declared in ESM config files are recognized by the refs/resource-exists rule. Fixes #2293 Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Closes #1689 Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds From/To version selectors to the schema Changes tab so users can diff any two versions, replacing the previous consecutive-only diffs. Refs #2368 Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Closes #1813 - Use nodeLookup so grouped/nested graphs resolve absolute bounds and no longer get cropped - Inline resolved theme CSS variables and SVG styles before capture so edges and labels keep their colors in the exported PNG Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…n `trailingSlash: true` (#2690) Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
(Write your motivation here.)