Repository navigation
v0.9.0
·
53 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
0.9.0 (2026-06-05)
- feat: Phase 1i — Label-Quality + Multi-Printer + Samla + Preview (#98) (a33dda9), closes #98
- feat: Phase 1k.2 Multi-Label-Batch via ptouch.print_multi (#106) (a9726a9), closes #106 #101 #103
- feat(api): GET /api/templates/{key}/preview-svg + Dashboard-Modal (Phase 1i D) (c2cbf3c)
- feat(api): GET /api/templates/{key}/preview.png (Diagnose-Tool, Phase 1i A) (27dd325), closes #5
- feat(batch): dispatch_batch refactor to atomic BatchJob + submit_batch_job (Phase 1k.2 Task 9) (a2b6a98), closes #102 #106
- feat(batch): printer_slug + half_cut_override + BackendRouter-Lookup (Phase 1i C) (0561504), closes #6
- feat(brother_ql): print_images via default_print_images_loop (Phase 1k.2 Task 4) (f56e44c), closes #102
- feat(config): Clean-Break Settings + upsert_runtime_printers (Phase 1i H CA-1 7a) (64c38b3)
- feat(lifespan): Multi-Printer-Wiring + service_for pro Drucker (Phase 1i H CA-1 7b) (3661a4e)
- feat(mock): MockBackend.print_images via default_print_images_loop (Phase 1k.2 Task 5) (4ebdbee), closes #102
- feat(printer_backends): BrotherQLBackend + QLSeriesModel (Phase 1i G) (ad52009)
- feat(printer_backends): default_print_images_loop helper (Phase 1k.2 Task 1) (54e1123), closes #102
- feat(printer_backends): half_cut Parameter + half_cut_supported Capability (Phase 1i C) (d41c246)
- feat(printer_backends): PrinterBackend.print_images Protocol method (Phase 1k.2 Task 2) (e93f945), closes #102
- feat(pt): _PTPQueuePrinter.print_images + bug-fix half_cut/last_page forwarding (Phase 1k.2 Task 6) (15ef310), closes #100 #100
- feat(ptouch): print_images via ptouch.print_multi (Phase 1k.2 Task 3) (c0d15f0), closes #102
- feat(ql): _QLQueuePrinter.print_images adapter (Phase 1k.2 Task 7) (cb1e317), closes #102 #106
- feat(queue): BatchJob + enqueue_batch + worker isinstance dispatch (Phase 1k.2 Task 8) (c08da56), closes #102 #106
- feat(schemas): PrinterYAMLConfig + PrintersFile (Phase 1i H) (7779a94)
- feat(scripts): smoke_first_print_batch.py — manual 4-item batch hardware-smoke (Phase 1k.2 Task 12) (d2ce28e), closes #102
- feat(services): BackendRouter mit slug->Backend-Mapping (Phase 1i H CA-2) (a735a34)
- feat(services): PrinterConfigLoader + printers.yaml.example (Phase 1i H) (f065575)
- feat(templates): DPI-Fix + Samla-Templates (Phase 1i B) (af7bce8)
- test(batch): end-to-end multi-label batch integration test (Phase 1k.2 Task 11) (bcc1d04), closes #102
- test(queue): coverage for _process_batch error paths + pragma on _ptouch_print_multi (Phase 1k.2 Tas (0b6250d), closes #106 #102
- style: ruff format + lint cleanup (Phase 1i) (6cffe4c)
- style: ruff format Task 11 integration test (Phase 1k.2 cleanup) (ad47f7e), closes #102
- fix: TTF font + last_page→feed (Phase 1i smoke-test bugs) (#100) (3998575), closes #100
- fix(api): preview-png statt preview.png (OpenAPI kebab-Konvention) (b420722)
- fix(ci): mypy types + privacy scan (Phase 1i) (541502e)
- fix(ci): SnmpQueryError all export + privacy test IP (99c1946), closes #98 #98
- fix(ci): UUID-Continuity-Runbook entfernen (privacy) (b027cff)
- fix(lifespan): col() for mypy-safe SQLModel where-clause in slug collision check (6f9d840), closes #98
- fix(lifespan): session.flush() + slug-collision-detection in upsert_runtime_printers (e7d81e6), closes #98
- fix(print_service): forward auto_cut/high_resolution from request options (Phase 1k.2 Task 9 follow- (51539b5), closes #102
- fix(printer_backends): BrotherQLBackend.preflight_check (Phase 1i Task 8b) (dba9b6c)
- fix(printer_backends): print_images stubs to fix Protocol isinstance regressions (Phase 1k.2 Task 2 (5cbf955), closes #102
- fix(ptouch): propagate last_page→feed to ptouch lib (short half-cut between batch items) (05f780d)
- fix(queue): align image payloads with active_jobs + strengthen Task 8 tests (Phase 1k.2 Task 8 follo (c658e87), closes #102 #106
- fix(renderer): install fonts-dejavu-core in Dockerfile (font_size honored) (9b0cd84)
- fix(reviews): adresse Gemini + Copilot PR #100 findings (9507432), closes #100 #100
- fix(schemas): half_cut_override docstring matches actual force-to-false behavior (a7b84b9), closes #98
- docs: pydantic-settings honesty + DPI-decouple + openapi range + preview-png drift (3d8857e), closes PR#98-Copilot PR#98-Copilot PR#98-Copilot PR#98-Copilot #98
- docs(plan): adresse Gemini Round-2 Review G-R2-1/2/3 (PR #106) (968b693), closes #106 #102 #106
- docs(plan): adresse Gemini-Review G1+G2+G3 (PR #106) (ad3aec5), closes #106 #102 #106
- docs(plan): Phase 1k.2 Multi-Label-Batch implementation plan (#102) (8917d0e), closes #102 #100 #102
- docs(research): PT-P750W Layout-Diagnose Befund (Phase 1i A) (06e8fa9)
- docs(runbook): UUID-Continuity-Check Phase 1i (MA-2-Fix) (0ef3861)
- docs(spec): Phase 1k.2 Multi-Label-Batch via ptouch.print_multi (#102) (96e53c9), closes #102 #101 #102 #103 #102
- docs(spec+plan): adresse Copilot-Review C1-C9 + Privacy-Fixes (PR #106) (4f56a2a), closes #106 #102 #106
- Merge pull request #99 from strausmann/fix/phase1i-ql-preflight-check (8df1be3), closes #99