maziggy 2443cea174 feat: USB cameras are picked from a list of detected devices (refresh, not-found marking, manual fallback, Docker hint; device listing off the event loop, /dev/video0-99 only); fix: timelapse editor saves as a background job with progress and cancel (ffmpeg stopped on cancel, no overwrite of a timelapse removed or replaced meanwhile, ffprobe/thumbnail timeouts), and the music volume is applied 1 gün önce
..
__init__.py ff53e62ef8 Add comprehensive automated testing infrastructure 10 ay önce
test_active_print_binding_names.py 3c2ab99635 fix(archives): re-sliced archives read as not printed with a cost; restore checks its numbers; prints are bound under one set of names 4 gün önce
test_admin_only_auth_config.py 3542005110 test: register sqlite_only and docker marks in pytest.ini, drop redundant asyncio marks 5 gün önce
test_advanced_auth_api.py ba1c97c808 feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933) 6 ay önce
test_ams_change_kprofile_reapply_44.py f45cc599f3 fix(kprofiles): an AMS change leaves the K-profile to the lost-selection check; command answers no longer change the nozzle; unconfirmed writes say so and edits read back; skip refusals are logged; stop-drying toast says sent 4 gün önce
test_ams_drying_latch_persistence.py 7a9b4921bd Stop the AMS temperature alert firing for heat the user asked for (#1802) 2 ay önce
test_ams_history_api.py dd6696470f Security hardening (maziggy/bambuddy-security #28) 1 hafta önce
test_ams_labels_api.py ed462c5cca Add tests, docs, and lint fix for AMS Info Card feature (#570) 7 ay önce
test_ams_remain_sync_while_printing.py 5afb485c12 fix(inventory): a finished print is not charged a second time by an AMS update while its usage is booked; a completion reported without any file name closes the print session instead of keeping the AMS weight sync off until the next print 3 gün önce
test_ams_rest_ws_parity.py 113f08a1a1 fix(printers): REST and WebSocket share the AMS serialiser, override picker sees both nozzles without an AMS 5 gün önce
test_ams_slot_material_2902.py a8965b0e9f Use Spoolman 0.27's native tags in Spoolman mode (issue #3168) (#3252) 2 hafta önce
test_ams_slot_sub_brand_none_2987.py 0d21239e18 Send AMS tray colours as uppercase hex (issue #2987) 1 ay önce
test_announcements_api.py a81ac2cfb5 Keep the Announcements entry for whoever may see announcements 3 hafta önce
test_api_key_cloud_access.py cf98daa0bb Security hardening (maziggy/bambuddy-security #10) 2 hafta önce
test_api_key_id_reuse.py 6a627a85e1 fix(api-keys): a deleted key's connections and links don't pass to the next key 1 hafta önce
test_api_key_infra_errors.py 8d6e53954c fix(auth): a database error while checking an API key is a 503, not an invalid key 1 hafta önce
test_api_key_own_rows.py 6cdf4eb2d0 Tests: 21 in the new test_api_key_own_rows.py. Before the change, 8 of them failed; the rest pass either way because they check refusals and unchanged behaviour. All 7 mutations were killed. In the #3256 tests (test_api_key_queue_acts_as_owner.py), I tightened the bulk assertion and fixed the outdated docstring. The wiki's API keys page had documented the old refusal; that block is rewritten. 2 gün önce
test_api_key_owner_authority_1894.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_api_key_queue_acts_as_owner.py 6cdf4eb2d0 Tests: 21 in the new test_api_key_own_rows.py. Before the change, 8 of them failed; the rest pass either way because they check refusals and unchanged behaviour. All 7 mutations were killed. In the #3256 tests (test_api_key_queue_acts_as_owner.py), I tightened the bulk assertion and fixed the outdated docstring. The wiki's API keys page had documented the old refusal; that block is rewritten. 2 gün önce
test_archive_cost_fields_by_owner.py 5782e46639 Security hardening (maziggy/bambuddy-security #39) 6 gün önce
test_archive_edit_cost_and_reprint.py 461c3f045d fix(archives): a cost set through the API or by Recalculate reaches the run that had it; edits during a reprint leave the previous run alone; archive cost bounded; a 422 survives Infinity/NaN 3 gün önce
test_archive_edit_status_words.py a3ab88c9b2 fix(archive): Edit Archive sets finished outcomes only, cancelled and aborted apart 6 gün önce
test_archive_purge_api.py e7045597bc fix(archives): bulk and auto purge now honour the soft / hard delete choice from #1343 (#1390 follow-up) 5 ay önce
test_archive_update_targets.py e0e2799f40 fix(archives): an archive edit cannot move it to a printer outside the user's groups 1 hafta önce
test_archives_api.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_archives_last_per_printer.py 7d46baea65 Show the last print on printer cards and lazy-load file thumbnails 2 hafta önce
test_assignment_routes_take_the_slot_lock.py 5b34997dfa fix(inventory): hand assign, unassign and add-from-slot wait for the printer's slot lock; the AMS remain sync and a print's usage no longer overwrite a weight set by hand or weighed meanwhile; a spool deleted while a print is charged is skipped 3 gün önce
test_auth_api.py 7c117dc6bc Let API clients resolve user ids to names (#1894) 2 ay önce
test_auth_apikey_rbac.py 69c2ff1b44 test(auth): pin disabled keys, ended sessions on every gate, own-only key owners, long-lived token scope, model targets of limited keys; stricter route-auth backstop 3 gün önce
test_auth_middleware_errors.py eef0e4bd92 fix(auth): route errors are 500s and reach bambuddy.log, and a database error no longer signs users out 1 hafta önce
test_available_filaments.py 113f08a1a1 fix(printers): REST and WebSocket share the AMS serialiser, override picker sees both nozzles without an AMS 5 gün önce
test_background_dispatch_api.py 4c67d8a4e1 feat: Unify print dispatch through the scheduler (#1625) 3 ay önce
test_backup_manifest.py b9b62f739f fix(virtual-printer): a late slicer update leaves a queue job the scheduler already claimed alone (its archive still keeps the slicer's AMS pick); a backup restore really stops the virtual printers; the legacy PUT /settings/virtual-printer refuses the settings it no longer applies and is no longer blocked by stale legacy values 2 gün önce
test_bare_hex_filament_color_repair.py 879acdbf1f fix(archives): archives made without their 3MF store #RRGGBB colours (existing ones repaired at startup), find AMS-HT filament and are priced from their spools once the 3MF arrives; nozzle temperature of the printed plate 3 gün önce
test_batch_status_after_cancel.py e250281c17 feat(queue): a grouping that ended in failures is marked failed 6 gün önce
test_bulk_archive_routes_scope.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_bulk_edit_dispatch_claim.py abc971a718 fix(queue): a job edited during a scheduler round waits for the next one instead of being dispatched or mapped from the stale copy; the claim requires the selected printer; bulk edit rechecks the claim; no transaction held through a power-on wait 3 gün önce
test_camera_api.py cf0ba31f19 fix(camera): the plate check holds the chamber light like other camera uses, so a live view opened meanwhile keeps it; captures use the live frame of a watched single-client external camera; a reconnecting X1C live view is not ended by the cleanup; camera test/diagnose/plate routes release their DB connection before capturing 2 gün önce
test_camera_external_fanout.py 31888777ae fix(camera): external cameras share one stream per printer 5 gün önce
test_camera_light_api.py 6954cff3ee Turn on the chamber light while the camera is in use 2 hafta önce
test_camera_live_view_snapshots.py 7cea7acf0a fix(camera): snapshots and the camera test use the live view, the janitor kills only our ffmpeg 5 gün önce
test_camera_stream_recheck.py 31888777ae fix(camera): external cameras share one stream per printer 5 gün önce
test_camwall_api.py 45921b7a56 Limit groups to selected printers (issue #1727) 3 hafta önce
test_client_ip.py ba1c97c808 feat: Two-Factor Authentication (TOTP, Email OTP) and OIDC/SSO – full implementation with admin UI (#933) 6 ay önce
test_cloud_auth.py 036f0a688f Merge pull request #2845 from pascalheidmann/refactor/modular-import 1 ay önce
test_cloud_filament_id_map_accounts.py 26e9a05707 fix(queue): a plate printed from the external spool keeps the AMS off on multi-plate files; slot reuse respects the finish; any-model VPs keep the AMS on; cloud filament id read from the preset too 4 gün önce
test_cloud_token_auth_migration.py 036f0a688f Merge pull request #2845 from pascalheidmann/refactor/modular-import 1 ay önce
test_cloud_upstream_errors.py bdd3111547 fix(cloud): report an unreachable Bambu Cloud as 502, not as a server error or wrong credentials 1 hafta önce
test_color_catalog_extras.py 6b477088a2 fix(queue): extend Charcoal-style label fix to Specific-Printer panel (#1718 round 3) 4 ay önce
test_color_map_api.py 3901043238 Name an AMS slot's colour by its material, not its hex alone (issue #2875) 2 ay önce
test_completion_guard_wiring_2829.py a9624d3887 Match a print completion to its queue job the way the printer names it (#2829) 2 ay önce
test_completion_keeps_printer_charging.py 5afb485c12 fix(inventory): a finished print is not charged a second time by an AMS update while its usage is booked; a completion reported without any file name closes the print session instead of keeping the AMS weight sync off until the next print 3 gün önce
test_confirm_outcome_queue_defaults_1898.py 44c7e6fb39 Post-print outcome confirmation: good/reject verdicts, one-tap links, yield stats (#3047) 3 hafta önce
test_connected_apps.py d56b48c499 feat(auth): connected apps - sign in to external applications with Bambuddy 3 hafta önce
test_connection_tests_use_the_form.py 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 2 gün önce
test_cost_statistics.py 9613d65e0d fix(archives): archives a spool was used for can be deleted on PostgreSQL 1 hafta önce
test_daily_digest_delivery.py dad7fea37b fix(notifications): the daily digest goes out during quiet hours and a failed one keeps its events for the next (dropped after two days); a deleted queued archive no longer leaves its creator to be named on a later print; a print closed at reconnect reports no actual duration; the template editor knows the print outcome confirmation and names every event 2 gün önce
test_deleted_printer_keeps_name_2873.py 28781ea558 Keep the printer's name on statistics after it is deleted (issue #2873) 2 ay önce
test_design_settings_plates.py 7e77bf5833 Take the layer height from the plate that actually printed 2 ay önce
test_discovery_api.py d73da5e0ef Auto-detect subnet for printer discovery 8 ay önce
test_dispatched_print_named_like_calibration.py 92d299bf20 Security hardening (maziggy/bambuddy-security #43) 4 gün önce
test_drying_screen_only.py ca3f6e5ee0 fix(drying): P1 AMS drying is screen-only — stop offering it (#2533) 3 ay önce
test_ended_session_gates.py 69c2ff1b44 test(auth): pin disabled keys, ended sessions on every gate, own-only key owners, long-lived token scope, model targets of limited keys; stricter route-auth backstop 3 gün önce
test_endpoint_auth.py 2fd90e9dce refactor(api): rename /filaments/ to /filament-catalog/ for clarity (#427) 8 ay önce
test_export_date_to_and_speed_mode.py 85097fbfda fix(api): export date_to includes the whole end day; invalid print speed mode is a 422 5 gün önce
test_external_folders_api.py 1bdd7d224a fix(library): sort File Manager by real filesystem mtime, recursively (#2680) 2 ay önce
test_external_links_api.py 83cbac04b7 - Add interactive API Browser to Settings > API Keys 9 ay önce
test_external_live_view_defers_captures.py cf0ba31f19 fix(camera): the plate check holds the chamber light like other camera uses, so a live view opened meanwhile keeps it; captures use the live frame of a watched single-client external camera; a reconnecting X1C live view is not ended by the cleanup; camera test/diagnose/plate routes release their DB connection before capturing 2 gün önce
test_external_print_confirmation_1898.py 5fec296d72 chore(virtual-printer): log K-profile, filament and load commands from the slicer in full 4 gün önce
test_external_spool_use_ams_3087.py 26e9a05707 fix(queue): a plate printed from the external spool keeps the AMS off on multi-plate files; slot reuse respects the finish; any-model VPs keep the AMS on; cloud filament id read from the preset too 4 gün önce
test_failure_reason_vocabulary_migration.py ac976e0003 fix(archives): kill-switch stops archive as cancelled; offline queue stop stores a reason key; SpoolBuddy config save offers a daemon restart 4 gün önce
test_fallback_archive_photos_1820.py 0623cc46df Repair no-3MF archives' photos and their silent filament writes (#1820) 2 ay önce
test_filament_requirements_plate_nozzle.py 19212d066d fix(print): Print Anyway per printer, variant plate, nozzle per plate, sliced .3mf drop 6 gün önce
test_filaments_api.py 2fd90e9dce refactor(api): rename /filaments/ to /filament-catalog/ for clarity (#427) 8 ay önce
test_finance_api.py 4a85e033c0 fix(finance): show the currency the install is configured for (issue #3123) 1 ay önce
test_firmware_check_setting.py 0165dafd29 Stop firmware lookups when "Check printer firmware" is off 3 hafta önce
test_ftp_list_timeout_route.py 27003de368 fix(ftp): a slow folder listing is reported as slow instead of "printer unavailable", and a refresh joins the listing still running instead of starting another; printer file times without a year are dated against UTC, so evening files on hosts behind UTC are not dated a year back 2 gün önce
test_github_backup_api.py 57ed8253ea Security hardening (maziggy/bambuddy-security #N) 2 gün önce
test_github_restore_api.py 9284240279 fix(backup): gate every restore category on the permission owning its rows (#2656) 2 ay önce
test_global_auto_archive_switch.py c9b551df0b fix(settings): saved settings take effect, unused ones are removed 6 gün önce
test_groups_api.py cecdf8f5a7 feat(auth): permission-delegated Settings + Group editor routes; fix group-edit cache stale-read (#1083) 6 ay önce
test_ha_sensor_scope.py 2a03aa612d Security hardening (maziggy/bambuddy-security #32) 1 hafta önce
test_ha_sensors_api_1148.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_idle_only_printer_actions.py 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 2 gün önce
test_inventory_ams_weight_sync_lock.py 5afb485c12 fix(inventory): a finished print is not charged a second time by an AMS update while its usage is booked; a completion reported without any file name closes the print session instead of keeping the AMS weight sync off until the next print 3 gün önce
test_inventory_assign.py 26e9a05707 fix(queue): a plate printed from the external spool keeps the AMS off on multi-plate files; slot reuse respects the finish; any-model VPs keep the AMS on; cloud filament id read from the preset too 4 gün önce
test_inventory_bulk.py fb3821630f feat(inventory): batch / mass edit on the Filament tab (#1795) 4 ay önce
test_inventory_csv.py 5edbe7586d fix(inventory): deleting a spool frees and announces its slots; scale, AMS and manual weight syncs and a finished print's usage refresh other tabs and the printer cards; a deleted printer's spool assignments go with it on SQLite; a pre-assigned slot the printer could not be told about is retried; CSV last_used is stored in UTC 3 gün önce
test_inventory_from_slot_no_tag.py 8a26e7d753 fix(inventory): stop popping the unknown-tag modal for slots with no RFID 3 ay önce
test_inventory_link_tag.py eef0e4bd92 fix(auth): route errors are 500s and reach bambuddy.log, and a database error no longer signs users out 1 hafta önce
test_kill_switch_owned_prints.py c9c13b6440 fix(archives): the A1/A1 Mini/P1/A2L built-in calibration is not archived as a print 4 gün önce
test_kill_switch_stop_archived_cancelled.py ac976e0003 fix(archives): kill-switch stops archive as cancelled; offline queue stop stores a reason key; SpoolBuddy config save offers a daemon restart 4 gün önce
test_kprofile_save_confirmation_g7.py f45cc599f3 fix(kprofiles): an AMS change leaves the K-profile to the lost-selection check; command answers no longer change the nozzle; unconfirmed writes say so and edits read back; skip refusals are logged; stop-drying toast says sent 4 gün önce
test_labels.py c2bc41a5ef fix(spoolman): a location delete is refused while Spoolman can't be read; labels print for archived spools; archived spools are not assigned or linked to slots; slot requests outside the AMS ranges are refused before Spoolman is written; bulk counter resets report the spools that failed 3 gün önce
test_ldap_group_sync.py 5fea138f5d fix(auth): preserve manually-assigned groups across LDAP logins (#1292) 5 ay önce
test_ldap_provision.py 1bb5e49d6a Security hardening (maziggy/bambuddy-security #40) 5 gün önce
test_library_add_to_queue_plate_filament.py 918aa26ffa fix(queue): models matched without regard to case when adding jobs and in pipelines, stored in the printers' spelling; webhook reprints reuse the slicer's AMS slots; a multi-plate file queued without a plate stores the plate that prints 3 gün önce
test_library_api.py c6598afec8 test: library/queue probe files get unique names, so parallel workers no longer delete each other's files ("File not found on disk" flake) 2 gün önce
test_library_combine.py b67c9b572c Add "Combine to 3MF" for slicing several STLs on one plate (#3162) 3 hafta önce
test_library_file_metadata_3077.py 12dddada0a File Manager: external link, notes and photos on library files (#3128) 3 hafta önce
test_library_folder_archive_scope.py 978d70370d Security hardening (maziggy/bambuddy-security #33) 1 hafta önce
test_library_folder_ownership_3201.py 6735e45563 Give library folders an owner and let admins share them (#3201) 2 hafta önce
test_library_pdf_thumbnail.py 926957f648 Post work-2 PR #2990 3 hafta önce
test_library_preview_thumbnail_api.py 226826f3bd File Manager previews: fullscreen and zoom, image previews, double-click to open (#2990) 3 hafta önce
test_library_slice_api.py ad3b5f1982 Map the P-series model codes to the right printers 3 hafta önce
test_library_tags_api.py bb42b423af feat(file-manager): user-authored tags for cross-cutting filtering (#1268) 4 ay önce
test_library_trash_api.py 02616f0c91 fix(queue): stop a library-file delete from destroying the jobs queued against it (#2819) 2 ay önce
test_library_variants_api.py a9b57ccd3c Add variant-group endpoints and cross-model queue creation (#671, #2570) 2 ay önce
test_local_login_gate.py aef4f3a3e9 fix(oidc): strip the required BAMBUDDY_OIDC_* values and register the local-login bypass 2 ay önce
test_location_ha_sensors_api.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_locations_api.py c2bc41a5ef fix(spoolman): a location delete is refused while Spoolman can't be read; labels print for archived spools; archived spools are not assigned or linked to slots; slot requests outside the AMS ranges are refused before Spoolman is written; bulk counter resets report the spools that failed 3 gün önce
test_long_lived_tokens_api.py d336bb2ad2 Merge printer-scoped access (#1727) and the queue review gate (#1620) into dev 2 hafta önce
test_main_plug_pick_2830.py 9a2b811566 Show the plug that powers the printer in the card's Power row (#2830) 2 ay önce
test_maintenance_api.py 175758d25a fix(maintenance): a printer's time offline is not counted as print time; duplicate maintenance items are merged on upgrade and prevented by a unique index; the "performed" response honours the item's own interval type 2 gün önce
test_maintenance_item_get_or_create.py 175758d25a fix(maintenance): a printer's time offline is not counted as print time; duplicate maintenance items are merged on upgrade and prevented by a unique index; the "performed" response honours the item's own interval type 2 gün önce
test_makerworld_apikey_auth.py cf98daa0bb Security hardening (maziggy/bambuddy-security #10) 2 hafta önce
test_makerworld_permission_gate.py 036f0a688f Merge pull request #2845 from pascalheidmann/refactor/modular-import 1 ay önce
test_manyfold_api.py 3480d39434 Browse a Manyfold library and import its files (issue #1471) 2 hafta önce
test_material_number_api.py 71d4b2f70d Material number as a first-class spool field (#2994) 3 hafta önce
test_media_token_3025.py 89c4ac5583 Post work PR #2956 3 hafta önce
test_media_token_with_headers_scope.py d1f50973c6 Security hardening (maziggy/bambuddy-security #37) 6 gün önce
test_metrics_api.py 487b48c5af Security hardening (maziggy/bambuddy-security #16) 1 hafta önce
test_mfa_api.py 9fe528d9a3 fix(users): admins can remove a locked-out user's 2FA from Edit user 5 gün önce
test_mode_switch_preserves_assignments_2812.py 08a58b1ef4 Keep both modes' slot assignments across an inventory mode switch (issue #2812) 1 ay önce
test_notification_app_message.py 6855d65d12 Let other applications send messages through the notification channels 3 hafta önce
test_notification_provider_secrets.py 487b48c5af Security hardening (maziggy/bambuddy-security #16) 1 hafta önce
test_notification_scope.py 7b27d2a654 Security hardening (maziggy/bambuddy-security #31) 1 hafta önce
test_notification_scope_without_printer.py e05a917445 fix(notifications,drying): printer-limited channels get only their printer's events; blocking mode pre-dries for scheduled jobs; model jobs say "(drying)"; remove dead load-tray state 4 gün önce
test_notification_template_editor_events.py dad7fea37b fix(notifications): the daily digest goes out during quiet hours and a failed one keeps its events for the next (dropped after two days); a deleted queued archive no longer leaves its creator to be named on a later print; a print closed at reconnect reports no actual duration; the template editor knows the print outcome confirmation and names every event 2 gün önce
test_notifications_api.py 4fdc55b884 Let the two stock alert toggles reach the database (issue #2945) (#2956) 3 hafta önce
test_notify_provider_api.py 487b48c5af Security hardening (maziggy/bambuddy-security #16) 1 hafta önce
test_obico_api.py cfb5c54f19 Security hardening (maziggy/bambuddy-security #13) 1 hafta önce
test_oidc_env_apply.py 77c9bdd694 fix(oidc): reject an unrecognized boolean instead of guessing 2 ay önce
test_oidc_env_lock.py c9ee259807 feat(oidc): refuse API writes to the env-managed provider 2 ay önce
test_oidc_env_startup.py e7a413e745 feat(oidc): apply the env provider during startup 2 ay önce
test_oidc_group_sync.py d04514c842 Sync OIDC provider groups to BamBuddy groups on every login (issue #3107) (#3122) 3 hafta önce
test_oidc_group_sync_routes.py d04514c842 Sync OIDC provider groups to BamBuddy groups on every login (issue #3107) (#3122) 3 hafta önce
test_oidc_icon_api.py 7d07b92bec Post work PR #1333 5 ay önce
test_oidc_icon_blob_roundtrip.py 9e7f6cafd9 fix(backup): preserve NOT NULL/DEFAULT/FK/UNIQUE in Postgres→SQLite backup (#2526) 3 ay önce
test_oidc_icon_deferred_load.py 8a7598f6b5 feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 5 ay önce
test_oidc_relogin.py 4d8dbc8336 fix(auth): cleanup orphan OIDC/MFA rows when user is deleted (#1285) (#1295) 5 ay önce
test_oidc_unlink_last_link.py 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 2 gün önce
test_one_print_cost_b5.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_orca_cloud_device.py 00251fe808 feat(orca-cloud): pair via RFC 8628 device flow, replacing the paste-based sign-in 3 ay önce
test_orca_slot_filament_id_3216.py 02e39b18b9 Configure Orca Cloud filaments with their own filament ID (#3216) 2 hafta önce
test_overlay_branding.py 67d3e7e869 Add stream overlay logos and progress colours (#3208) 2 hafta önce
test_overlay_status_api.py d336bb2ad2 Merge printer-scoped access (#1727) and the queue review gate (#1620) into dev 2 hafta önce
test_ownership_permissions.py 6735e45563 Give library folders an owner and let admins share them (#3201) 2 hafta önce
test_password_reset_template_routes.py 9d91887ee9 fix(auth): the password reset email is built from the Password Reset template 1 hafta önce
test_patch_null_on_required_fields.py 8e5116fe20 fix(api): null for a field that can't be empty leaves it unchanged 1 hafta önce
test_pending_upload_archive_project.py a399ef0361 fix(pending-uploads): check the project before archiving an upload into it 1 hafta önce
test_pending_upload_display_name.py ac72aacbfa Tool: Bandit B108 5 ay önce
test_permission_backfills_once_3238.py 175e683837 Give backfilled group permissions once, not on every start (#3238) 2 hafta önce
test_pipeline_runs_api.py 2b5cd87c7f fix(queue): pipeline cancel stops the preheat and frees the budget; an offline stop frees the budget; the SD cleanup at a print's end is bounded to 45 s; a refused print start is logged and retried at once without a reconnect 3 gün önce
test_plate_clear_notification.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_plate_filament_preset.py a6a4b7648c fix(queue): an override counts an equivalent filament type in its colour; preheat and keep-warm heat the bed for the plate the job prints; queue colour names and the colour name saved with an override follow the filament's product line 3 gün önce
test_preconfig_replay_failure.py 5edbe7586d fix(inventory): deleting a spool frees and announces its slots; scale, AMS and manual weight syncs and a finished print's usage refresh other tabs and the printer cards; a deleted printer's spool assignments go with it on SQLite; a pre-assigned slot the printer could not be told about is retried; CSV last_used is stored in UTC 3 gün önce
test_print_batch_orders.py e9627e44a2 Start queued jobs in list order, whether pinned or "Any <model>" (#3200) 3 hafta önce
test_print_complete_end_to_end.py ac4806f029 fix: a failed first run no longer leaves the archive at its partial cost (built-in inventory); completion stops the start cost estimate before writing the real cost; 2FA/SSO logins report LDAP/OIDC users' auth source; a fault in both print_error and HMS is listed once; a refused H2D load's tray target expires; refused K-profile re-applies are logged; the cloud filament-name map is fetched once per account without holding a DB connection; the library edit route refuses folder changes across the external boundary; a slow slice-progress answer is not reported as an unreachable sidecar 2 gün önce
test_print_confirmation.py 44c7e6fb39 Post-print outcome confirmation: good/reject verdicts, one-tap links, yield stats (#3047) 3 hafta önce
test_print_lifecycle.py 449060ce0a bugfix (aborted prints were not billed in specific cases) 2 ay önce
test_print_log_one_entry_per_run.py bb0bf03f68 fix(archives): an offline stop is logged and its real end replaces it; one log entry per run; untracked completions and print start find the print's own archive and 3MF 3 gün önce
test_print_queue_api.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_print_start_name_match_ap2.py 29774ff975 fix(archive): a print of a file whose last print was never closed gets its own archive 6 gün önce
test_print_start_printer_deleted_midway.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_printer_camera_url_credentials.py 929e89d6ce Security hardening (maziggy/bambuddy-security #17) 1 hafta önce
test_printer_delete_leftovers.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_printer_delete_scopes.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_printer_file_download_errors.py 026acaf511 fix(printers): the plate picker downloads a printer's 3MF once 5 gün önce
test_printer_id_zero.py 26a8a09937 fix(projects): refuse an unknown priority on create, keep imported statuses valid, repair stored ones 1 hafta önce
test_printer_ip_change_syncs_vps.py c23c073dd1 fix(virtual-printer): proxy VPs stop restarting on every sync, renames and printer IP changes reach the slicer 6 gün önce
test_printer_locations_api.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_printer_scope_1727.py 69c2ff1b44 test(auth): pin disabled keys, ended sessions on every gate, own-only key owners, long-lived token scope, model targets of limited keys; stricter route-auth backstop 3 gün önce
test_printers_api.py ab5ccc1082 fix(printers): a Stop on an idle printer no longer marks it as user-stopped, so a later failed print is not reported as cancelled; Configure Slot warns when a manual K value could not be sent; Skip Objects and the connection diagnostic release their DB connection before talking to the printer 2 gün önce
test_project_batch_scope.py fbd506557a fix(projects): adding archives or queue jobs to a project keeps to the user's printers and prints 1 hafta önce
test_project_bom_archive_link.py 9c9278e673 fix(projects): a project's BOM no longer shows archives from printers outside the user's groups 1 hafta önce
test_project_import_folders.py df3d016b53 Security hardening (maziggy/bambuddy-security #35) 6 gün önce
test_project_import_priority.py 26a8a09937 fix(projects): refuse an unknown priority on create, keep imported statuses valid, repair stored ones 1 hafta önce
test_project_priority_status_repair.py 26a8a09937 fix(projects): refuse an unknown priority on create, keep imported statuses valid, repair stored ones 1 hafta önce
test_projects_api.py 49879b8d69 fix(projects): the project timeline loads again with queued or printing jobs 1 hafta önce
test_projects_batches_scope.py fa8d670691 Security hardening (maziggy/bambuddy-security #30) 1 hafta önce
test_queue_creation_attribution.py c6598afec8 test: library/queue probe files get unique names, so parallel workers no longer delete each other's files ("File not found on disk" flake) 2 gün önce
test_queue_creation_paths_c4.py f761a3ae97 fix(queue): every way of adding a job announces it, applies the default print options and keeps its cost centre 5 gün önce
test_queue_estimate_spoolman_prices.py 141ec5dbb3 fix(spoolman): failed prints are logged with their spool cost, queue estimates use Spoolman prices 6 gün önce
test_queue_item_printer_change.py 2699bebc37 fix(queue): a job moved to another printer drops the old printer's settings 6 gün önce
test_queue_nozzle_rack_choice_api_1784.py 3954d3a7e6 Choose which rack nozzle each filament prints from on an H2C (#1784) 2 ay önce
test_queue_review_1620.py c6598afec8 test: library/queue probe files get unique names, so parallel workers no longer delete each other's files ("File not found on disk" flake) 2 gün önce
test_queue_source_gate.py 72dfa7b168 Apply the reprint checks to re-slicing an archive with the built-in slicer. 1 hafta önce
test_queue_start_user_attribution.py e965d22f38 A queued print that never starts no longer marks the printer's next print as started by Bambuddy. 6 gün önce
test_queue_target_model_case.py 918aa26ffa fix(queue): models matched without regard to case when adding jobs and in pipelines, stored in the printers' spelling; webhook reprints reuse the slicer's AMS slots; a multi-plate file queued without a plate stores the plate that prints 3 gün önce
test_queue_variants_api.py 918aa26ffa fix(queue): models matched without regard to case when adding jobs and in pipelines, stored in the printers' spelling; webhook reprints reuse the slicer's AMS slots; a multi-plate file queued without a plate stores the plate that prints 3 gün önce
test_read_permission_backfill_migration.py b23cb69a66 fix(permissions): self-heal Administrators to ALL_PERMISSIONS on upgrade + Pipelines runs dashboard polish 3 ay önce
test_recreated_username.py 6a627a85e1 fix(api-keys): a deleted key's connections and links don't pass to the next key 1 hafta önce
test_refused_header_error_texts.py d3827e646a Security hardening (maziggy/bambuddy-security #23) 1 hafta önce
test_removed_unwired_routes.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_reprint_adoption.py a8270b8fa2 fix(archive): reprints start clean, deleted archives are archived anew 6 gün önce
test_reslice_archive_status_cost.py 3c2ab99635 fix(archives): re-sliced archives read as not printed with a cost; restore checks its numbers; prints are bound under one set of names 4 gün önce
test_runtime_disconnect_gap.py 175758d25a fix(maintenance): a printer's time offline is not counted as print time; duplicate maintenance items are merged on upgrade and prevented by a unique index; the "performed" response honours the item's own interval type 2 gün önce
test_scheduler_budget_reservation.py 4a85e033c0 fix(finance): show the currency the install is configured for (issue #3123) 1 ay önce
test_scheduler_nozzle_rack_dispatch_1784.py 89dde591f2 Resolve dispatch plate_id from the archive instead of assuming 1 (#2951) 3 hafta önce
test_security.py 877b5e3afe Security hardening (maziggy/bambuddy-security #14) 1 hafta önce
test_security_headers.py 226826f3bd File Manager previews: fullscreen and zoom, image previews, double-click to open (#2990) 3 hafta önce
test_session_end_closes_sockets.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_session_policy.py 2940fbdcf7 feat(auth): admin-configurable session lifetime ceiling (#1706) 4 ay önce
test_settings_and_plug_secrets.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_settings_api.py 487b48c5af Security hardening (maziggy/bambuddy-security #16) 1 hafta önce
test_settings_api_key_scrubbing.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_settings_electricity_price.py ae29a7dcd3 fix(api-keys): expose narrowly-scoped "Update electricity price" toggle (#1356) 5 ay önce
test_settings_ui_flags_3023.py c9b551df0b fix(settings): saved settings take effect, unused ones are removed 6 gün önce
test_settings_ui_preferences.py 68b9d741d9 feat(humidity): per-filament humidity threshold for auto-drying + alarms (#1605) 4 ay önce
test_sjf_scheduling.py 10c261dcf2 chore(tests): suppress B108 on dummy /tmp test fixtures 6 ay önce
test_slice_archive_output_path_2832.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_slicer_loaded_spools_3172.py cacaaf4dae fix(printers): live status carries nozzles, firmware, developer mode and the print's AMS mapping; run-out hint narrows by nozzle; AMS-HT is its unit id; rotate check sees loaded slots 4 gün önce
test_slicer_pipelines_api.py d6bdb7e200 feat(slicer): Slicer Pipelines — save & reuse a preset bundle in one click (#1425 PR A) 3 ay önce
test_slicer_token_reuse_3029.py 89c4ac5583 Post work PR #2956 3 hafta önce
test_slot_spool_defaults.py a7b563334e Configure a spool's filament preset and K profile per nozzle 1 ay önce
test_smart_plug_rest_fields.py a51283ad76 Security hardening (maziggy/bambuddy-security #19) 1 hafta önce
test_smart_plug_update_type_rules.py 47fbd23ff8 fix(smart-plugs): an edit can no longer save a plug that cannot be read back 1 hafta önce
test_smart_plugs_api.py 487b48c5af Security hardening (maziggy/bambuddy-security #16) 1 hafta önce
test_sponsor_prompt_api.py a5fe5cb3d4 feat(sponsor-prompt): in-app toast at earned milestones 4 ay önce
test_spool_archive_unassigns.py 5edbe7586d fix(inventory): deleting a spool frees and announces its slots; scale, AMS and manual weight syncs and a finished print's usage refresh other tabs and the printer cards; a deleted printer's spool assignments go with it on SQLite; a pre-assigned slot the printer could not be told about is retried; CSV last_used is stored in UTC 3 gün önce
test_spool_by_tag_lookup.py 57e312b38c feat(inventory): by-tag spool lookup, readable with Manage-Inventory keys (#1663) (#1700) 4 ay önce
test_spool_delete_keeps_usage.py e1714b5115 fix(inventory): deleting a spool keeps its usage history; spool ids are never reused 1 hafta önce
test_spool_drying_2863.py 84f320b859 Remember when each spool was last dried (#2863) 2 hafta önce
test_spool_filament_preset_endpoints.py a7b563334e Configure a spool's filament preset and K profile per nozzle 1 ay önce
test_spool_reset_usage.py c2bc41a5ef fix(spoolman): a location delete is refused while Spoolman can't be read; labels print for archived spools; archived spools are not assigned or linked to slots; slot requests outside the AMS ranges are refused before Spoolman is written; bulk counter resets report the spools that failed 3 gün önce
test_spool_usage_outlives_archive.py 9613d65e0d fix(archives): archives a spool was used for can be deleted on PostgreSQL 1 hafta önce
test_spool_weight_entry.py f7bd06641a fix(inventory): a used weight entered for a new spool is kept; Spoolman last_used means print use; the slot K picker accounts for nozzle flow 4 gün önce
test_spoolbuddy.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_spoolbuddy_color_name_3090.py a8965b0e9f Use Spoolman 0.27's native tags in Spoolman mode (issue #3168) (#3252) 2 hafta önce
test_spoolbuddy_spool_colours_3033.py a8965b0e9f Use Spoolman 0.27's native tags in Spoolman mode (issue #3168) (#3252) 2 hafta önce
test_spoolbuddy_spoolman_mode_unusable.py a202f2502d fix(spoolbuddy): tag link failures, lookup failures and a refused Spoolman URL are reported 6 gün önce
test_spoolbuddy_spoolman_nfc.py a8965b0e9f Use Spoolman 0.27's native tags in Spoolman mode (issue #3168) (#3252) 2 hafta önce
test_spoolbuddy_write_tag_spoolman.py ba93abdb9d fix(spoolbuddy): writing a sticker no longer replaces a Bambu spool's AMS link in Spoolman (refused with the reason on Spoolman before 0.27, and such spools are not listed as untagged); the colour-name warning only appears when the name is really missing; an update stops when installing dependencies times out instead of restarting the daemon and reporting success 2 gün önce
test_spoolman_ams_sync.py 0b1d6c238b fix(inventory): AMS weight sync skips printing printers, scale weights lock, force sync unlocks 6 gün önce
test_spoolman_ams_sync_broadcast.py fcc20cb62c fix(spoolman): AMS syncs write only the slots whose spool they changed and keep a spool assigned meanwhile; the Sync buttons announce slot changes and update the slot preset; a new Spoolman spool is not seeded from leftover built-in assignments 3 gün önce
test_spoolman_api.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_spoolman_assignment_verification.py 53ef17dc56 fix(spoolman): slot assignments are verified, and the spool's own preset is used for the slot 6 gün önce
test_spoolman_cost_preserved_2591.py 07d99f3383 fix(queue): GET /queue?status= takes several comma-separated statuses, as documented; remove the archive rescan and project attachment routes that had no UI (cover images keep their storage) 2 gün önce
test_spoolman_filament_patch.py c145b3ebc1 Use the vendor's empty spool weight as tare in Spoolman mode (#3195) 3 hafta önce
test_spoolman_initial_weight_3194.py 2f7f17a891 Use the Spoolman spool's own initial_weight as its label weight (#3194) 3 hafta önce
test_spoolman_inventory_api.py c2bc41a5ef fix(spoolman): a location delete is refused while Spoolman can't be read; labels print for archived spools; archived spools are not assigned or linked to slots; slot requests outside the AMS ranges are refused before Spoolman is written; bulk counter resets report the spools that failed 3 gün önce
test_spoolman_inventory_bulk.py fb3821630f feat(inventory): batch / mass edit on the Filament tab (#1795) 4 ay önce
test_spoolman_k_profiles.py af5d24e289 feat(inventory): structured storage locations catalog (#1505) 4 ay önce
test_spoolman_manual_sync_empty_slots.py 23d04c8645 fix(inventory): archived or deleted spools release their AMS slots, safely in both modes 6 gün önce
test_spoolman_native_tags_3168.py 842dd9109b docs(spoolman): native tags lookup order, written tags and padded chip UIDs 2 hafta önce
test_spoolman_slot_assignment_mqtt.py 26e9a05707 fix(queue): a plate printed from the external spool keeps the AMS off on multi-plate files; slot reuse respects the finish; any-model VPs keep the AMS on; cloud filament id read from the preset too 4 gün önce
test_spoolman_slot_assignments.py 3497cf0d46 Hold an automatic slot unlink until the slot stays empty (issue #3186) 3 hafta önce
test_spoolman_slot_concurrency.py 12b0c138f7 fix(spoolman): clear stale fallback-tag links on assign + link, prefer slot-assignment over tag-link in UI (#1457) 5 ay önce
test_spoolman_slot_own_preset.py 53ef17dc56 fix(spoolman): slot assignments are verified, and the spool's own preset is used for the slot 6 gün önce
test_spoolman_slot_requests.py c2bc41a5ef fix(spoolman): a location delete is refused while Spoolman can't be read; labels print for archived spools; archived spools are not assigned or linked to slots; slot requests outside the AMS ranges are refused before Spoolman is written; bulk counter resets report the spools that failed 3 gün önce
test_spoolman_slot_sync_writes.py fcc20cb62c fix(spoolman): AMS syncs write only the slots whose spool they changed and keep a spool assigned meanwhile; the Sync buttons announce slot changes and update the slot preset; a new Spoolman spool is not seeded from leftover built-in assignments 3 gün önce
test_spoolman_status_2903.py a8965b0e9f Use Spoolman 0.27's native tags in Spoolman mode (issue #3168) (#3252) 2 hafta önce
test_spoolman_tracking_shared_archive.py fb69a665d8 fix(spoolman): concurrent copies of an archive are charged, unfed slots charge nothing 6 gün önce
test_spoolman_tracking_slot_fallback.py d3f0e9ac73 fix(spoolman): per-print weight tracker falls back to local slot-assignment table for tag-less spools (#1459) 5 ay önce
test_sqlite_dangling_references.py 5edbe7586d fix(inventory): deleting a spool frees and announces its slots; scale, AMS and manual weight syncs and a finished print's usage refresh other tabs and the printer cards; a deleted printer's spool assignments go with it on SQLite; a pre-assigned slot the printer could not be told about is retried; CSV last_used is stored in UTC 3 gün önce
test_static_html_cache_headers.py 0b92172322 fix(tests): make SPA cache-header tests work without a built frontend 5 ay önce
test_stats_local_days.py bd692ac3c7 fix(stats): date filters use calendar days in the browser's time zone instead of UTC days; the Statistics page sends its zone, and the date-filtered archive, statistics and inventory-statistics endpoints take an optional tz (Bambuddy's own TZ when omitted) 2 gün önce
test_stats_reconciled_duration_2592.py 8d618678a2 fix(stats): don't bank the disconnect gap as print time on reconnect (#2592) 3 ay önce
test_stl_thumbnail_off_loop.py bdbfa5d8fd fix(library): STL thumbnails are made off the event loop, one at a time 5 gün önce
test_stranded_printing_recovery_2829.py a9624d3887 Match a print completion to its queue job the way the printer names it (#2829) 2 ay önce
test_stuck_budget_reservations.py 7ece330c53 fix(finance): release budget held by prints that ended 1 hafta önce
test_suppliers_api.py 053cfa73ad Suppliers as a managed list with per-spool assignments (#2996) 3 hafta önce
test_support_api.py e222a0ef0e feat(system): log-health scanner + Add/Edit-Printer setup pre-flight 5 ay önce
test_system_api.py 4dcd37bc87 feat(system): NTP-gate state on /api/v1/system/appliance 4 ay önce
test_system_support_vp_scope.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_tailscale_api.py 91a3d391ff feat(virtual-printer): add Tailscale opt-out toggle (closes #701 point 3) (#1070) 6 ay önce
test_telegram_reactions.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_timelapse_changes_announced.py b342124f0e fix(timelapse): a video goes to the run it belongs to (scan stops on a newer run, claimed videos left out of matching, camera video replaces the printer's without orphaning it); every timelapse change refreshes open Archives pages 3 gün önce
test_timelapse_editor_job.py 2443cea174 feat: USB cameras are picked from a list of detected devices (refresh, not-found marking, manual fallback, Docker hint; device listing off the event loop, /dev/video0-99 only); fix: timelapse editor saves as a background job with progress and cancel (ffmpeg stopped on cancel, no overwrite of a timelapse removed or replaced meanwhile, ffprobe/thumbnail timeouts), and the music volume is applied 1 gün önce
test_timelapse_scan_session.py 6488a33488 Stop a print with no 3MF borrowing another model's data (#2843) 2 ay önce
test_token_outlived_session.py 877b5e3afe Security hardening (maziggy/bambuddy-security #14) 1 hafta önce
test_trace_middleware.py 1878d2aab5 feat(observability): trace ID column on every log line + X-Trace-Id header 5 ay önce
test_ui_flags_default_printer.py c9b551df0b fix(settings): saved settings take effect, unused ones are removed 6 gün önce
test_updates_api.py 689f5276e4 Show the compose directory in the Docker update command (#2664) 2 ay önce
test_user_delete_id_reuse.py fe2bc43720 test: run the backend suite on PostgreSQL too; fix the project import priority 1 hafta önce
test_user_delete_in_flight_work.py 6b017efe1c fix(db): SQLite no longer reuses the ids of users, API keys, printers, archives and camera tokens 1 hafta önce
test_user_deleted_during_request.py 6b017efe1c fix(db): SQLite no longer reuses the ids of users, API keys, printers, archives and camera tokens 1 hafta önce
test_user_email_clear.py 770c6bfdf9 fix: firmware upload only for idle printers (dialog, server, re-check after download, queue waits during upload); AMS Reset Slot asks first and is refused while printing; confirms for shopping list Clear all, Git history Clear and SSO unlink (last SSO link of an account without password stays); LDAP/SMTP test use the form's values; emptying a user's email removes it; local backup delete errors are shown; removed the unreachable printer-card Spoolman link/unlink 2 gün önce
test_user_notifications_api.py a6d307d739 Post work PR #693 7 ay önce
test_users_auth_cleanup.py d56b48c499 feat(auth): connected apps - sign in to external applications with Bambuddy 3 hafta önce
test_users_groups_privilege_escalation.py 912f9feba2 test(users/groups): generate privilege-escalation test password at runtime 4 ay önce
test_users_slim_1894.py 7c117dc6bc Let API clients resolve user ids to names (#1894) 2 ay önce
test_virtual_printer_api.py 460c11ca30 chore: remove dead code (audit step 4): unused backend helpers and schema classes, 51 unused API client wrappers, test-only components (BackupModal, RestoreModal, VirtualPrinterSettings, TagDetectedModal, WeightDisplay, useLongPress) and their translations; removed POST /printers/test, the two printer debug routes and the SpoolBuddy update-status channel; legacy virtual printer settings fields removed from the settings API; first-run setup redirect tested 1 gün önce
test_vp_restamp_claimed_item.py b9b62f739f fix(virtual-printer): a late slicer update leaves a queue job the scheduler already claimed alone (its archive still keeps the slicer's AMS pick); a backup restore really stops the virtual printers; the legacy PUT /settings/virtual-printer refuses the settings it no longer applies and is no longer blocked by stale legacy values 2 gün önce
test_wear_cost_694.py 6c8a821bca Add a wear cost per printing hour to printers (#694) 2 hafta önce
test_webhook_api_key_check.py 69c2ff1b44 test(auth): pin disabled keys, ended sessions on every gate, own-only key owners, long-lived token scope, model targets of limited keys; stricter route-auth backstop 3 gün önce
test_webhook_printer_status.py 9c7db6e37c refactor(printers): every user stop goes through one function that also marks it, including the HMS dialog's Stop Printing 1 hafta önce
test_webhook_reprint_slicer_mapping.py 918aa26ffa fix(queue): models matched without regard to case when adding jobs and in pipelines, stored in the printers' spelling; webhook reprints reuse the slicer's AMS slots; a multi-plate file queued without a plate stores the plate that prints 3 gün önce
test_webhook_start_print.py 2e45893dd5 feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration 3 ay önce
test_welcome_template_password_route.py afdd950b63 Security hardening (maziggy/bambuddy-security #15) 1 hafta önce
test_writes_need_write_permissions.py 741539a740 chore(api): remove dead firmware WS progress, the delete-all plate calibration route and unused client wrappers 4 gün önce
test_ws_connect_permission.py be915fa308 fix(auth): taking away live updates or camera access through a group ends them 1 hafta önce
test_zero_ids_on_create.py d1100f5a33 Security hardening (maziggy/bambuddy-security #26) 1 hafta önce