v0.1.0
Changelog
Features
- 94ec5c0: feat(api): implement HTTP GET /api/v1/jobs/{id} (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- b9d29f1: feat(api): implement POST /api/v1/preview HTTP adapter (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 835e8cc: feat(api): implement POST /api/v1/print HTTP adapter (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- dab4293: feat(app): implement Service.Preview PNG rendering (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 82dfd19: feat(app): implement Service.Print to enqueue validated Receipts (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- d77407e: feat(app): implement Service.Process rendering orchestration (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- eb7e715: feat(app): wire Receipt->Layout->Canvas->ESC/POS->Printer pipeline (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- dce965f: feat(app): write Process's rendered output to a fake printer log sink (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 1bb256a: feat(apperr): implement typed error taxonomy (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- ad5e2d6: feat(auth): add Bearer-token HTTP middleware (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- ccc96b1: feat(auth): add HTTP Basic-Auth middleware (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 5b932c1: feat(auth): add configured-token resolution (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 576b657: feat(canvas): implement EncodePNG for preview and debugging (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 5ceffbb: feat(canvas): implement first slice of Paint for Text elements (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 43b6406: feat(config): add YAML configuration loading for the frozen schema (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 8cdc27f: feat(docker): add multi-stage Dockerfile for local container builds (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 421a1b4: feat(escpos): add Profile-driven feed/cut to the ESC/POS encoder (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- bfd949d: feat(escpos): add raster encoder skeleton (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- c872d4c: feat(escpos): split large raster images into multiple bands (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 8206994: feat(layout): add Font interface and embedded bitmap Font implementation (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 1d29754: feat(layout): implement first slice of Build for Text elements (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- e351f8e: feat(layout): introduce render/layout Document and Block data model (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- f8fbb48: feat(printer): add TCP network transport (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- c5035c4: feat(printer): add frozen core contracts (Profile, Connection, Printer) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 382b978: feat(queue): implement Queue.Cancel (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 4e4013f: feat(queue): implement Queue.Enqueue for accepting print jobs (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 170c743: feat(queue): implement Queue.ProcessNext for processing print jobs (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- cbf61b1: feat(queue): implement bbolt-backed persistent Store (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 075ccff: feat(queue): implement bounded retry/backoff for ProcessNext (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 6fc3002: feat(queue): implement in-memory Store for Job persistence (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 84dae22: feat(receipt): implement core domain model and Text/Heading/Divider/Spacer elements (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 2195d9f: feat(receipt): implement registry-based JSON polymorphism for Receipt (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- d397df7: feat(render): implement Divider rendering (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- c9e432c: feat(render): implement Image rendering with multi-format raster support (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 6efc09e: feat(render): implement bitmap text styling (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
Bug fixes
- 5168a0c: fix(ci): bump golangci-lint-action to v9 (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 68facfa: fix(render): improve text legibility found in real-hardware review (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
Others
- 9dbad4d: chore(ci): bump the github-actions group across 1 directory with 7 updates (#2) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- a6493ab: docs(adr): promote inline design rationale to ADR-0010/0011, trim comments (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- a85dbb8: docs(adr,architecture): propose Text.Align/Asset.Align/Asset.Width design (ADR-0013) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 8ce6f6a: docs(architecture): freeze the barcode symbology public API (ADR-0009) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- f5e9d22: docs(architecture): require an explicit printer target for Preview (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 5e03330: docs(architecture): specify the public text-styling API (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 5f7be37: docs(changelog): cut v0.1.0 (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- c060a13: docs(readme,ci): add Codecov, CodeQL, and Go version badges; fix remaining Milestone 3 staleness (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- d0ad4ab: feat(ci,release): publish multi-arch container images to GHCR (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 4b81192: feat(cmd/receipt): implement offline
receipt renderCLI command (harveysandiego 18230246+harveysandiego@users.noreply.github.com) - 88aee51: feat(cmd/receipt): switch the CLI to calling receiptd's REST API (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 9cbe9c1: feat(cmd/receiptd): implement the Milestone 2 composition root (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 593d762: feat(cmd/receiptd): wire configured printers and profiles into the composition root (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 01282a7: feat(layout,canvas): extend rendering pipeline to support Heading (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 993f375: feat(layout,canvas): extend rendering pipeline to support Spacer (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- a40b8d2: feat(queue,app): implement Service.JobStatus with minimal Queue.Get lookup (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 4224064: feat(receipt,assets,render/layout): implement the Asset receipt element (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- dfb7801: feat(receipt,render): implement Barcode element with raster rendering (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 7862b98: feat(receipt,render): implement Feed and Cut printer-control elements (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 03775b6: feat(receipt,render): implement QR Code element with raster rendering (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 8027d90: feat(receipt,render/layout,render/canvas): implement Text.Align/Asset.Align/Asset.Width (ADR-0013) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- a577f62: feat(receipt,render/layout,render/canvas): implement the Columns receipt element (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 440f62e: feat(receipt,render/layout,render/canvas): implement the Table receipt element (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 332d34c: feat(receipt,render/layout,render/canvas): render Divider.Style dashed pattern and Barcode.ShowText caption (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 64cc360: feat(render,app,api): thread printer.Profile through layout and rendering (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 03ef500: feat(render/canvas): implement italic, underline, and strikethrough (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 2560170: feat(render/layout): wrap text to the printable width (Milestone 3) (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- bed1d32: fix(config,api,receipt): harden auth default, request bodies, and Spacer height (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 6e01e62: fix(receipt,render): lower default divider thickness, add Size scale factor (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- ffea41d: fix(receipt,render,printer,docs): harden against decompression bombs, unbounded recursion, and stalled printer writes (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 6e93981: fix(render/canvas): fix content-fit width considering only the first block (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- 8ae9826: fix(render/layout): thicken the default divider for legibility on hardware (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
- f6456f7: perf(queue): add Store.NextPending, replacing ProcessNext's full-list scan (harveysandiego 18230246+harveysandiego@users.noreply.github.com)
Verifying a release
Checksums are published in checksums.txt alongside each release.
Multi-arch (linux/amd64, linux/arm64) container images for this
release are published separately to
ghcr.io/harveysandiego/receiptd by .github/workflows/release.yml
— see the Docker section of README.md.