Files
shopdb-flask/docs/adr
cproudlock 0ee4f5a6ba USB label batch: brand colors + print-color-adjust; document migration strategy
- USBLabelBatch.vue: recolor controls/selection/cell borders to the app CSS
  variables (was hardcoded #667eea/#28a745/#dc3545) and add
  `print-color-adjust: exact` so barcodes print even with "Background graphics"
  off. (Barcodes render as vector SVG, so no canvas->img change needed.)
- ADR-004: document the resolved migration strategy - single core Alembic chain
  (`flask db upgrade`), bundled plugin schema folded into core (7c04), resolving
  the Phase 7B per-plugin-chain conflict footgun. External plugins may still
  ship their own chains.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 20:01:51 -04:00
..

Architecture Decision Records

Each ADR captures a single architectural decision: the context, the decision itself, the consequences, and the alternatives considered. ADRs are immutable once accepted. Superseded ADRs stay in this folder with a pointer to the newer ADR.

Status definitions

  • PROPOSED: drafted, awaiting decision
  • ACCEPTED: decision is in effect
  • SUPERSEDED: replaced by a later ADR (link forward)
  • DEPRECATED: no longer in effect, no replacement

Index

ADR Title Status
001 Asset model is the platform contract ACCEPTED
002 Plugin contract versioning (semver) ACCEPTED
003 Plugin distribution model ACCEPTED
004 Deployment topology (per-site instances) ACCEPTED
005 Equipment vs measuringtools plugin scope ACCEPTED
006 Plugin collector contract pattern ACCEPTED

Authoring

When proposing a new decision, copy the most recent ADR as a template, increment the number, and update this index. Do not edit accepted ADRs in place; supersede them with a new one.