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 |