Komit Sejarah

Pembuat SHA1 Pesan Tanggal
  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) 2 hari lalu
  maziggy 29a81520d9 feat(external-links): an app can show a count on its sidebar link (PUT /external-links/badge with "Send notifications"; Bambuddy Orders shows its To do count), the count disappears when not updated for ten minutes 3 hari lalu
  maziggy 16633dd27a fix(printers): Escape closes the Build Plate Check result as soon as it appears (the listener that knows the result is attached in the same render) 3 hari lalu
  maziggy 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) 3 hari lalu
  maziggy 9c61a52727 test: close the coroutines that mocked create_task, wait_for, run_coroutine_threadsafe, spawn_background_task and AsyncMock sessions left unawaited (reported as unraisable warnings in unrelated later tests); the Spoolman recovery tests archive under their own tmp_path instead of the shared archive/; the bulk mocks' HA sensor and queue single routes are mocked, so the batched-reads test no longer falls back to per-printer requests, and it waits for the batches to settle before checking 3 hari lalu
  maziggy ee2d6e69aa test: close the coroutines that mocked create_task, wait_for, run_coroutine_threadsafe, spawn_background_task and AsyncMock sessions left unawaited (reported as unraisable warnings in unrelated later tests); the Spoolman recovery tests archive under their own tmp_path instead of the shared archive/ 3 hari lalu
  maziggy c1ea484a5a test: the no-archive notification tests close the coroutine they capture; the Spoolman recovery tests archive under their own tmp_path instead of the shared archive/, where another worker could write the same 3MF path at the same time 3 hari lalu
  maziggy df6ad0fa60 test: the no-archive notification tests close the coroutine they capture instead of leaking it into a later test's unraisable warning 3 hari lalu
  maziggy 9f2d15f70f Merge perf/farm-fanout: batched printer-card reads (/api/v1/bulk) and server-paged queue history 3 hari lalu
  maziggy ed72611344 Bumped version 3 hari lalu
  MartinNYHC 4316ede3af Merge pull request #3350 from maziggy/dev2 3 hari lalu
  maziggy 833a096da6 test/chore: Bandit findings on PR #3350 marked with reasons (ftplib in tests, migration SQL built from module constants), a misplaced nosec moved to its SQL line; layer timelapse tests use tmp_path instead of a shared /tmp/test_bambuddy 3 hari lalu
  maziggy 76ed16509f chore(deps): pillow 13.0.0 and certifi 2026.10.19, multidict floor 6.9.1 (pip-audit findings); locks regenerated for these packages only 3 hari lalu
  maziggy 3043dae4fc chore(deps): vite 8.1.6 and source-map-js 1.2.2 (npm audit: launch-editor and source-map advisories in dev tooling) 3 hari lalu
  maziggy e290a57c84 test: vitest shows console output only for failing tests (silent: 'passed-only' in vitest.config.ts, so Docker runs are quiet too); test_frontend.sh back to npm run test:run 3 hari lalu
  maziggy 9083cd2a35 test: Docker test runs use 30 workers (-n auto counted physical cores only); tests stop the background tasks they started and close the app engine's connections after every test on SQLite too ("Event loop is closed" thread warning) 3 hari lalu
  maziggy 198610476f test: Docker test runs use all logical CPUs (-n logical; auto counted physical cores only); tests stop the background tasks they started and close the app engine's connections after every test on SQLite too ("Event loop is closed" thread warning) 3 hari lalu
  maziggy 92c307786a test: test_frontend.sh hides console output of passing tests (vitest --silent=passed-only) 3 hari lalu
  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 3 hari lalu
  maziggy 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 3 hari lalu
  maziggy 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 4 hari lalu
  maziggy 57ed8253ea Security hardening (maziggy/bambuddy-security #N) 4 hari lalu
  maziggy 847baa347d test(frontend): wiring tests for the 37 high-risk gaps (printer card and bulk actions, settings and 2FA, inventory/Spoolman/SpoolBuddy, queue, archives, finance, K-profiles, smart plugs, maintenance); fix: the archive purge uses the previewed age, a transaction can be moved to no cost center, and deleting a printer refreshes its spool assignments 4 hari lalu
  maziggy 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. 4 hari lalu
  maziggy 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) 4 hari lalu
  maziggy 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) 4 hari lalu
  maziggy 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 4 hari lalu
  maziggy 808e461c52 fix(printers): live updates carry the airduct (cooling/heating) mode, also when it is the only change on an idle printer, and each H2C rack slot's filament type; the recovered-3MF Spoolman tests no longer depend on plate ids another test left behind 4 hari lalu
  maziggy 5cda4c6913 fix(backup): a Git restore brings back a print that was running at backup time as cancelled ("No status update received") instead of a print that failed on the next reconnect, and an archive this instance still has keeps its own status on overwrite; each spool's last-used time is backed up and restored 4 hari lalu
  maziggy 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 4 hari lalu