maziggy 1c86625b82 fix(queue): Force color match is kept for a job queued to a specific printer: it waits for a spool of the exact colour and variant instead of printing on the first spool of the same material, and two slots asking for the same filament need two spools of it (#3280) 1 день назад
..
git_providers 306b9ba7fd Accept Forgejo tokens scoped to a single repository (#2775) 2 месяцев назад
model_providers ce9853c056 fix(printing): a plate check that could not run says so; the archive recovery download follows the file size; an unconfirmed upload is read back; broken MakerWorld downloads are refused; bulk-edit toast reflects the result; CallMeBot values are encoded 5 дней назад
virtual_printer 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 2 дней назад
__init__.py 09677861ba Added screenshots 10 месяцев назад
ams_assignment_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 4 дней назад
ams_slot_presence.py 905bda4f3f fix(ams): read the firmware presence bit, not the tray state (issue #3084) 1 месяц назад
announcements.py 3fae2b402b Announcements: history, collapsed list, instant refresh, footer icon 3 недель назад
archive.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) 3 дней назад
archive_comparison.py f43be8098e Security hardening (maziggy/bambuddy-security #29) 1 неделя назад
archive_cost_estimate.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 3 дней назад
archive_purge.py 0033001945 fix(db): SQLite applies the ON DELETE rules of archives, library files, queue jobs, batches and projects 1 неделя назад
backup_path.py 5bbfeefa65 fix(backup): diagnose an unwritable backup path instead of quoting errno 30 (#2544) 3 месяцев назад
bambu_cloud.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 2 дней назад
bambu_cloud_credentials.py 036f0a688f Merge pull request #2845 from pascalheidmann/refactor/modular-import 1 месяц назад
bambu_ftp.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 2 дней назад
bambu_mqtt.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 2 дней назад
bug_report.py 346b58ed8f fix(settings): printer temperature history retention gets a setting; no retention can wipe history; bug reports keep no email 5 дней назад
camera.py d3827e646a Security hardening (maziggy/bambuddy-security #23) 1 неделя назад
camera_diagnose.py a735f8c43a chore: Python 3.11 is the minimum, and the installer finds or installs it 1 неделя назад
camera_fanout.py 31888777ae fix(camera): external cameras share one stream per printer 6 дней назад
camera_light.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 3 дней назад
camera_profiles.py 2315b8fb5d Count camera reconnects in a row, not for the life of the stream 3 недель назад
color_catalog_lookup.py cb924e5c4a Match a Bambu roll to its own product line, not just its colour (issue #2907) (#2944) 3 недель назад
design_settings.py 7e77bf5833 Take the layer height from the plate that actually printed 2 месяцев назад
diagnostic_snapshot.py a735f8c43a chore: Python 3.11 is the minimum, and the installer finds or installs it 1 неделя назад
discovery.py 3a5f802cdc fix(diagnostics): read the subnet the host is actually on (issue #3092) 1 месяц назад
drying_preflight.py b04d753186 (Post work): parked AMS drying timers and translated drying failures (issue #2896) 3 недель назад
email_service.py afdd950b63 Security hardening (maziggy/bambuddy-security #15) 1 неделя назад
energy_plug.py 1de2d51634 fix(smart-plugs): Home Assistant scripts linked to a printer run when Bambuddy switches its power plug off or on by schedule, not only by hand 5 дней назад
energy_price.py b596b55456 Take the electricity price from Home Assistant and cost energy hour by hour (#1251) 2 недель назад
export.py 6c8a821bca Add a wear cost per printing hour to printers (#694) 2 недель назад
external_camera.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 2 дней назад
failure_analysis.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) 3 дней назад
filament_deficit.py 5649f836da fix(spoolman): the print dialog's cost estimate and each slot's grams left come from the spool bound to the slot, priced the way the print is charged, instead of the built-in assignments; they refresh when a slot's assignment changes 3 дней назад
filament_requirements.py 3954d3a7e6 Choose which rack nozzle each filament prints from on an H2C (#1784) 2 месяцев назад
finance_balance.py c39e678204 Security hardening (maziggy/bambuddy-security #12) 1 неделя назад
finance_billing.py b2ed37b6c3 fix(finance): a print whose user was deleted while it ran is billed to its cost centre 1 неделя назад
finance_budget.py f761a3ae97 fix(queue): every way of adding a job announces it, applies the default print options and keeps its cost centre 6 дней назад
finance_defaults.py 4a85e033c0 fix(finance): show the currency the install is configured for (issue #3123) 1 месяц назад
firmware_check.py ae3c27f3df fix(firmware): log an unreachable Bambu Lab site once, not on every firmware check 1 неделя назад
firmware_update.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 3 дней назад
ftp_profiles.py cc39acfc74 Ask a printer that refuses FTPS what it actually said (issue #2780) 2 месяцев назад
github_backup.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 2 дней назад
github_restore.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 2 дней назад
ha_sensor_manager.py 54af3146a3 [Feature]: Bind Home Assistant sensors to storage locations (dryboxes/bins) (#2827) 1 месяц назад
hms_actions.py 3ddf8d847e [Feature]: HMS Actions (#1743) 3 месяцев назад
hms_errors.py 033eff1254 Show Bambu's own HMS descriptions and the real alert level (issue #2728) 3 недель назад
homeassistant.py d3827e646a Security hardening (maziggy/bambuddy-security #23) 1 неделя назад
inventory_mode.py 08a58b1ef4 Keep both modes' slot assignments across an inventory mode switch (issue #2812) 1 месяц назад
kprofile_drift.py 578add28d8 fix(printers): a printer added after a delete starts clean 1 неделя назад
label_renderer.py b5cd369f51 chore: remove dead code and fail CI on unused frontend files 1 неделя назад
layer_timelapse.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 2 дней назад
ldap_service.py 29e6d28205 Resolve LDAP groups on lldap and OpenLDAP (#3197) 3 недель назад
library_folder_access.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. 3 дней назад
library_trash.py a3ba9994fe fix(queue): orders and groupings show as finished however their last job ended 1 неделя назад
local_backup.py 5bbfeefa65 fix(backup): diagnose an unwritable backup path instead of quoting errno 30 (#2544) 3 месяцев назад
location_ha_sensor_manager.py 54af3146a3 [Feature]: Bind Home Assistant sensors to storage locations (dryboxes/bins) (#2827) 1 месяц назад
location_service.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 2 дней назад
log_health.py 604fa44593 Explain Bambu Cloud's CAPTCHA challenge instead of repeating it (#2790) 2 месяцев назад
log_reader.py a51283ad76 Security hardening (maziggy/bambuddy-security #19) 1 неделя назад
long_lived_tokens.py 258db95483 fix(overlay): authenticate the OBS overlay with a token when login is enabled (#2613) 3 месяцев назад
loop_watchdog.py 774eba73c8 feat(diagnostics): event-loop stall watchdog to catch silent backend freezes 5 месяцев назад
material_number.py 71d4b2f70d Material number as a first-class spool field (#2994) 3 недель назад
mesh_combine.py b67c9b572c Add "Combine to 3MF" for slicing several STLs on one plate (#3162) 3 недель назад
mqtt_relay.py dbb560dfb6 fix(mqtt-relay): publish the documented events, from every place they happen 1 неделя назад
mqtt_smart_plug.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 2 дней назад
network_utils.py b5cd369f51 chore: remove dead code and fail CI on unused frontend files 1 неделя назад
notification_service.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 3 дней назад
notify_client.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 2 дней назад
notify_live_activities.py 578add28d8 fix(printers): a printer added after a delete starts clean 1 неделя назад
notify_widgets.py b42d39ffcc Add native Notify! alerts, Live Activities and Lock Screen widgets (#3265) 2 недель назад
notify_worker.py b42d39ffcc Add native Notify! alerts, Live Activities and Lock Screen widgets (#3265) 2 недель назад
obico_actions.py 1de2d51634 fix(smart-plugs): Home Assistant scripts linked to a printer run when Bambuddy switches its power plug off or on by schedule, not only by hand 5 дней назад
obico_detection.py 578add28d8 fix(printers): a printer added after a delete starts clean 1 неделя назад
obico_smoothing.py eec7793955 feat(obico): AI print-failure detection via self-hosted Obico ML API (#172) 6 месяцев назад
oidc_group_sync.py 45921b7a56 Limit groups to selected printers (issue #1727) 3 недель назад
oidc_icon.py 8a7598f6b5 feat(auth): proxy OIDC provider icons server-side (#1333) (#1342) 5 месяцев назад
opentag3d.py b30a283184 Feature/spoolman inventory UI (#1241) 5 месяцев назад
orca_cloud.py 00251fe808 feat(orca-cloud): pair via RFC 8628 device flow, replacing the paste-based sign-in 3 месяцев назад
orca_profiles.py 330d77198a Fix AMS slot showing wrong material for "Support for" profiles 7 месяцев назад
pdf_thumbnail.py 86bd9e1bd4 fix(file-manager): harden the merged previews - PDF.js legacy build, server PDF thumbnails, STEP progress (issue #2976) 3 недель назад
pipeline_eligibility.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 4 дней назад
pipeline_job_status.py 176161f0d2 fix(pipelines): a pipeline run remembers how each copy ended 1 неделя назад
plate_detection.py ce9853c056 fix(printing): a plate check that could not run says so; the archive recovery download follows the file size; an unconfirmed upload is read back; broken MakerWorld downloads are refused; bulk-edit toast reflects the result; CallMeBot values are encoded 5 дней назад
plate_thumbnail.py bdbfa5d8fd fix(library): STL thumbnails are made off the event loop, one at a time 6 дней назад
plug_energy.py 47795649ae fix(smart-plugs): power alerts are sent, checked in the background, once per crossing 1 неделя назад
plug_energy_history.py aba00598bb fix(smart-plugs): read a REST plug's lifetime counter, and derive Today/Yesterday from it (issue #2539) 3 месяцев назад
power_alerts.py 47795649ae fix(smart-plugs): power alerts are sent, checked in the background, once per crossing 1 неделя назад
preset_resolver.py cf98daa0bb Security hardening (maziggy/bambuddy-security #10) 2 недель назад
print_batch.py f761a3ae97 fix(queue): every way of adding a job announces it, applies the default print options and keeps its cost centre 6 дней назад
print_confirmation.py 1c316e2ad6 Answer the outcome prompt by reacting to the Telegram message (#3129) 3 недель назад
print_control.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 3 дней назад
print_cost_estimate.py 141ec5dbb3 fix(spoolman): failed prints are logged with their spool cost, queue estimates use Spoolman prices 1 неделя назад
print_defaults.py f761a3ae97 fix(queue): every way of adding a job announces it, applies the default print options and keeps its cost centre 6 дней назад
print_dispatch_context.py db6cdb0745 fix(camera): take the finish photo when the print ends, not when its last layer starts (#2547) 2 месяцев назад
print_log.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 4 дней назад
print_scheduler.py 1c86625b82 fix(queue): Force color match is kept for a job queued to a specific printer: it waits for a spool of the exact colour and variant instead of printing on the first spool of the same material, and two slots asking for the same filament need two spools of it (#3280) 1 день назад
print_storage.py ebc72e1d41 fix(archives): keep the project name when the wrong-plate guard rejects a 3MF (issue #3126) 1 месяц назад
printer_diagnostic.py a36c0009a5 fix(diagnostics): name the stalled step when a bundle's connection check times out (issue #3164) 3 недель назад
printer_file_cache.py 026acaf511 fix(printers): the plate picker downloads a printer's 3MF once 6 дней назад
printer_manager.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 2 дней назад
printer_media.py 7a2fd80b91 fix(ftp): printer downloads stop at their deadline, fit the file's size and say what failed 6 дней назад
process_overrides.py f0500578bd Edit the full print-parameter set from the slice dialog 2 месяцев назад
queue_announcements.py f761a3ae97 fix(queue): every way of adding a job announces it, applies the default print options and keeps its cost centre 6 дней назад
queue_item_printer.py 2699bebc37 fix(queue): a job moved to another printer drops the old printer's settings 1 неделя назад
queue_position.py e9627e44a2 Start queued jobs in list order, whether pinned or "Any <model>" (#3200) 3 недель назад
rest_smart_plug.py a51283ad76 Security hardening (maziggy/bambuddy-security #19) 1 неделя назад
secret_fields.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 2 дней назад
slice_dispatch.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. 3 дней назад
slice_output_check.py 4f10d15584 Record the colour a slice is actually printed in (issue #2977) 1 месяц назад
slice_preview.py 9a837d19a1 fix(slicer): strip zero-valued filament-index sentinels, and sanitise the preview slice too (issue #3030) 1 месяц назад
slicer_3mf_convert.py 83142c726c fix(slice): report a finished slice once, not once per queued poll 2 месяцев назад
slicer_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 2 дней назад
slicer_filament_resolver.py 02e39b18b9 Configure Orca Cloud filaments with their own filament ID (#3216) 3 недель назад
slot_kprofile.py 53ef17dc56 fix(spoolman): slot assignments are verified, and the spool's own preset is used for the slot 1 неделя назад
slot_nozzle.py 113f08a1a1 fix(printers): REST and WebSocket share the AMS serialiser, override picker sees both nozzles without an AMS 6 дней назад
slot_preset_writer.py 02e39b18b9 Configure Orca Cloud filaments with their own filament ID (#3216) 3 недель назад
slot_unlink_grace.py 3497cf0d46 Hold an automatic slot unlink until the slot stays empty (issue #3186) 3 недель назад
smart_plug_manager.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 2 дней назад
sponsor_prompt.py 31e61cebd7 feat(sponsor-prompt): lower print/archive/cost thresholds to fire for typical new installs 3 месяцев назад
spool_assignment_notifications.py 08a58b1ef4 Keep both modes' slot assignments across an inventory mode switch (issue #2812) 1 месяц назад
spool_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 4 дней назад
spool_drying.py 84f320b859 Remember when each spool was last dried (#2863) 2 недель назад
spool_filament_preset.py 53ef17dc56 fix(spoolman): slot assignments are verified, and the spool's own preset is used for the slot 1 неделя назад
spool_tag_matcher.py 23d04c8645 fix(inventory): archived or deleted spools release their AMS slots, safely in both modes 1 неделя назад
spoolbuddy_ssh.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 3 дней назад
spoolman.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 2 дней назад
spoolman_slot_sync.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 4 дней назад
spoolman_tracking.py 005b34af6d deleted. Nothing would have been charged twice, but that printer would have looked mid-print to later spool archiving. It's closed using the "completion in progress" 3 дней назад
stl_thumbnail.py bdbfa5d8fd fix(library): STL thumbnails are made off the event loop, one at a time 6 дней назад
stock_forecast.py 318430f0f4 Give the two stock alerts something that fires them (issue #2955) (#3196) 3 недель назад
supplier_links.py 053cfa73ad Suppliers as a managed list with per-spool assignments (#2996) 3 недель назад
tag_conflict.py 0db028f9e6 fix(inventory): one structured 409 for a tag another spool holds (issue #3110) 1 месяц назад
tasmota.py 3daae22f3d Security hardening (maziggy/bambuddy-security #8) 2 месяцев назад
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 2 дней назад
timelapse_jobs.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 2 дней назад
timelapse_processor.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 2 дней назад
usage_tracker.py b63189f2be fix(printers): the print slot labels on AMS slots stay on when Bambuddy restarts during a print (the mapping captured from the print command is restored with the print session) 2 дней назад