Skip to content

1.11.0

Released: 2026-06-13

Highlights

  • Attach free-form notes to records — starting with the item catalog.
  • Items now track a manufacture date and expiration date.

Added

  • Notes — a new polymorphic resource that links a note to any entity via (entityType, entityId). Full CRUD: createNote, updateNote, deleteNote, notesForEntity, note. Guarded by the new NOTES RBAC path. The first consumer is the item catalog (SourceType.ITEMS). See Notes & Item Lifecycle Dates.
  • Item lifecycle datesItem.manufactureDate and Item.expirationDate (nullable Date), settable on ItemInput, exposed on Item / ItemLite, and returned by the items landing page (ItemLandingPage).

Changed

  • Path and Resource enums gain a NOTES member; medical tenants' default path set now includes NOTES.

Fixed

  • None.

Migrations

  • add_notes_table (down_revision = add_parent_id_to_exp_categories) — creates the notes table and the (entity_type, entity_id) index.
  • add_dates_to_items (down_revision = add_notes_table) — adds items.manufacture_date and items.expiration_date.
  • One-off script: uv run python scripts/backfill_new_path_permissions.py backfills PathPermission(can_view=True) rows for Path.NOTES on existing tenants.

Frontend impact

  • Item detail screens can render a notes panel: notesForEntity(entityType: ITEMS, entityId: <itemId>) to list, and createNote / updateNote / deleteNote with NoteInput.entityType = ITEMS, entityId = <itemId> to mutate.
  • ItemInput accepts optional manufactureDate and expirationDate (ISO Date); Item / ItemLite expose both (nullable).

Versioning notes

  • Bumped with uv run python scripts/bump_version.py 1.11.0 --changelog-stub.
  • Additive schema only — no breaking changes. Run the path-permission backfill after deploy so existing tenants gain the NOTES permission.