..
core
fix(asyncio): track strong refs on orphan create_task sites
2026-06-06 10:41:28 +02:00
services
Stop the Bambu Cloud TOTP tests reaching the network
2026-08-02 11:45:18 +02:00
utils
fix(spoolman): split mid-print usage across AMS backup switch ( #1793 )
2026-07-01 09:50:30 +02:00
__init__.py
Add comprehensive automated testing infrastructure
2025-12-11 10:03:40 +01:00
test_a2l_ams_lite_2619.py
fix(vp): relay A2L AMS filament to the slicer instead of blanking every slot
2026-07-29 08:40:42 +02:00
test_accessory_plug_queue_stall_2629.py
fix(smart-plugs): don't blank printer state when an accessory plug switches off ( #2629 )
2026-07-22 09:57:27 +02:00
test_ams_alarm_gating.py
feat(ams): gate humidity/temperature alarms on AMS-has-filament ( #1619 )
2026-06-04 11:30:26 +02:00
test_ams_assignment_lock.py
fix(inventory): serialise spool auto-assign per printer to fix Postgres race
2026-04-26 09:40:02 +02:00
test_ams_mapping_unresolved_2589.py
fix(filament): don't dispatch an unresolved AMS mapping to the external spool ( #2589 )
2026-07-18 08:11:44 +02:00
test_ams_tray_tar_parse_2587.py
feat(ams): name the expected slot when a paused print hits an AMS runout ( #2587 )
2026-07-18 13:06:01 +02:00
test_archive_file_path_guard.py
Fix archive endpoints crash with "Is a directory" for BambuStudio prints ( #475 )
2026-02-21 11:35:18 +01:00
test_archive_filtering.py
fix(timelapse): poll longer, diff without a clock, delete once archived ( #2704 )
2026-07-29 11:51:30 +02:00
test_archive_plate_2603.py
fix(queue): persist selected plate to the archive; reconcile archive on offline stop ( #2603 )
2026-07-19 09:29:54 +02:00
test_archive_run_aggregation.py
fix(archives): #1608 suppress card time-accuracy badge for multi-run archives
2026-06-03 10:14:57 +02:00
test_assignment_verification_2582.py
feat(ams): confirm spool assignments landed instead of fire-and-forget ( #2582 )
2026-07-21 08:46:02 +02:00
test_asyncio_handlers.py
fix( #1113 ): silence Windows asyncio Proactor cleanup-RST noise
2026-04-27 16:14:31 +02:00
test_auth_fail_closed.py
fix(security): GHSA-6mf4-q26m-47pv — fail-closed on auth-probe DB errors (CVSS 9.8)
2026-05-30 13:49:09 +02:00
test_bambu_mqtt_cfg_parse.py
feat(ams-backup): add status badge + toggle, fix prefer-lowest ( #1766 )
2026-06-20 12:07:20 +02:00
test_bed_jog.py
fix(jog): stop disabling firmware endstops; warn that limits aren't enforced ( #2579 )
2026-07-16 15:21:47 +02:00
test_bug_report.py
[Feature] Redesign bug report debug log capture flow
2026-03-20 14:18:24 +01:00
test_bulk_spool_create.py
Add bulk spool addition and stock spools
2026-02-21 10:39:18 +01:00
test_camera_ffmpeg_termination.py
fix(camera): drain ffmpeg's pipes during teardown (#NNNN)
2026-07-30 10:31:22 +02:00
test_camera_stderr_summary.py
fix(camera): capture ffmpeg stderr when an RTSP stream stalls ( #1395 )
2026-05-22 10:02:41 +02:00
test_camera_stderr_tail.py
fix(camera): drain a streaming ffmpeg's stderr continuously ( #2707 )
2026-07-30 12:52:11 +02:00
test_camera_stream_registry_isolation.py
fix(camera): one registry key per stream, not per printer (issue #2707 )
2026-07-30 12:35:27 +02:00
test_camera_usb_stream_cleanup.py
fix(camera): drain ffmpeg's pipes during teardown (#NNNN)
2026-07-30 10:31:22 +02:00
test_cancellation_cascade_recovery_migration.py
fix(queue): cancelled prints no longer block require_previous_success chain ( #1667 )
2026-06-06 13:40:56 +02:00
test_cancelled_pool_filter.py
fix: cancel-safe get_db + drop sqlalchemy.pool cancellation noise
2026-04-27 16:32:10 +02:00
test_capture_pid_tracking.py
fix(obico): exclude snapshot capture PIDs from stream cleanup ( #172 )
2026-04-17 08:38:22 +02:00
test_catalog_bulk_delete.py
Add bulk delete for spool and color catalog entries ( #646 )
2026-03-07 10:13:40 +01:00
test_check_previous_success.py
fix(queue): close #1818 — Resume after failure clears the gate
2026-06-25 09:00:57 +02:00
test_cli.py
fix(install): make SpoolBuddy kiosk usable on first boot in full-mode install
2026-04-18 08:14:53 +02:00
test_cloud_token_expiry.py
fix(cloud): only sign out on Bambu's real token-expiry 401, not any 401
2026-07-21 07:26:19 +02:00
test_cloud_totp_csrf.py
fix(cloud): complete the CSRF handshake on Bambu Cloud TOTP sign-in ( #2696 )
2026-07-28 15:05:28 +02:00
test_code_quality.py
fix(test): stop sys.modules-deleting backend.app.main in test_code_quality
2026-05-24 12:51:24 +02:00
test_color_utils.py
fix(inventory): fix usage tracking for remapped AMS slots and slicer prints
2026-02-16 15:46:32 +01:00
test_config_env_warnings.py
fix(queue): withdraw an expected print when the command never goes out
2026-07-30 16:31:09 +02:00
test_connection_watchdog.py
fix(printers): recover MQTT sessions that stopped reconnecting ( #2732 )
2026-07-31 14:28:17 +02:00
test_cost_tracking.py
fix(cost): top-up untracked filament at default rate so multi-color
2026-05-15 15:43:37 +02:00
test_cover_coalescing_2572.py
fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool ( #2572 )
2026-07-18 16:15:09 +02:00
test_db_dialect.py
Feature/spoolman inventory UI ( #1241 )
2026-05-08 11:52:42 +02:00
test_db_pool_and_auth_cache.py
fix(db): configurable pool, auth_enabled cache, single-checkout auth ( #2572 )
2026-07-18 13:48:14 +02:00
test_design_settings.py
feat(slicer): keep the designer's print settings when re-slicing for another printer ( #2622 )
2026-07-28 14:49:50 +02:00
test_diagnostic_snapshot.py
● feat(support): include sanitized connection / VP / log-health diagnostics in support bundle and bug report ( #1506 follow-up)
2026-05-24 10:16:30 +02:00
test_dispatch_claim_recovery.py
fix(queue): withdraw an expected print when the command never goes out
2026-07-30 16:31:09 +02:00
test_energy_snapshots.py
fix(energy): date-range energy in total mode + restart-resilient per-print tracking ( #941 )
2026-04-11 11:14:54 +02:00
test_expected_print_rollback.py
fix(queue): withdraw an expected print when the command never goes out
2026-07-30 16:31:09 +02:00
test_external_camera_live_frame_reuse.py
fix(camera): reuse the live view's frame for external-camera captures ( #2707 )
2026-07-30 13:05:15 +02:00
test_extract_video_last_frame.py
fix(photo): source finish photo from forced timelapse + cleanup ( #1397 )
2026-06-05 13:53:26 +02:00
test_failure_reason_derivation.py
fix: cancel = layer shift, stuck "1 problem", and dropped child-logger logs
2026-04-26 14:24:28 +02:00
test_fallback_archive_mqtt_filament.py
fix(archives): resolve raw_data wrapper in fallback-archive filament extraction ( #1533 follow-up)
2026-05-29 10:55:41 +02:00
test_ffmpeg_rtsp_timeout_flag.py
fix(camera): probe ffmpeg for the right RTSP socket-timeout flag ( #1504 )
2026-05-24 08:49:21 +02:00
test_filament_fields_options.py
fix(profiles): add PLA-CF + Bambu CF/GF/specialty variants to filament_type select ( #1686 )
2026-06-09 07:38:59 +02:00
test_filament_info_single_flight_2572.py
fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool ( #2572 )
2026-07-18 16:15:09 +02:00
test_filename_validation.py
fix(dispatch): align SD cleanup with upload path so doubled-extension library rows don't leave ghost prints ( #1542 )
2026-05-28 08:40:43 +02:00
test_finish_photo_from_timelapse.py
fix(camera): rotate every still exactly once, and cover the sources that let ffmpeg write the file
2026-07-31 09:30:06 +02:00
test_finish_photo_moment_sync.py
fix(camera): take the finish photo when the print ends, not when its last layer starts ( #2547 )
2026-07-31 12:55:05 +02:00
test_firmware_versions.py
fix(firmware-check): bypass Cloudflare TLS-fingerprint gate via curl_cffi ( #1666 )
2026-06-06 13:30:13 +02:00
test_force_color_plate_scope_migration.py
fix(queue): scope force-colour overrides to the plate the item prints ( #2551 )
2026-07-13 09:18:17 +02:00
test_gcode_injection.py
feat(gcode-injection): per-VP opt-in auto-print injection toggle ( #1516 ) ( #1656 )
2026-06-19 11:29:07 +02:00
test_get_db_cancel_safety.py
fix: cancel-safe get_db + drop sqlalchemy.pool cancellation noise
2026-04-27 16:32:10 +02:00
test_git_providers.py
fix(backup): parse subpath-hosted Gitea/Forgejo repository URLs ( #2642 )
2026-07-27 12:53:43 +02:00
test_github_backup_cloud_profiles.py
fix(backup): collect cloud profiles from every connected account ( #2717 )
2026-07-31 16:59:33 +02:00
test_github_backup_schemas.py
feat(backup): Extend Backup to other Git providers ( #1160 )
2026-05-03 08:12:36 +02:00
test_hms_error_summary.py
● fix( #1111 ): advance queue item when print fails before reaching RUNNING
2026-04-24 16:02:55 +02:00
test_homeassistant_settings.py
Home Assistant: add environment variable configuration support
2026-02-07 19:01:04 +02:00
test_http_utils.py
fix(http): RFC 6266-encode Content-Disposition so non-ASCII filenames don't crash response (issue #1245 )
2026-05-08 14:06:40 +02:00
test_inventory_remain_endpoint.py
feat(ams-backup): add status badge + toggle, fix prefer-lowest ( #1766 )
2026-06-20 12:07:20 +02:00
test_jti_revoked_session_reuse_2572.py
fix(db): configurable pool, auth_enabled cache, single-checkout auth ( #2572 )
2026-07-18 13:48:14 +02:00
test_launcher_shutdown_config.py
test(launcher): skip repo-root launcher checks when files aren't shipped
2026-07-24 11:17:19 +02:00
test_layer_timelapse_expected_archive.py
fix(camera): apply camera_rotation to layer-timelapse frames too
2026-07-30 17:34:13 +01:00
test_ldap_migration.py
fix(auth): make password_hash nullable on upgraded SQLite installs ( #794 )
2026-04-11 11:33:49 +02:00
test_library_classify_file_type.py
● fix(library): #1600 thumbnail extraction for external-folder .gcode.3mf
2026-06-02 14:51:08 +02:00
test_library_file_path_guard.py
feat: add embedded GCode viewer ( #963 )
2026-04-22 11:14:42 +02:00
test_library_file_type_backfill_migration.py
● fix(library): #1600 thumbnail extraction for external-folder .gcode.3mf
2026-06-02 14:51:08 +02:00
test_library_print_name.py
fix(library): show the filename, not the embedded 3MF Title ( #1489 )
2026-05-22 10:22:14 +02:00
test_local_backup.py
fix(backup): diagnose an unwritable backup path instead of quoting errno 30 ( #2544 )
2026-07-12 08:44:53 +02:00
test_local_config.py
feat(system): NTP-gate state on /api/v1/system/appliance
2026-06-22 14:23:30 +02:00
test_location_migration.py
feat(inventory): structured storage locations catalog ( #1505 )
2026-06-17 11:33:23 +02:00
test_location_service.py
feat(inventory): structured storage locations catalog ( #1505 )
2026-06-17 11:33:23 +02:00
test_log_credential_redaction.py
Bound the scheme repetition in the log credential-redaction pattern. As an
2026-08-02 11:17:24 +02:00
test_log_error_detection.py
Remove unused imports, variables, and fix minor CodeQL findings
2026-02-06 12:19:17 +01:00
test_logging_filters.py
feat(observability): trace ID column on every log line + X-Trace-Id header
2026-04-26 10:01:17 +02:00
test_maintenance_rod_filtering.py
[Fix] Remove incorrect "Lubricate Carbon Rods" maintenance task ( #755 )
2026-03-19 08:40:24 +01:00
test_makerworld_routes.py
fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562 )
2026-07-14 11:29:56 +02:00
test_makerworld_s3_tls.py
fix(cloud): stop reporting an expired Bambu Cloud sign-in as connected (issue #2562 )
2026-07-14 11:29:56 +02:00
test_mfa_helpers.py
Revert "feat(oidc): Azure Entra ID support — configurable email claim & verification + Remember Me persistent login ( #1103 )"
2026-04-24 16:48:59 +02:00
test_mqtt_debug_on_change.py
fix(queue): upload to printers in parallel, cap wedge retries, make debug logs survive a farm
2026-07-14 10:35:58 +02:00
test_no_fail_open_in_auth.py
fix(security): WebSocket auth gate + audit-driven hardening sweep
2026-06-02 10:02:17 +02:00
test_no_hardcoded_secrets.py
fix(security): WebSocket auth gate + audit-driven hardening sweep
2026-06-02 10:02:17 +02:00
test_no_unsafe_path_joins.py
fix(slicer-presets): #1581 SliceModal refresh + invalidate on local-profile delete/import
2026-06-02 12:42:16 +02:00
test_notification_plate_scope.py
fix(notifications): scope completion notification to printed plate on multi-plate 3MFs ( #1785 )
2026-06-20 08:28:44 +02:00
test_obico_detection.py
feat(obico): authenticate to a token-protected ML API ( #2733 )
2026-07-31 13:39:17 +02:00
test_obico_smoothing.py
feat(obico): AI print-failure detection via self-hosted Obico ML API ( #172 )
2026-04-13 09:54:26 +02:00
test_oidc_env_managed_migration.py
feat(oidc): add is_env_managed column to oidc_providers
2026-07-28 21:05:29 +00:00
test_oidc_env_provider.py
feat(oidc): add is_env_managed column to oidc_providers
2026-07-28 21:05:29 +00:00
test_oidc_env_reader.py
fix(oidc): strip the required BAMBUDDY_OIDC_* values and register the local-login bypass
2026-08-01 11:37:01 +02:00
test_oidc_icon_helpers.py
feat(auth): proxy OIDC provider icons server-side ( #1333 ) ( #1342 )
2026-05-15 08:50:37 +02:00
test_oidc_icon_migration_pg.py
feat(auth): proxy OIDC provider icons server-side ( #1333 ) ( #1342 )
2026-05-15 08:50:37 +02:00
test_oidc_icon_service.py
feat(auth): proxy OIDC provider icons server-side ( #1333 ) ( #1342 )
2026-05-15 08:50:37 +02:00
test_oidc_icon_validation.py
feat(auth): proxy OIDC provider icons server-side ( #1333 ) ( #1342 )
2026-05-15 08:50:37 +02:00
test_opentag3d.py
Feature/spoolman inventory UI ( #1241 )
2026-05-08 11:52:42 +02:00
test_orca_cloud_refresh.py
fix(backup): collect cloud profiles from every connected account ( #2717 )
2026-07-31 16:59:33 +02:00
test_orca_profiles.py
Fix AMS slot showing wrong material for "Support for" profiles
2026-03-03 13:34:03 +01:00
test_orphan_auth_cleanup_migration.py
feat(auth): SSO autologin + disable local username/password login ( #1589 )
2026-06-25 14:54:27 +02:00
test_outbound_url_ssrf_guards.py
Suppress Bandit B104 false positive in the SSRF guard tests
2026-08-02 11:09:08 +02:00
test_permissions.py
Add inventory:view_assignments permission so admins can grant users
2026-03-07 09:17:26 +01:00
test_permissions_stats_filter.py
Add per-user statistics filtering ( #730 )
2026-03-31 12:13:58 +02:00
test_phantom_print_hardening.py
fix(queue): prevent duplicate dispatch and stale progress on batch prints
2026-04-22 17:48:53 +02:00
test_plate_clear_mqtt_notification.py
fix(tests): add the new fan fields to the plate-clear status fixture
2026-07-29 11:33:09 -05:00
test_plate_object_extraction.py
Remove unused imports, variables, and fix minor CodeQL findings
2026-02-06 12:19:17 +01:00
test_plug_datetimes_are_naive_utc.py
fix(smart-plugs): read a REST plug's lifetime counter, and derive Today/Yesterday from it (issue #2539 )
2026-07-11 14:22:31 +02:00
test_pool_fits_server.py
fix(queue): withdraw an expected print when the command never goes out
2026-07-30 16:31:09 +02:00
test_postgres_restore_drop_cascade.py
fix(restore): drop tables with CASCADE so orphan FKs can't abort restore
2026-04-29 11:17:43 +02:00
test_print_log.py
fix(stats): don't bank the disconnect gap as print time on reconnect ( #2592 )
2026-07-18 09:58:21 +02:00
test_print_log_backfill_migration.py
fix(stats): backfill PrintLogEntry.cost/energy/archive_id for pre-#1378 rows ( #1390 )
2026-05-17 09:30:02 +02:00
test_print_speed.py
[Feature] Add quick print speed control to printer card ( #256 )
2026-03-18 11:13:27 +01:00
test_print_start_assigns_printer_id_to_vp_archive.py
Fix: capture timelapse baseline on expected-archive on_print_start branch ( #1403 follow-up)
2026-05-20 08:12:17 +02:00
test_print_start_expected_promotion.py
fix(usage): scope 3MF filament tracking to dispatched plate ( #1697 )
2026-06-09 09:16:36 +02:00
test_printer_manager_status_broadcast.py
feat(printers): expose P2S/X2D accessory fans (left aux + exhaust)
2026-07-28 11:16:22 -05:00
test_printer_models.py
fix(kprofiles): stop reporting rejected K-profile writes as saved
2026-08-01 10:35:22 +02:00
test_printer_offline_notification.py
Fix unawaited coroutine warning in printer offline notification tests
2026-08-02 10:22:26 +02:00
test_printer_schema.py
fix(printers): normalize serial numbers + diagnose connect-but-no-reports ( #1465 )
2026-05-21 08:30:17 +02:00
test_printer_sensor_history.py
feat(heater-history): track nozzle / bed / chamber readings + per-tile chart-icon overlay opens history modal
2026-06-20 12:55:24 +02:00
test_project_settings_sentinel_sanitiser.py
fix(slicer): strip "-1" inherit sentinels from project_settings.config ( #1201 )
2026-05-04 10:34:36 +02:00
test_pushover_priority.py
fix(notifications): send Pushover retry/expire for Emergency priority ( #2586 )
2026-07-17 10:02:19 +02:00
test_reconcile_stale_active_prints.py
fix(reconcile): don't synthesize aborted PRINT COMPLETE on the bare-connect edge before push_status arrives ( #1679 )
2026-06-08 08:18:13 +02:00
test_reprint_clears_stale_timelapse.py
fix(notifications): reprint-from-archive sent original print's finish photo ( #1707 )
2026-06-11 09:23:03 +02:00
test_reprint_updates_subtask_id.py
fix(notifications): false-positive Print Stopped on reprint after MQTT reconnect ( #1807 )
2026-06-25 11:07:29 +02:00
test_resolve_expected_tray_2587.py
feat(ams): name the expected slot when a paused print hits an AMS runout ( #2587 )
2026-07-18 13:06:01 +02:00
test_restore_sqlite_wal_safety.py
fix(restore): replace shutil.copy2 with SQLite backup API to prevent WAL leftover ( #1211 , #668 )
2026-05-05 16:00:22 +02:00
test_route_auth_coverage.py
feat(system): appliance locale defaults endpoint + frontend i18n bootstrap
2026-06-22 14:13:44 +02:00
test_run_filament_helper.py
fix(stats): scope per-run filament to the printed plate, not the whole 3MF ( #2614 )
2026-07-20 11:52:18 +02:00
test_run_filament_plate_scope_2614.py
fix(stats): scope per-run filament to the printed plate, not the whole 3MF ( #2614 )
2026-07-20 11:52:18 +02:00
test_run_with_retry.py
Fix ghost jobs from SQLite lock on print completion ( #897 )
2026-04-07 09:20:58 +02:00
test_runtime_tracking_pause.py
fix(maintenance): paused prints no longer accumulate runtime hours ( #1521 )
2026-05-25 09:04:47 +02:00
test_safe_path.py
security: harden path-traversal class across routes + services; fifth CI backstop
2026-06-02 12:12:54 +02:00
test_scheduler_ams_mapping.py
fix(scheduler): skip per-nozzle filter under FTS so dispatch feeds the right spool ( #2186 )
2026-07-07 12:17:46 +02:00
test_scheduler_auto_drying.py
fix(drying): don't stop a running AMS dry on an unreliable humidity re-check ( #1892 )
2026-07-05 09:32:02 +02:00
test_scheduler_backup_gate.py
fix(scheduler): skip per-nozzle filter under FTS so dispatch feeds the right spool ( #2186 )
2026-07-07 12:17:46 +02:00
test_scheduler_busy_defer_2598.py
fix(dispatch): don't send start-print to a busy printer; scheduler defers ( #2598 )
2026-07-18 16:41:15 +02:00
test_scheduler_busy_only.py
[Fix] Suppress spurious "waiting for filament" notification when printers are busy ( #753 )
2026-03-20 11:34:23 +01:00
test_scheduler_cancel_race.py
feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration
2026-07-20 17:55:56 +02:00
test_scheduler_cleanup_library.py
feat(projects): per-file print progress and complete-sets tracking ( #1897 )
2026-07-28 12:46:31 +02:00
test_scheduler_clear_plate.py
fix(scheduler): default require_plate_clear to False to match schema/UI ( #1865 )
2026-07-07 10:07:47 +02:00
test_scheduler_concurrent_dispatch.py
fix(queue): make upload concurrency a refillable pool, not a per-batch cap ( #2602 )
2026-07-19 08:34:38 +02:00
test_scheduler_dispatch_hold.py
fix(scheduler): post-dispatch hold prevents H2D Pro double-fire ( #1157 )
2026-04-28 17:19:17 +02:00
test_scheduler_filament_deficit.py
fix(queue): persist "Print Anyway" so scheduler stops re-flagging it
2026-06-09 10:43:07 +02:00
test_scheduler_filament_override.py
Add filament override for model-based queue assignment ( #486 )
2026-02-22 16:43:16 +01:00
test_scheduler_force_color_ams_fallback.py
fix(scheduler): pin the force-color variant when selecting the AMS slot ( #2650 )
2026-07-24 13:13:04 +02:00
test_scheduler_inventory_remain.py
fix(scheduler): use inventory weight for "Prefer Lowest Filament" sort ( #1508 )
2026-05-24 09:18:38 +02:00
test_scheduler_model_mismatch.py
fix(queue): enforce sliced-model compatibility on cross-model dispatch ( #2578 )
2026-07-17 06:51:51 +02:00
test_scheduler_nozzle_mismatch.py
feat(print-options): add "Auto" state to bed levelling, flow & nozzle-offset calibration
2026-07-20 17:55:56 +02:00
test_scheduler_power_plug_pick_2629.py
fix(smart-plugs): don't blank printer state when an accessory plug switches off ( #2629 )
2026-07-22 09:57:27 +02:00
test_scheduler_preheat.py
fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool ( #2572 )
2026-07-18 16:15:09 +02:00
test_scheduler_reassign_race_2615.py
fix(queue): claim a queue item before dispatch so it can't be reassigned mid-upload ( #2615 )
2026-07-20 12:30:39 +02:00
test_scheduler_release_conn_before_ftp_2572.py
fix(db): release scheduler/cloud/cover sessions across slow I/O, add LIFO pool ( #2572 )
2026-07-18 16:15:09 +02:00
test_scheduler_watchdog.py
fix(printers): surface the printer's own "command verification failed"
2026-07-31 14:14:58 +02:00
test_settings_dedupe_migration.py
Post work PR #1070
2026-04-24 13:24:00 +02:00
test_sidebar_settings.py
feat: Centralise sidebar ordering and add page visibility options ( #1673 )
2026-06-17 12:04:57 +02:00
test_slice_process_support_patch.py
fix(slicer): preserve PVA-for-support intent across re-slice of source 3MF ( #1881 )
2026-07-02 11:32:22 +02:00
test_slice_request_bed_type.py
feat(slicing): build-plate override in the SliceModal ( #1337 )
2026-05-14 15:28:41 +02:00
test_slice_request_schema.py
remove(slicer): drop bundle import; fix cloud preset type/from for CLI ( #1712 )
2026-06-12 10:14:06 +02:00
test_slicer_presets.py
fix(slicer): classify filament profiles by their real printer scope, not just their name ( #2628 follow-up)
2026-07-22 10:44:05 +02:00
test_slicer_settings.py
Add configurable slicer preference — Bambu Studio or OrcaSlicer ( #313 )
2026-02-10 09:38:06 +01:00
test_slicer_stall_timeout.py
fix(slicer): bound slices by silence, not by total slicing time ( #2730 )
2026-07-31 15:14:01 +02:00
test_slot_preset_key.py
fix(ams): HT slot shows "Generic" after configuring custom preset ( #1053 )
2026-04-20 17:32:34 +02:00
test_smart_plug_power_flag_migration_2629.py
fix(smart-plugs): don't blank printer state when an accessory plug switches off ( #2629 )
2026-07-22 09:57:27 +02:00
test_sponsor_prompt_service.py
test: silence Bandit B108 on hardcoded /tmp test-fixture paths
2026-06-28 13:52:05 +02:00
test_spool_schemas_colors.py
feat(inventory): multi-colour gradients, transparency, visual effects ( #1154 )
2026-04-29 09:13:33 +02:00
test_spool_schemas_rgba.py
feat( #729 ): per-spool category + low-stock threshold override
2026-04-25 13:24:49 +02:00
test_spool_schemas_storage_location.py
fix(inventory): persist storage_location for internal spools ( #1291 )
2026-05-12 16:02:24 +02:00
test_spoolbuddy_schema_validation.py
Feature/spoolman inventory UI ( #1241 )
2026-05-08 11:52:42 +02:00
test_spoolbuddy_ssh.py
fix(spoolbuddy): lower /update permission to INVENTORY_UPDATE so kiosk's own Settings -> Update button works
2026-05-08 14:28:41 +02:00
test_spoolbuddy_system_stats.py
Fixed backend/tests/unit/test_spoolbuddy_system_stats.py
2026-03-26 16:35:29 +01:00
test_spoolman_clear_location.py
Fix Spoolman location not cleared on auto-sync when spool removed from AMS ( #921 )
2026-04-09 08:16:54 +02:00
test_spoolman_extra_lock.py
Feature/spoolman inventory UI ( #1241 )
2026-05-08 11:52:42 +02:00
test_spoolman_inventory_helpers.py
fix(inventory): "Reset usage to 0" preserves remaining in both modes ( #1390 )
2026-05-18 08:51:27 +02:00
test_spoolman_inventory_methods.py
feat(inventory): structured storage locations catalog ( #1505 )
2026-06-17 11:33:23 +02:00
test_spoolman_no3mf_remain_fallback.py
feat(spoolman): remain%-delta fallback for no-3MF "Untitled" prints ( #1820 )
2026-06-25 10:46:57 +02:00
test_spoolman_settings_value_coercion.py
Security hardening (maziggy/bambuddy-security #7 )
2026-07-30 13:52:56 +02:00
test_spoolman_slot_ddl.py
fix(spoolman): allow AMS-HT ams_id range in slot-assignment table ( #1274 )
2026-05-12 08:48:30 +02:00
test_spoolman_stale_tag_cleanup.py
fix(spoolman): clear stale fallback-tag links on assign + link, prefer slot-assignment over tag-link in UI ( #1457 )
2026-05-20 11:00:54 +02:00
test_spoolman_tracking.py
fix(inventory): record the mapped spool's material, not the sliced type ( #2563 )
2026-07-15 07:29:16 +02:00
test_ssrf_guard.py
Feature/spoolman inventory UI ( #1241 )
2026-05-08 11:52:42 +02:00
test_subtask_archive_resume.py
fix(archive): stop duplicating the job on a backend restart mid-print ( #1485 )
2026-05-22 09:05:25 +02:00
test_support_bundle_rotated_logs.py
fix(queue): upload to printers in parallel, cap wedge retries, make debug logs survive a farm
2026-07-14 10:35:58 +02:00
test_support_helpers.py
feat(support): record process memory, threads and children in bundles ( #2734 )
2026-07-31 15:32:08 +02:00
test_sync_ams_weights.py
fix: prevent spool weight corruption, add AMS weight sync, fix extruder_id
2026-02-15 15:47:41 +01:00
test_systemd_backup_paths.py
test(launcher): skip repo-root launcher checks when files aren't shipped
2026-07-24 11:17:19 +02:00
test_telegram_forum_topic.py
feat(notifications): optional Telegram forum topic via message_thread_id ( #1518 )
2026-07-29 14:10:38 +02:00
test_temperature_fan_presets.py
feat: Update printer card UI for structure and readability ( #1661 )
2026-06-18 11:46:07 +02:00
test_threemf_tools.py
fix(camera): take the finish photo when the print ends, not when its last layer starts ( #2547 )
2026-07-31 12:55:05 +02:00
test_timelapse_baseline_restart_recovery.py
fix(test): snapshot _timelapse_baselines inside the patch context to dodge CI race
2026-05-24 12:30:12 +02:00
test_timelapse_match.py
fix(archives): scan_timelapse picked stale video at false offset ( #1278 )
2026-05-12 09:20:53 +02:00
test_timelapse_scan_2704.py
fix(timelapse): poll longer, diff without a clock, delete once archived ( #2704 )
2026-07-29 11:51:30 +02:00
test_trace.py
fix: cancel = layer shift, stuck "1 problem", and dropped child-logger logs
2026-04-26 14:24:28 +02:00
test_upload_progress_bridge.py
feat(toast): restore upload-progress toast for scheduler dispatches ( #1625 follow-up)
2026-06-27 11:28:00 +02:00
test_url_safety.py
feat(auth): proxy OIDC provider icons server-side ( #1333 ) ( #1342 )
2026-05-15 08:50:37 +02:00
test_usage_tracker.py
fix(inventory): record the mapped spool's material, not the sliced type ( #2563 )
2026-07-15 07:29:16 +02:00
test_use_ams_reconcile_2595.py
fix(dispatch): honor a resolved AMS mapping over a stale use_ams=false ( #2595 )
2026-07-18 13:18:59 +02:00
test_user_notifications.py
Post work PR #693
2026-03-17 12:24:36 +01:00
test_user_print_template_rename_migration.py
feat(notifications): template-driven finish-photo email embed + user_print_* rename ( #1792 )
2026-06-22 11:15:39 +02:00
test_vp_access_code_sync_migration.py
fix(vp): auto-derive access code from target printer in non-proxy modes
2026-06-05 17:19:16 +02:00
test_vp_certificate_rotation.py
fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle
2026-05-30 13:34:10 +02:00
test_vp_delete_cleanup.py
fix(virtual-printer): #1558 Send pre-flight + slicer-surface audit bundle
2026-05-30 13:34:10 +02:00
test_vp_ftp_port.py
[Fix] Virtual Printer FTP routed to wrong VP with different access codes ( #735 )
2026-03-18 09:04:31 +01:00
test_vp_ftp_stor.py
fix(vp): stop uvloop from silently truncating VP FTP uploads ( #1896 )
2026-07-05 10:32:13 +02:00
test_vp_mode_rename_migration.py
fix(virtual-printer): #1429 net.info[*].ip cache leak + mode wire-value rename
2026-06-02 14:33:20 +02:00
test_vp_mqtt_bridge.py
fix(vp): relay A2L AMS filament to the slicer instead of blanking every slot
2026-07-29 08:40:42 +02:00
test_vp_mqtt_server.py
fix(vp): evict MQTT clients on drain timeout + tighten TCP keepalive ( #1872 )
2026-07-02 10:13:01 +02:00
test_vp_tls_ciphers.py
fix(virtual-printer): #1610 add Bambu cipher pin to every slicer-facing TLS context
2026-06-03 10:04:37 +02:00
test_vp_wire_dump.py
debug(vp): env-flagged command-flow trace for slicer↔printer #1622 round-2 triage
2026-06-11 13:35:20 +02:00
test_ws_broadcast_to_user.py
feat(toast): restore upload-progress toast for scheduler dispatches ( #1625 follow-up)
2026-06-27 11:28:00 +02:00