Commit Graph
4546 Commits
Author SHA1 Message Date
maziggy 44718b2d2f Updated CHANGELOG 2026-10-02 15:23:48 +02:00
maziggy 222e27ad43 Post work PR #3020 2026-10-02 15:20:39 +02:00
maziggy 78ae1beddc File Manager: a third view mode, Miller columns (#3190) 2026-10-02 15:20:12 +02:00
maziggy 96c35462d6 Post work PR #3020 2026-10-02 14:45:31 +02:00
Thomansky 413633d811 File Manager: a third view mode, Miller columns (#3190) 2026-10-02 14:41:44 +02:00
maziggy 03cfccdaf6 Updated README 2026-10-02 14:23:02 +02:00
maziggy 1505f8a61d Updated README 2026-10-02 14:22:48 +02:00
maziggy d7e99c1e53 Put back a slot's K-profile when the printer loses it (#3219) 2026-10-02 14:22:37 +02:00
maziggy d68a0888b8 Updated BACKERS 2026-10-02 14:22:25 +02:00
maziggy b102739cd6 Restart a camera stream that keeps repeating one frame (#3218, #3189)
After an RTSP session dropped, ffmpeg could keep writing the same JPEG
    indefinitely with no connection to the printer left (two hours at ~29 fps
    on a P2S), and every check that counts frames saw a healthy stream. The
    stream now restarts ffmpeg after 20 s without a changed frame, on the
    existing reconnect path, while viewers stay attached. If the first frame
    after the restart is the same picture again, the camera really shows a
    still scene (a dark, idle chamber): it is then only re-checked every
    5 minutes until the picture changes.
2026-10-02 14:22:13 +02:00
maziggy 14a5e33e47 Configure Orca Cloud filaments with their own filament ID (#3216)
OrcaSlicer's Sync filaments finds a slot's preset by the slot's filament
    ID alone. The Configure dialog looked up an Orca profile's ID in the
    browser and quietly sent the generic for the material when that came back
    empty, so Orca custom filaments reached the slicer as Generic and the log
    showed nothing. configure now resolves the ID on the server from
    orca_profile_id, follows inherits to the parent profile or the Bambu
    filament it was copied from, logs the outcome and reports a fallback,
    which the dialog shows as a warning.

    Slot presets also store the filament ID they were written with, so the
    slot card and the Configure dialog stop showing a preset once the slot is
    changed from OrcaSlicer's Device tab or the printer.

    Re-configuring a slot for another filament no longer carries over the old
    filament's active K-profile, which switched the slot back to the old
    filament.
2026-10-02 14:21:59 +02:00
maziggy e555469158 Stop firmware lookups when "Check printer firmware" is off 2026-10-02 14:21:43 +02:00
maziggy 9d694ecdaa Keep the Announcements entry for whoever may see announcements 2026-10-02 14:21:30 +02:00
maziggy 855ab1cdc1 Post work PR #3213 2026-10-02 14:21:14 +02:00
maziggy 5770ab88d7 Renew overlay camera connections after silent stalls (#3213) 2026-10-02 14:21:04 +02:00
maziggy 48bba41342 Post work PR #3212 2026-10-02 14:20:47 +02:00
maziggy f9449ed3c3 Fix streaming URL token preservation across reloads (#3212) 2026-10-02 14:20:34 +02:00
maziggy 03dbe90195 Let the File Manager fill the window on desktop (issue #3215)
The File Manager and G-code viewer were sized to 100vh-64px on lg+,
    subtracting a top bar that only exists in the compact layout, which
    left a 64px empty band under both pages. Use lg:h-screen instead.
2026-10-02 14:20:17 +02:00
maziggy 181db5b307 Let a sidebar app open a Bambuddy page in place
The frame an external link opens in can't navigate the Bambuddy
window, so links like Bambuddy Orders' "In Bambuddy" did nothing.
The framed page can now post bambuddy:navigate with a path; it is
accepted only from the frame, from the link's origin, and for a path
inside Bambuddy. The theme message announces canNavigate.
2026-10-02 11:55:48 +02:00
maziggy eb46458fb0 Updated README 2026-10-02 10:20:44 +02:00
maziggy 6c91e71f6d Updated README 2026-10-02 10:15:36 +02:00
maziggy bff7f68106 Put back a slot's K-profile when the printer loses it (#3219) 2026-10-02 10:04:48 +02:00
maziggy 737977740e Updated BACKERS 2026-10-02 09:35:37 +02:00
maziggy e0149ae4ac Restart a camera stream that keeps repeating one frame (#3218, #3189)
After an RTSP session dropped, ffmpeg could keep writing the same JPEG
indefinitely with no connection to the printer left (two hours at ~29 fps
on a P2S), and every check that counts frames saw a healthy stream. The
stream now restarts ffmpeg after 20 s without a changed frame, on the
existing reconnect path, while viewers stay attached. If the first frame
after the restart is the same picture again, the camera really shows a
still scene (a dark, idle chamber): it is then only re-checked every
5 minutes until the picture changes.
2026-10-02 08:50:19 +02:00
maziggy 02e39b18b9 Configure Orca Cloud filaments with their own filament ID (#3216)
OrcaSlicer's Sync filaments finds a slot's preset by the slot's filament
ID alone. The Configure dialog looked up an Orca profile's ID in the
browser and quietly sent the generic for the material when that came back
empty, so Orca custom filaments reached the slicer as Generic and the log
showed nothing. configure now resolves the ID on the server from
orca_profile_id, follows inherits to the parent profile or the Bambu
filament it was copied from, logs the outcome and reports a fallback,
which the dialog shows as a warning.

Slot presets also store the filament ID they were written with, so the
slot card and the Configure dialog stop showing a preset once the slot is
changed from OrcaSlicer's Device tab or the printer.

Re-configuring a slot for another filament no longer carries over the old
filament's active K-profile, which switched the slot back to the old
filament.
2026-10-02 08:32:57 +02:00
maziggy 0165dafd29 Stop firmware lookups when "Check printer firmware" is off 2026-10-01 16:27:07 +02:00
maziggy a81ac2cfb5 Keep the Announcements entry for whoever may see announcements 2026-10-01 15:59:54 +02:00
maziggy 6b6e3215d1 Post work PR #3213 2026-10-01 15:20:47 +02:00
Adam Spice d5ee699489 Renew overlay camera connections after silent stalls (#3213) 2026-10-01 15:16:59 +02:00
maziggy e982c71c1d Post work PR #3212 2026-10-01 15:03:22 +02:00
Adam Spice f083929480 Fix streaming URL token preservation across reloads (#3212) 2026-10-01 15:02:20 +02:00
maziggy 94b5d2e95b Let the File Manager fill the window on desktop (issue #3215)
The File Manager and G-code viewer were sized to 100vh-64px on lg+,
subtracting a top bar that only exists in the compact layout, which
left a 64px empty band under both pages. Use lg:h-screen instead.
2026-10-01 14:58:12 +02:00
maziggy 9d60b3aac7 Updated CHANGELOG 2026-10-01 13:11:23 +02:00
maziggy 9c66743055 Show the job the scheduler starts next on the printer card (#3200) 2026-10-01 13:06:01 +02:00
maziggy 91a04ae121 Count progress milestones from the first layer (#3211) 2026-10-01 13:05:46 +02:00
maziggy 9a5ab06ed7 Keep queued jobs when a printer refuses the upload (#3210) 2026-10-01 13:05:32 +02:00
maziggy 20df83589c Announcements: history, collapsed list, instant refresh, footer icon
- Expired messages stay readable under a collapsed "Earlier" section, as
      long as the feed keeps them (12 months, at most 50). They never count as
      unread or raise a banner; withdrawn ones are gone everywhere.
    - Each message is one row (level, date, title) that opens in place.
      Unread ones carry a dot and a New chip, and opening one is what marks
      it read; the banner's Read more opens the panel on its message.
    - A fetch that brings a newer feed broadcasts an empty
      announcements_changed event, so open pages show the new dot and banner
      without a reload.
    - The sidebar entry is a megaphone icon with an unread badge, in the
      footer row left of System. Footer icons are 32px with no gap so seven
      fit an expanded sidebar; with authentication on, logout used to wrap
      onto a line of its own.
2026-10-01 13:05:15 +02:00
maziggy cd4837e934 Housekeeping 2026-10-01 13:04:52 +02:00
maziggy 42d1083607 Show announcements from the Bambuddy maintainers
Fetch a signed feed.json from the public bambuddy-notifications repo on
    GitHub at startup and every 6 hours. Nothing about the install is sent;
    targeting (version, beta channel, install type) is decided locally.

    - Ed25519 against a key built into the app; an older serial is refused so a
      withdrawn message can't come back. The feed replaces the stored list, and
      a failed or rejected fetch keeps the last good one.
    - Sidebar entry above System with an unread count, a slide-over list, and a
      banner for unread important/critical messages. Read state per user.
    - Admins by default; Settings > General > Updates can show them to all
      users or switch them off, which also stops the fetch.
    - Plain text only; links to github.com and bambuddy.cool only.
2026-10-01 13:04:34 +02:00
maziggy 117fe5d764 Report a refused RFID refresh, and fall back to M620 R (#3206)
ams_get_rfid was published and reported as success without reading the
    printer's answer. X1Plus on base 01.08.02.00 answers FAIL / ERROR STATE,
    so the user saw "Refreshing" and the K profile was re-applied to a slot
    that was never read.

    - Wait for the ams_get_rfid answer (matched by sequence_id).
    - On a refusal from an idle X1/P1/A1, send the legacy M620 R<ams*4+slot>
      gcode Bambu Studio uses for those models, AMS units 0-3 only. Never
      during a job, never on newer-protocol models; printers that accept
      ams_get_rfid never see it.
    - Refused: the route returns 400 with the printer's reason and no PA
      re-apply is scheduled. No answer still counts as accepted.
    - Log the answers at INFO so refusals reach support bundles.
2026-10-01 13:04:12 +02:00
maziggy 888f6c4325 Make the {finish_photo_url} link open with authentication on
With authentication on, {finish_photo_url} pointed at the archive photo
    route, which needs a media token. A link tapped in Telegram, CallMeBot
    or a Home Assistant notification has none, so it only ever answered 401.

    _finish_photo_for_notification() now builds the link and the attachment
    bytes. With authentication off the link is the archive URL, unchanged.
    With it on, the photo is also saved through the notification photo
    store from #3199, and the link points there. That is an unguessable
    name that opens this one photo, for 3 days. If the auth check fails,
    it is treated as on. With auth on and the photo missing, no link is
    set rather than one that 401s. Photos over 2.5 MB are still linked but
    not attached, as before.
2026-10-01 13:03:46 +02:00
maziggy d06a741330 Post work PR #3199 2026-10-01 13:02:41 +02:00
maziggy 8c7dcebcc4 Speed up frontend typecheck and lint, and fail test_frontend.sh on any error
tsc -b re-checked every file on every run: the configs named a
    tsBuildInfoFile but never switched incremental on, and with noEmit there
    are no outputs for -b to compare against. Enabling incremental in
    tsconfig.app.json and tsconfig.node.json makes later runs reuse the
    cache (28 s -> 0.5 s when nothing changed).

    eslint ran on one thread with no cache. The lint script now uses
    --concurrency auto and --cache in node_modules/.cache/eslint/
    (42 s -> 14 s on a first run, 1.3 s after that). The config isn't
    type-aware, so the cache is safe.

    test_frontend.sh runs typecheck and lint in parallel, then the tests,
    and exits 1 if any step fails. Before, a type or lint error scrolled
    past and the exit code only reflected the tests.
2026-10-01 13:02:18 +02:00
maziggy 73d10ad65a Add feature: Attach camera snapshots to notifications (issue #3089) (#3199) 2026-10-01 13:01:57 +02:00
maziggy 1400e50a0d Give the two stock alerts something that fires them (issue #2955) (#3196) 2026-10-01 13:01:21 +02:00
maziggy dc80b6a91b Merge commit 'e30db2566ed89e68f3bf9a1a39fe2baf8ff6889e' into 1.2.5.7 2026-10-01 13:00:26 +02:00
maziggy e634550de7 Add "Combine to 3MF" for slicing several STLs on one plate (#3162) 2026-10-01 13:00:10 +02:00
maziggy 6968433d70 Show the job the scheduler starts next on the printer card (#3200) 2026-10-01 12:58:13 +02:00
maziggy 995b4ada59 Count progress milestones from the first layer (#3211) 2026-10-01 12:48:02 +02:00
maziggy d4f66d99a4 Keep queued jobs when a printer refuses the upload (#3210) 2026-10-01 12:18:23 +02:00