Skip to content

Project Hub rename, Moonraker printer queue card, Prusa monitor-only guards, PrusaConnect UI#21

Draft
Copilot wants to merge 5 commits intomainfrom
copilot/delegate-to-cloud-agent
Draft

Project Hub rename, Moonraker printer queue card, Prusa monitor-only guards, PrusaConnect UI#21
Copilot wants to merge 5 commits intomainfrom
copilot/delegate-to-cloud-agent

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

Pre-show-and-tell bugfixes: rename the project-based file organizer from "Print Queue" to "Project Hub", surface Moonraker's printer-side queue in the ControlPanel, stop rendering unsupported control widgets for PrusaLink/PrusaConnect, and wire PrusaConnect into the connection UI.

Project Hub

  • PrintQueue_Title → "Project Hub"; new PageTitle_ProjectHub resource key
  • New /projecthub page (farm-mode only) wrapping <PrintQueue />
  • NavMenu: "Project Hub" link (folder icon) added below "Fleet" in farm mode

IPrinterCommunicationService capability flags

Two new default interface members — no changes required in existing backends unless overriding:

bool SupportsDirectControl => true;   // PrusaLink + PrusaConnect override → false
bool SupportsPrinterQueue  => false;  // MoonrakerApiService overrides → true
Task<List<PrintQueueEntry>> GetPrinterQueueAsync() => Task.FromResult(new List<PrintQueueEntry>());

Moonraker printer queue card

MoonrakerApiService.GetPrinterQueueAsync() calls /server/print_queue and returns List<PrintQueueEntry>. When SupportsPrinterQueue is true, ControlPanel renders a live "Printer Queue" card. Refresh is wired through RunAsync for toast-on-failure.

Prusa monitor-only guards

All motion/jog, temperature-set, fan-set, extrude, speed/flow-set, and calibration sections in ControlPanel are wrapped with @if (SupportsDirectControl). PrusaLink and PrusaConnect now render temperature/fan/speed readouts only — nothing that would throw NotSupportedException.

PrusaConnect connection UI

  • MainLayout.razor: replaced <NavTop /> with <NavPrinters />, wiring the multi-printer management toolbar into the header. The printer button opens a modal listing all saved printers with connect/disconnect/add/edit/delete controls.
  • PrinterConnectionModal.razor: PrusaConnect is no longer excluded from the "Add Printer" modal used by the Dashboard and Fleet pages. UUID + API key fields are shown and URL validation is skipped (PrusaConnect uses the cloud API, not a local URL).
Original prompt

Commit Changes and Delegate: "Delegate to cloud agent"

[Chronological Review: The conversation began with the user requesting small bug fixes before a show and tell, specifically renaming a print queue component to a project hub and ensuring the printer dashboard shows its own print queue. The user then mentioned fixing a Prusa issue and the potential need for a supports-printqueue flag. The user confirmed successful builds and tests, outlined specific UI changes for the Fleet sidebar and Control Panel, and highlighted issues with the PrusaConnect interface. The user requested to start implementation and finally commanded to commit changes and delegate to a cloud agent.] [Intent Mapping: 1. "lets do small bugfixes before that." - User wants to address minor issues before a presentation. 2. "rename that as a project hub" - User wants to change the print queue component's name. 3. "fix the prusa issue pls" - User requests a fix for a specific issue related to Prusa printers. 4. "if a supports-printqueue flag is needed" - User is considering the implementation of a new feature. 5. "dotnet build MakerPrompt.sln — zero errors" - User confirms successful build. 6. "dotnet test — all unit tests green" - User confirms all unit tests passed. 7. "Fleet sidebar: 'Project Hub' visible" - User specifies a UI requirement. 8. "Moonraker → ControlPanel: Printer Queue card with live list" - User outlines functionality for the printer dashboard. 9. "distinguish between prusaconnect and prusalink" - User wants to clarify features based on printer connections. 10. "Start implementation" - User initiates the coding process. 11. "Commit Changes and Delegate: 'Delegate to cloud agent'" - User requests to save changes and hand off to a cloud agent.] [Technical Inventory: - Technologies: .NET, Razor - Frameworks: MakerPrompt - Architectural Decisions: Separation of project hub and printer queue functionalities, handling of different printer connection types.] [Code Archaeology: - File: MainLayout.razor - Purpose: Layout management for the MakerPrompt application. - Recent Changes: Renaming components, implementing UI changes for the Fleet sidebar and Control Panel, addressing Prusa connection issues.] [Progress Assessment: - Completed Tasks: Successful build and passing unit tests. - Partially Complete Work: UI changes and implementation of the project hub and printer queue features are in progress.] [Context Validation: All necessary context for continuing work on the project hub and printer queue features is captured.] [Recent Commands Analysis: - Last Agent Commands: "dotnet build MakerPrompt.sln", "dotnet test", "Start implementation", "Commit Changes and Delegate: 'Delegate to cloud agent'" - Tool Results Summary: Successful build with zero errors, all unit tests passed, UI changes specified for Fleet sidebar and Control Panel. - Pre-Summary State: The agent was actively working on implementing the requested changes and preparing to delegate the task to a cloud agent. - Operation Context: These commands were executed to ensure the application was functioning correctly and to prepare for the upcoming show and tell presentation.] 1. Conversation Overview: - Primary Objectives: - "lets do small bugfixes before that." - User wants to address minor issues before a presentation. - "rename that as a project hub" - User wants to change the print queue component's name. - "fix the prusa issue pls" - User requests a fix for a specific issue related to Prusa printers. - "if a supports-printqueue flag is needed" - User is considering the implementation of a new feature. - "Start implementation" - User initiates the coding process. - "Commit Changes and Delegate: 'Delegate to cloud agent'" - User requests to save changes and hand off to a cloud agent. - Session Context: The conversation focused on implementing bug fixes and UI changes in the MakerPrompt application, particularly around printer functionalities. - User Intent Evolution: The user transitioned from discussing general bug fixes to specifying detailed requirements for UI changes and functionality, culminating in a request to start implementation and delegate tasks.
  1. Technical Foundation:
  • .NET: Used for building the MakerPrompt application.
  • Razor: Framework for creating dynamic web pages in the application.
  1. Codebase Status:
  • File Name: MainLayout.razor
    • Purpose: Layout management for the MakerPrompt application.
    • Current State: Changes to rename components and implement UI updates are in progress.
    • Key Code Segments: Specific UI elements for the Fleet sidebar and Control Panel.
    • Dependencies: Relies on the overall structure of the MakerPrompt application.
  1. Problem Resolution:
  • Issues Encountered: Need to address the Prusa connection issue and clarify printer functionalities.
  • Solutions Implemented: Successful build and passing unit tests indicate that foundational issues are resolved.
  • Debuggin...

Created from VS Code.

Copilot AI and others added 3 commits April 6, 2026 18:15
…control guards

Agent-Logs-Url: https://github.com/akinbender/MakerPrompt/sessions/27f94188-df70-497d-b60d-fc1355a18a66

Co-authored-by: akinbender <40242943+akinbender@users.noreply.github.com>
…ncy, unused inject

Agent-Logs-Url: https://github.com/akinbender/MakerPrompt/sessions/27f94188-df70-497d-b60d-fc1355a18a66

Co-authored-by: akinbender <40242943+akinbender@users.noreply.github.com>
Copilot AI changed the title [WIP] Delegate changes to cloud agent for implementation Project Hub rename, Moonraker printer queue card, Prusa monitor-only guards Apr 6, 2026
Copilot AI requested a review from akinbender April 6, 2026 18:26
@akinbender
Copy link
Copy Markdown
Owner

@copilot omg i how is the situation with prusaconnect and one interface providing access to multiple printers.. in a session we applied a fix and i wanted to test now.. but no change on the ui to connect.. only prusalink..

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 9, 2026

@copilot omg i how is the situation with prusaconnect and one interface providing access to multiple printers.. in a session we applied a fix and i wanted to test now.. but no change on the ui to conn...

The root cause was that NavPrinters (the multi-printer manager with PrusaConnect support) was never wired into the layout — MainLayout.razor was using <NavTop /> (just theme/language selectors, no connection UI). Fixed in commit 34a9a1a:

What changed:

  1. MainLayout.razor: replaced <NavTop /> with <NavPrinters />. The toolbar printer button now opens the full multi-printer management modal, where you can add PrusaConnect (UUID + API key) alongside all other backends.
  2. PrinterConnectionModal.razor: PrusaConnect is no longer excluded from the "Add Printer" modal used by the Dashboard and Fleet pages. UUID + API key fields are shown, and URL validation is skipped (PrusaConnect doesn't use a URL).

Now when you click the printer button in the header you'll see all your saved printers and can add a new PrusaConnect one. The PrusaConnectPrinterService (mobile API / ****** is what actually handles the connection once saved.

Copilot AI changed the title Project Hub rename, Moonraker printer queue card, Prusa monitor-only guards Project Hub rename, Moonraker printer queue card, Prusa monitor-only guards, PrusaConnect UI Apr 9, 2026
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.

2 participants