Skip to content

Sync with base#5

Open
LeeGathercole wants to merge 326 commits intoNHSDigital:mainfrom
event-catalog:main
Open

Sync with base#5
LeeGathercole wants to merge 326 commits intoNHSDigital:mainfrom
event-catalog:main

Conversation

@LeeGathercole
Copy link
Collaborator

Motivation

(Write your motivation here.)

github-actions bot and others added 30 commits January 7, 2026 09:54
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* adding support for themes

* feat(core): added suppor for dark mode and themes

* Create green-gorillas-explode.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(core): added ability to add custom tools to AI assistant

* Create rich-buses-grin.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(core): added support for icepanel diagrams

* Create angry-planes-roll.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(core): changelog theme styles

* Create wicked-islands-study.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(core): added new resource type diagrams

* feat(core): added new resource type diagrams

* Create heavy-mugs-complain.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(core): fixed schema explorer in srr mode on start

* Create unlucky-mugs-dream.md
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(core): add mcp server and shared catalog tools

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* update

* update

* Create yellow-lobsters-tell.md

* update

* update

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* feat(core): add zoom and pan controls to mermaid and plantuml diagrams

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* update

* Create big-hornets-work.md

* update

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* fix(core): fixed useCallback hook placement before early returns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* update

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…sults (#1985)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
…1984)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
allcontributors bot and others added 30 commits February 25, 2026 10:31
* update README.md [skip ci]

* update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
… transport reuse error (#2238)

* fix(mcp): create McpServer and transport per-request

The MCP SDK's WebStandardStreamableHTTPServerTransport is a
single-use object — once handleRequest() is called it sets an
internal _hasHandledRequest flag that causes every subsequent
request to throw:

  Error: Stateless transport cannot be reused across requests.
         Create a new transport per request.

Similarly, McpServer.connect() throws on a second call because
the server stores the transport reference and rejects
reconnection.

The previous implementation created both objects as module-level
singletons, meaning only the very first MCP request ever
succeeded. All subsequent requests from VS Code, Claude Desktop,
and other MCP clients returned a 500 error.

The fix is to create a fresh McpServer and transport for every
POST request in stateless mode, which is the pattern recommended
by the MCP SDK for stateless (sessionless) deployments.

* add changeset for MCP transport fix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Tom Kirkpatrick <tom@strike.me>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ocomplete (#2235)

* feat(language-server): add asyncapi service import resolution and playground autocomplete

Add `import ServiceName from "spec.yml"` syntax that infers full service
definitions (channels, messages, sends/receives) from AsyncAPI v2/v3 specs.
Add autocompletion for event/command/query names after sends/receives keywords
and channel names after to/from keywords. Restructure playground examples into
individual numbered files. Refactor resolvers for maintainability and performance.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(playground): remove test scripts that fail with no test files

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: trigger CI re-run

* fix(language-server): handle v3 op.messages filter, v2 $ref and oneOf in operations

- Respect v3 operation-level `messages` array to scope sends/receives
  to only the messages the operation declares, instead of all channel messages
- Resolve v2 message `$ref` before deriving operation names, with fallback
  to extracting name from the $ref path
- Handle v2 `message.oneOf` to extract multiple operations per channel

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(linter): revert version to 1.0.7 to match published npm package

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(playground): handle empty file set after import resolution

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>
* feat(language-server): add OpenAPI spec import support to DSL

Add OpenAPI v3.0/v3.1 import support mirroring existing AsyncAPI imports.
Maps GET operations to queries and POST/PUT/PATCH/DELETE to commands.
Auto-detects spec type from content. Supports local, remote, and JSON files.
Extracts import resolution into unified resolve.ts module.
Includes 4 playground examples and comprehensive tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(language-server): enforce import kind for OpenAPI and handle numeric version

Address PR review feedback:
- P1: Validate that imported message type matches the import keyword
  (e.g. `import commands { GetOrders }` now errors if GetOrders is a query)
- P2: Coerce doc.openapi to string before .startsWith() to handle YAML
  parsing `openapi: 3.1` as a number

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…bile layout (#2243)

* feat(playground): add marketing landing page with hero preview and mobile layout

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(playground): preserve deep links at root and add /new route alias

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: remove invalid changeset for unpublished playground package

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…epage (#2244)

* update

* update

* feat(core): refine UI theme with improved sidebar states, dark mode, and homepage layout

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(sdk): update test to match current config tagline

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* update

* fix(core): update container node graph test for layout and edge changes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…#2247)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…hs (#2249)

* fix(visualiser): wire up configurable URL builder to respect base paths

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(visualiser): clean up buildUrl on unmount to prevent stale callbacks

Addresses review feedback: reset the module-level URL builder when a
NodeGraph instance unmounts so it cannot leak across component instances.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* update

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…ent paths (#2250)

* fix(core): use relative content paths in tailwind config

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(core): lazy-load visualizer styles and use relative tailwind content paths

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(core): add text-*-100 to tailwind safelist for visualizer dynamic classes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(ci): install visualiser package in build verification step

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore(core): updated rimraf version

* Create wicked-bulldogs-type.md
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>
…f-contained npm usage (#2256)

- Add custom PostCSS scopeSelectors plugin to prefix all rules
- Include Tailwind utilities in styles-core.css so npm consumers get everything
- Create PortalContainerContext for Radix UI portals to render inside scope
- Fix dark mode background by replacing :not() selector with default + override
- Add inline styles to wrapper div for ReactFlow parent dimension requirements
- Portal FocusModeModal to document.body with z-index for proper layering
- Reduce focus mode action icon sizes for better zoomed-out readability
- Remove visualiser content paths from core's tailwind config

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ooter (#2258)

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>
…2264)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
#2266)

* feat(core): migrate from tailwind css v3 to v4 with native vite plugin

Replace @astrojs/tailwind (PostCSS-based) with @tailwindcss/vite for ~6x faster
dev server startup (6.7s → 1.1s) and ~4x faster first page TTFB (6.7s → 1.7s).

- Swap dependencies: @astrojs/tailwind → @tailwindcss/vite, tailwindcss v3 → v4
- Create CSS-first config (src/styles/tailwind.css) replacing tailwind.config.mjs
- Add @custom-variant for dark mode, @source inline() for dynamic color classes
- Apply v4 class renames: shadow-sm→shadow-xs, rounded-sm→rounded-xs,
  outline-none→outline-hidden, !prefix→suffix!
- Add optimizeDeps.include and server.warmup for faster cold starts
- Extract shared icon-map to avoid wildcard lucide-react imports

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(core): bump vite to ^7.1.11 to fix CVE-2025-62522 directory traversal

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(core): add tailwind import to standalone auth pages and expand color safelist

- Import tailwind.css in login.astro and error.astro (standalone pages that
  don't use VerticalSideBarLayout, which was the only import point)
- Add emerald, amber, violet to @source inline() directives for MessageGrid
  dynamic color classes
- Add missing hover/border/dark variant patterns for card components

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 Sonnet 4.5 <noreply@anthropic.com>
…elist (#2269)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
…ues (#2271)

Extract shared duplicate-check helper in validator, deduplicate inline
metadata enrichment in graph builder, eliminate double YAML parsing in
AsyncAPI resolver, fix dead ternary in compiler, and move extractApiInfo
to top-level scope. Also includes playground UX improvements.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants