Skip to content

feat: adds Moonraker extensions API support - #1999

Merged
pedrolamas merged 5 commits into
fluidd-core:developfrom
pedrolamas:pedrolamas/moonraker-extensions
Oct 21, 2026
Merged

pedrolamas merged 5 commits into
fluidd-core:developfrom
pedrolamas:pedrolamas/moonraker-extensions

Conversation

@pedrolamas

@pedrolamas pedrolamas commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Adds generic support for Moonraker's extensions API (agents), ahead of #1966 which will build on it. Nothing uses it yet.

  • Typings: server.extensions.list, server.extensions.request and notify_agent_event. AgentEvent is a union of the reserved connected (carries AgentInfo) / disconnected events and a custom catch-all, narrowed with type predicates. arguments is unknown[] | object | null, matching Moonraker's list-or-dict check while still accepting interfaces
  • SocketActions.serverExtensionsList and serverExtensionsRequest<T>({ agent, method, arguments? }, options?) — a params object, so request options can't be mistaken for agent arguments
  • New extensions store module holding the connected agents (getAgents): loaded via MOONRAKER_COMPONENTS (extensions is a core component, present since before the minimum supported Moonraker version), kept current in place by the connected / disconnected events, and reset on socket drop
  • Every agent event, reserved ones included, is forwarded to the matching Globals.MOONRAKER_AGENTS entry's eventDispatch, so an agent's handler can react to its own disconnect. Unhandled custom events are logged at debug level. The registry is empty for now — feat: Web based firmware updates #1966 adds its aldis row

🤖 Generated with Claude Code

Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
@pedrolamas
pedrolamas requested a balanced review from Copilot October 21, 2026 14:40
@pedrolamas pedrolamas added the FR - Enhancement New feature or request label Oct 21, 2026
@pedrolamas pedrolamas added this to the 1.37.8 milestone Oct 21, 2026
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Bundle size report (gzip)

Chunk Base Head Δ
assets/index-*.js 162.3 kB 162.6 kB +287 B
assets/socketActions-*.js 39.5 kB 39.6 kB +56 B
assets/Console-*.js 365 B 360 B -5 B
sw.js 11.2 kB 11.2 kB -5 B
assets/FileSystem-*.js 32.1 kB 32.1 kB +4 B
assets/Diagnostics-*.js 15.9 kB 15.9 kB -2 B
assets/History-*.js 4.5 kB 4.5 kB -2 B
assets/TimelapseRenderSettingsDialog-*.js 1.8 kB 1.8 kB +2 B
assets/AfcPrintStartDialogTool-*.js 2.3 kB 2.3 kB +1 B
assets/AppColorPicker-*.js 13.0 kB 13.0 kB +1 B
assets/Configure-*.js 773 B 774 B +1 B
assets/ConsoleCard-*.js 2.0 kB 2.0 kB +1 B
assets/Dashboard-*.js 63.2 kB 63.2 kB -1 B
assets/DiskUsageCard-*.js 3.2 kB 3.2 kB -1 B
assets/file-data-transfer-*.js 409 B 408 B -1 B
assets/GcodePreview-*.js 364 B 365 B +1 B
assets/JobHistoryItemStatus-*.js 1.2 kB 1.2 kB +1 B
assets/JobQueueCard-*.js 4.5 kB 4.5 kB -1 B
assets/Jobs-*.js 498 B 497 B -1 B
assets/MacroCategorySettings-*.js 2.0 kB 2.0 kB +1 B
assets/NotFound-*.js 433 B 434 B +1 B
assets/System-*.js 2.4 kB 2.4 kB +1 B
assets/Tune-*.js 3.4 kB 3.4 kB -1 B
Total 2.9 MB 2.9 MB +338 B

120 chunks compared, 23 changed. Sizes are gzip, matching what nginx serves.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

pedrolamas and others added 4 commits October 21, 2026 17:12
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

It is a small, purely additive change with no current consumers that faithfully follows established module, typings, and socket-action conventions, and no correctness, naming, or convention issues were found.

No open issues 🎉

Review effort: Balanced

@pedrolamas
pedrolamas merged commit 0d7a520 into fluidd-core:develop Oct 21, 2026
7 checks passed
@pedrolamas
pedrolamas deleted the pedrolamas/moonraker-extensions branch October 21, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FR - Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants