Changelog

What's shipped.

Pulled live from GitHub Releases at build time. Updated each time we cut a tag.

  1. v0.9.0

    Latest v0.9.0 · May 20, 2026
    📝 Read the v0.9.0 post

    Changes since v0.8.0

    Commits

    • feat(inbound): allow matching by ticket ref (PREFIX-0000) (56bb9a0)
    • feat(users): auto-provision Submitter accounts from inbound senders (5507bf3)
    • fix(comments): allow Tech / is_agent to share comments with vendors (d3bc459)
    • fix(inbound): vendor-reply lookup ignores empty blind_idx (f62b12b)
    • feat(rbac): gate Inventory + bulk assignee picker to handlers (0b55aa9)
    • feat(canned): markdown editor with preview for canned response body (c8cb4d4)
    • feat(vendor-email): render markdown body with sanitized HTML (90a4459)
    • feat(labels): Zebra label printer with asset label flow (60c68e5)
    • feat(inventory): asset_tag, custody log, label tweaks; fix webhook routing (4a60c54)
    • feat(consumables): supply inventory with ledger; fix asset_tag sync (3fe25e2)
    • fix(ui): uniform desktop button heights on TicketList header (7c37ab3)
    • fix(ui): reserve transparent border on .btn baseline (3d4e543)
    • docs(help): refresh ticket-list-filters with uniform header buttons (b7465ce)
    • feat(kb): agent-only articles (Notes-equivalent gate) (88bb73c)
    • docs(help): refresh kb-project shot with agent-only article (6990272)
    • feat(kb): runbooks — checklist KB articles with canned-response pills (fb6c8fa)
    • fix(runbook): canned-pill tokenizer accepts multi-word titles (9a5925b)
    • docs(help): seed ticket-detail-runbook screenshot (9b15470)
    • fix(ticket): mobile tabs use a select; desktop tab strip wraps (283b48f)
    • docs(help): v0.9.0 catch-up — consumables, custody, labels, RBAC (69bc3c5)

    Compare

    Full diff: v0.8.0…v0.9.0

  2. v0.8.0

    v0.8.0 · May 19, 2026
    📝 Read the v0.8.0 post

    Changes since v0.7.0

    Commits

    • docs(roadmap): clear v0.7.0-shipped items, add agent-forward submission (89d87e3)
    • feat: per-project handler notes + image lightbox (55c895d)
    • docs(help): project-scoped notes access, agent flag, image lightbox (3d2fa78)
    • docs(help): refresh ticket-detail comments shot + add image lightbox shot (50d1768)
    • feat(comments): edit posted comments (5eb6e5d)
    • docs(help): document comment editing + add edit-comment screenshot (4272a44)
    • feat(comments): gate (edited) badge on distribution (ce7c21b)
    • feat(comments,notes,inbound): edit notes, lock replies, forward attribution (97d62d9)
    • feat(inbound): default landing project for multi-scope inboxes (cd6baba)
    • feat: outbox cleanup, AI usage ledger, digest hour pref, auto-resume (945a3cf)
    • docs(help): v0.8.0 catch-up — AI ledger, auto-resume, refreshed shots (7a0785f)
    • fix(help): stack role pills vertically on mobile (aa0f676)
    • feat(ops): build identity + manual update check on System health (fded5b5)
    • chore: ship scripts/build-with-version.sh in repo (9ac34a4)
    • fix(ui): HybridTime accepts value= prop alongside dt= (45bd390)

    Compare

    Full diff: v0.7.0…v0.8.0

  3. v0.7.0

    v0.7.0 · May 16, 2026
    📝 Read the v0.7.0 post

    Changes since v0.6.2

    Commits

    • feat(alerts+inventory): Action1 API polling + Phase 1A asset module (a52cdde)
    • feat(ui): collapsible sidebar layout + Inventory page + independent panel scrolling (1eb172f)
    • feat(roles): add Tech role (7b7ae26)
    • feat(sla): pre-breach warnings + business-hours clock (db245ea)
    • feat(sla): auto-assignment policies (round-robin / case-load / specific user) (df5b474)
    • feat(sla): escalation chains (warning + breach triggers, notify/reassign actions) (22f9700)
    • feat(assignment): per-project Agent flag replaces role-based filter (418639b)
    • feat(assignment): priority operators on assignment policies (08c3e94)
    • feat(escalations): priority operators on escalation chain steps (c83cfb9)
    • feat(sla): reporting — vendor-vs-internal pause breakdown + time-in-status (6f151a8)
    • Merge pull request #37 from joshhearne/feat/sla-business-hours-warnings (85c1a85)
    • Merge pull request #41 from joshhearne/feat/sla-auto-assignment (0df82d3)
    • Merge pull request #42 from joshhearne/feat/sla-escalations (bb4cc85)
    • Merge pull request #43 from joshhearne/feat/sla-reporting-d1d2 (7816f03)
    • Merge pull request #36 from joshhearne/feat/ai-wire-more-surfaces (d45eee0)
    • fix(inventory): map Action1's actual field names (8c1a483)
    • Merge pull request #44 from joshhearne/feat/inventory-action1-field-map (26c16bf)
    • feat(inventory): custom fields foundation (Phase 1C-1) (edb1027)
    • fix(api): add put method to api util (17d60fa)
    • Merge pull request #45 from joshhearne/feat/custom-fields-foundation (e7c6c52)
    • feat(inventory): Action1 custom attribute mapping (Phase 1C-2) (48b2eb5)
    • Merge pull request #46 from joshhearne/feat/action1-attribute-mapping (2e75387)
    • feat(inventory): ticket-asset linking + UPN auto-association (c02b321)
    • fix(inventory): show linked asset hostname instead of #id on ticket detail (bd966e1)
    • Merge pull request #47 from joshhearne/feat/ticket-asset-linking (c865c87)
    • feat(inventory): per-source company override (MSP silo case) (fd2542e)
    • feat(inventory): Hudu-style org→company mapping + UI fixes (4746a4c)
    • Merge pull request #48 from joshhearne/feat/inventory-company-override (a04d8ec)
    • feat(inventory): manual asset CRUD (Phase 1B closeout) (513c3b3)
    • feat(inventory): asset types + per-type field schema (93a66b1)
    • Merge pull request #49 from joshhearne/feat/manual-asset-crud (cb6d225)
    • feat(roles): wire Tech permissions for ticket + inventory routes (e18d893)
    • Merge pull request #50 from joshhearne/feat/tech-role-perms (124d915)
    • feat(inventory): surface patch + vulnerability counts per asset (be95207)
    • Merge pull request #51 from joshhearne/feat/inventory-patch-vuln (d96ce21)
    • feat(inventory): on-demand software inventory sync for computer-type assets (4d10f5a)
    • fix(inventory): SELECT * for source row so decryptRow can find api_token_enc (aefda65)
    • fix(inventory): correct Action1 software endpoint path (3a67c73)
    • fix(inventory): unwrap Action1 ReportRow {fields:{Name,Version,...}} (c06700c)
    • Merge pull request #52 from joshhearne/feat/inventory-software (29cacdf)
    • feat(inventory): offline detection + software auto-sync + CSV export (c6a1d33)
    • fix(inventory): constrain :id route param to digits so /export.csv doesn't collide (94e0b6f)
    • Merge pull request #53 from joshhearne/feat/inventory-v01-polish (1006aa5)
    • feat(escalations): multi-action steps + notify_assignee (799cf7d)
    • Merge pull request #54 from joshhearne/feat/escalations-multi-action (f8df354)
    • fix(escalations): scope notify_role/reassign_role to ticket's project (7d2dfda)
    • Merge pull request #55 from joshhearne/feat/escalations-project-scoped-roles (c0b9f72)
    • feat(escalations): add reassign_agent action kind (055ee84)
    • Merge pull request #56 from joshhearne/feat/escalations-reassign-agent (64b8d7b)
    • feat(escalations): reassign_agent defers to project assignment policy (dbf5b1d)
    • Merge pull request #57 from joshhearne/feat/escalations-reassign-uses-policy (736e247)
    • feat(escalations): bump_priority action + cascade-safe snapshot (3ca870a)
    • fix(vendor-outbound): send all attachment types + fix race vs upload (a9795c1)
    • Merge remote-tracking branch 'origin/main' into dev (4f135a9)
    • feat(kb): per-project Knowledge Base with BlockNote editor (70e3b85)
    • fix(sla): stop resolve clock on terminal close + distinct breach emails (465eefc)
    • fix(phonetic): drop native title tooltip on PhoneticPopover anchor (631b615)
    • feat(ux): sidebar hover-expand + leave-collapse + Escape closes ticket overlays (7a247de)
    • feat(projects+kb): per-user starred projects, shared between Projects + KB (8a41fbd)
    • feat(integrations): multi-vendor adapter registry (Phase 0 + 1) (ef46691)
    • feat(integrations): generic webhook intake + tabular field-map (Phase 2 + 3) (54430f3)
    • feat(integrations-ui): field map editor + inbound events panel + label fixes (65fc364)
    • feat(integrations-ui): Phase 7 — registry-driven labels + capabilities editor (464d8a4)
    • feat(integrations-ui): registry-driven add form + clear token banner on delete (91c9dab)
    • feat(integrations): Phase 4 — software-name normalization across vendors (7ff86a8)
    • feat(inventory): full-page asset detail + cross-project tickets + canonical software (616b798)
    • feat(tickets): breadcrumb trail on ticket detail (83bd83e)
    • feat(kb+tickets): tagging, ticket↔KB linking, suggestions, resolution summary (38612c1)
    • feat(kb): Promote-to-KB + close-time nudge (Step 5) (7841b2b)
    • feat(tickets): preserve loser external ref on merge as CSV w/ *old tag (b3a713d)
    • feat(action1): client-side rate limiting + 429 retry (9ee701e)
    • feat(tickets): move Knowledge panel into Resolution tab + vendor escape (620ea0b)
    • fix(sla): exclude Resolved + Closed from time-in-status (da01010)
    • feat(kb): auto-surface high-confidence article match on ticket open (50e646b)
    • feat(notes): handler-only internal notes on tickets (b848a8b)
    • feat(tickets): Notes tab + vendor filter + cross-mode draft switch (767057b)
    • feat(alerts): first-class alerts page + rule-driven ticket promotion (9a5788a)
    • feat(notes): @mention support, scoped to project agents (25345c2)
    • Merge branch 'dev' (953d263)
    • chore(frontend): sync package-lock.json with tailwindcss [email protected] (4552dc0)
    • docs(action1): add required trademark/disclaimer footnote (cafd52a)
    • feat(kb): tag filter index on KbProject + KB shortcut on ProjectDetail (10694e5)
    • feat(dashboard): global filters bar — date range + projects + statuses (2d3a1dd)
    • feat(tickets): overhaul TicketList nav — Mine, global filters modal, recents rail (8bd95fb)
    • feat(tickets): bulk reply, collapsible recents, importance-based priority ops, terminal-status notification gate (bb4d916)
    • chore(action1): scope trademark disclaimer to Action1 source detail only (6143bd2)
    • docs(v0.7.0): README + ROADMAP + Help page catch-up for v0.7.0 release (e01e327)
    • fix(schema): move asset_software canonical_* ALTERs after CREATE TABLE (d1f1387)
    • docs(help): v0.7.0 screenshot sweep (45ff8ac)

    Compare

    Full diff: v0.6.2…v0.7.0

  4. v0.6.2

    v0.6.2 · May 14, 2026

    Changes since v0.6.0

    Commits

    • docs(roadmap): add SLA follow-ups section (business hours, escalations, pre-breach, webhooks) (d5b6119)
    • fix(email): drop RFC-reserved fake-TLD recipients before send (.local, .test, .example, .invalid) (784ee55)
    • fix(ai): gate AI Assist on RESOLVD_MASTER_KEY + in-app key generator (7498b11)
    • fix(crm): add api.put + MSP-aware Projects vendor/customer labels (76df220)

    Compare

    Full diff: v0.6.0…v0.6.2

  5. v0.6.1

    v0.6.1 · May 11, 2026

    Changes since v0.6.0

    Commits

    • fix(ai): gate AI Assist on RESOLVD_MASTER_KEY + in-app key generator (9b5a8a5)

    Compare

    Full diff: v0.6.0…v0.6.1

  6. v0.6.0

    v0.6.0 · May 11, 2026
    📝 Read the v0.6.0 post

    Changes since v0.5.1

    Commits

    • docs(roadmap): add BYO-AI text punch-up entry (193ddf7)
    • feat(notifications): channel x event matrix + email digest cadence + outbox (44fbb9d)
    • fix(prefs): deep-merge notification_prefs on GET/PATCH (61d78b4)
    • fix(notifications): mention dedup + restore APP_URL in email.js (7e9dc84)
    • fix(notifications): center bell tray panel on mobile (219ca58)
    • Merge pull request #17 from joshhearne/feat/notifications-matrix (bd47041)
    • feat(sla): per-priority + per-project SLA targets, pause-on-blocker, breach detection (a01f898)
    • feat(sla): MTD breach dashboard card + per-project breakdown + visibility scope (1939a63)
    • Merge pull request #18 from joshhearne/feat/sla-tracker (bb863fd)
    • docs: SLA tracker shipped — README section + ROADMAP entry (f9309bb)
    • Merge pull request #20 from joshhearne/chore/docs-sla-shipped (72d510d)
    • feat(ai): BYO-AI text rewrite v1 (provider adapters + modal + per-user config) (3a72ce9)
    • feat(ai): wire AI rewrite into vendor email templates (subject + body) (f0f4b2c)
    • docs: notifications matrix + BYO-AI in README + ROADMAP (0c9782c)
    • feat(ai): friendly provider error mapping (868a5b4)
    • Merge pull request #21 from joshhearne/feat/byo-ai-rewrite-v2 (ede24c9)
    • feat(ai): grouped model picker w/ live refresh (ff8981e)
    • feat(ai): project-level AI context (admin glossary + per-user opt-out) (23f2713)
    • feat(ai): usage disclosure badge + per-user publish opt-in (4bd1c04)
    • Merge pull request #22 from joshhearne/feat/ai-model-selection (6d28e65)
    • feat(ai): compact usage badge w/ hover popover + click-to-copy (7d57fb0)
    • Merge pull request #24 from joshhearne/feat/ai-usage-disclosure (10ce763)
    • Merge pull request #27 from joshhearne/feat/ai-usage-badge-popover-2 (7dbbe41)
    • feat(security): harden login against credential stuffing + bots (a4cfb2d)
    • feat(ai): admin org-managed AI integration page (3-section master-detail) (ba65674)
    • feat(ai): provider helper text + console links + admin model picker (883512e)
    • Merge pull request #29 from joshhearne/feat/login-hardening (24e405f)
    • feat(ai): wire AI rewrite into ticket title, canned responses, project description (33ea122)
    • Merge pull request #28 from joshhearne/feat/ai-admin-integration (f783a84)
    • Merge pull request #30 from joshhearne/feat/ai-wire-more-surfaces (9633204)
    • docs(release): v0.6.0 — BYO-AI text rewrite + login hardening + SLA tracker + notifications matrix (f883c54)

    Compare

    Full diff: v0.5.1…v0.6.0

  7. v0.5.1

    v0.5.1 · May 9, 2026

    Changes since v0.5.0

    Commits

    • fix: portal modals + merge picker to body (eafaa0b)
    • chore: drop cloudflared service from compose + .env.example (c71595b)
    • feat: HelpScreenshot component + gitignore screenshot tooling (b35c369)
    • docs(help): real screenshots + v0.5.0 content catch-up (f706d19)

    Compare

    Full diff: v0.5.0…v0.5.1

  8. v0.5.0

    v0.5.0 · May 9, 2026
    📝 Read the v0.5.0 post

    Changes since v0.4.2

    Commits

    • feat(skills): /draft-release-post for cutting release blog posts (23515ff)
    • Create dependabot.yml (a8885eb)
    • Update dependabot.yml (e15577d)
    • chore(deps): bump actions/checkout from 4 to 6 (#5) (f5aecbe)
    • chore(deps): bump actions/setup-node from 4 to 6 (#6) (e6b57d9)
    • chore(deps): bump the backend-minor-patch group (#7) (26046c4)
    • chore: ignore db backup artifacts (backup-*.sql, *.dump) (f12498e)
    • chore: untrack .claude/ workspace, add to gitignore (0d4d2d4)
    • fix: revert frontend/package-lock.json (accidentally pulled from PR #8 branch) (ae303cd)
    • chore(deps-dev): bump postcss from 8.5.10 to 8.5.14 in /frontend in the frontend-minor-patch group across 1 directory (#8) (551181b)
    • chore(deps): bump connect-pg-simple from 9.0.1 to 10.0.0 in /backend (#12) (b522382)
    • docs: add multi-tenant + modular platform direction to roadmap (03ac6a1)
    • docs: add generic alert webhook ingestion (Zabbix, Alertmanager, etc) as phase 5 (08ebbad)
    • docs: expand alert webhook presets — tier 1/2/3 + community SDK pattern (2f08b91)
    • docs: add scheduled ticketing (recurring + snoozed) as phase 6 (8d55822)
    • feat: strip closing-salutation signatures from inbound vendor replies (6441bfb)
    • docs: add mobile applications (PWA → Capacitor → RN) as phase 7 (b59f597)
    • fix: saved views capture + restore project_id (b004cdd)
    • docs: drop nginx cert mount; document host-based cloudflared (86839e4)
    • feat: layout sweep + Zabbix integration + canned responses + CRM rebuild (c6b5433)
    • fix(support): qualify status column in grants list query (3be1609)

    Compare

    Full diff: v0.4.2…v0.5.0

  9. v0.4.1

    v0.4.1 · May 7, 2026

    Changes since v0.4.0

    Commits

    • docs: drop stale @mentions autocomplete gap (shipped v0.2.2) (317601a)
    • feat: custom favicon doubles as PWA / iOS home-screen icon (bd9e344)

    Compare

    Full diff: v0.4.0…v0.4.1

  10. v0.4.0

    v0.4.0 · May 7, 2026
    📝 Read the v0.4.0 post

    Changes since v0.3.1

    Commits

    • feat: cross-project visibility controls + send-as for unsubmitted tickets (b2d1550)
    • fix: stop spoofing From on vendor outbound; use "Actor via Site" display name (a4da37b)
    • feat: reply-above-this-line marker + per-account banner stripping (e4859a8)
    • feat: search-driven merge picker + standalone admin merge tool (47fe917)
    • fix: vendor reply attribution + per-vendor pill colors (7e066dd)
    • feat: helpdesk routing — email-account project scope, bulk-add members, auto-add new users (9581087)
    • chore: document VAPID env vars in .env.example (707b43d)

    Compare

    Full diff: v0.3.1…v0.4.0

  11. v0.3.1

    v0.3.1 · May 6, 2026

    Changes since v0.3.0

    Commits

    • fix: portal phonetic popover, multi-value vendor refs (5de7741)
    • chore: fold default_project_id into /me/prefs, relocate status defaults (563829d)

    Compare

    Full diff: v0.3.0…v0.3.1

  12. v0.2.3

    v0.2.3 · Apr 30, 2026

    Changes since v0.2.2

    Commits

    • fix: render markdown in outbound emails (86e5e1c)
    • fix: prevent click event being passed as send_as to notifyVendor (5d29315)
    • feat: browser push notifications for assignment + mention (fdc3a40)
    • feat: hybrid timestamp tooltips + per-user locale overrides (4bc00d9)
    • feat: bulk ticket edit (admin), readme v0.2.3 (ae3cad1)

    Compare

    Full diff: v0.2.2…v0.2.3

  13. v0.2.2

    v0.2.2 · Apr 29, 2026

    Changes since v0.2.1

    Commits

    • fix: mention regex lastIndex persistence and followers route path mismatch (7d3b870)
    • feat: @mention autocomplete dropdown in comment box (0b1e367)
    • feat: notifications visible to all roles, clickable with comment flash (44568a2)
    • feat: auto-reopen terminal tickets on substantive web comment (7d6226a)
    • feat: gate vendor status/resolved emails on prior contact (0939110)
    • docs: update README for session changes (ad319f7)
    • feat: markdown editor for comments and descriptions, vendor notification prefs, send-as modal (8c88207)
    • feat: help docs page, fix manager user list access, readme v0.2.2 (c64b64f)

    Compare

    Full diff: v0.2.1…v0.2.2

  14. v0.2.1

    v0.2.1 · Apr 28, 2026

    Changes since v0.2.0

    Commits

    • Branding timezone: datalist autocomplete + IANA reference link (9bc85ec)
    • Mobile ticket header: stack layout, kebab popover for secondary actions (f1a6f1d)

    Compare

    Full diff: v0.2.0…v0.2.1

  15. v0.2.0

    v0.2.0 · Apr 28, 2026
    📝 Read the v0.2.0 post

    Changes since v0.1.0

    Commits

    • Fix frontend Docker build: skip host lockfile to dodge npm/cli#4828 (18925ed)
    • Rename DB and user from mot_issues to resolvd (f098719)
    • Theme toggle: cycle light → dark → system, drop dropdown picker (fbba37e)
    • Add notification tray, CC intake, send-as-submitter, export filters, contact picker; sanitize coastal_ticket_ref (b46542e)
    • Fix ticket detail: isolate each parallel load so attachment/audit/follower failures don't block each other (a939fa7)
    • Fix Graph API header limit: drop X-Resolvd-Event to stay under 5-header cap (95be725)
    • Fix Graph internetMessageHeaders: only pass x- prefixed headers; strip Auto-Submitted and Precedence (9cae09a)
    • Add Admin comment delete: DELETE /api/comments/:id + Delete button on comment thread (caa6b76)
    • Fix PrintExport: forward external_statuses, status_logic, company_ids to export API (f4220ba)
    • Export: add CSV download, image toggle, remove auto-print from preview (36e2c93)
    • Attach ticket images to vendor outbound emails (Graph fileAttachment, SMTP nodemailer, Gmail multipart MIME) (89c758b)
    • Fix vendor email layout: wrap in baseHtml card, run htmlify on plain-text templates so newlines render (9eae21e)
    • Fire new_ticket vendor email on ticket creation (b39462e)
    • Fix Graph send-as From header; replace auto new_ticket fire with manual Notify Vendor button (7086d2a)
    • docs: update README for vendor outbound images, Notify Vendor button, comment delete, CSV export (c5b20ab)
    • Resolved-state workflow, ticket admin tools, user preferences, name cleanup (fe6f1ed)
    • Email-on-assignment, hybrid date rendering, awaiting_input tag, ROADMAP (438b699)
    • Add @mentions, drop dead CSV import stub, update roadmap (268f5ce)
    • Per-project default assignee + README/ROADMAP coverage (d997507)

    Compare

    Full diff: v0.1.0…v0.2.0

  16. v0.1.0

    v0.1.0 · Apr 26, 2026
    📝 Read the v0.1.0 post

    Initial release

    Commits

    • Add encryption foundation: KMS, envelope crypto, shadow columns (fd6cdd7)
    • Cut over read/write paths to encrypted columns + blind index search (edf082a)
    • Add JIT support access: time-bound grants with audit log (5be3074)
    • Add CRM: companies, contacts, ticket linking with generic-mailbox guard (11d276f)
    • Add admin-editable email templates with tag substitution (103621f)
    • Add vendor outbound: per-comment external flag + templated send (7a2d501)
    • Add inbound email queue + admin match flow (no auto-create) (9fcf7b2)
    • Wire per-ticket allow_inbound_email toggle into PATCH /api/tickets/:id (3cf31a0)
    • Mute vendor replies in-thread instead of refusing the match (edd90d3)
    • Add daily digest of muted vendor replies (configurable local time) (c826593)
    • Add admin UI for CRM, email templates, inbound queue, support grants, encryption (94df7cb)
    • Wire vendor contacts, mute/share, and muted-bucket UI into TicketDetail (da3ad14)
    • Fix vendor-section disappearing after ticket PATCH (a1d945a)
    • Add OAuth-backed email backends (Microsoft 365 + Gmail) with refresh (d48357c)
    • Add #PREFIX subject email-to-ticket ingestion (5b6d27f)
    • Dedup the email-to-ticket auto-create flow (bf01501)
    • Inbound provider adapters: Microsoft Graph subscription + Gmail watch (ea70519)
    • README: refresh for encryption, CRM, vendor outbound, inbound, OAuth backends (dc997ad)
    • Switch licensing from MIT to FSL-1.1-ALv2 with Apache 2.0 future grant (d8b835f)
    • Add ticket merge: reassign children + close loser (a9d2668)
    • Add vitest scaffold + first round of unit tests (d20dafd)
    • Add GitHub Actions CI: backend tests + frontend build on push/PR (884320e)
    • Re-sync frontend lockfile so npm ci passes in CI (fbe1ede)
    • Regenerate frontend lockfile under Node 20 (npm 10) for CI compat (5f7d197)
    • Release pipeline: tag → GitHub Release → website rebuild (0d044eb)
    • Fold deploy-hook ping into release workflow (9ae4269)
    • Sanitize release notes: anchor floor + drop legacy product names (55d7ccd)

    Compare

    Tree at v0.1.0