# Changelog

All notable changes to `go/lib` (`code.tnxs.net/vernonkeenan/lib`) are
documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Releases are
`v*` git tags cut from `main` via `make release VERSION=vX.Y.Z`
(main + PR flow, ADR-KV-014, which also governs KV-C6 lib
distribution — see also ADR-KV-004/006 for the mesh-wide branching/release
model). **Branch-per-version is retired** as of 2026-07-12: `main` was
created from the `v0.7.4` tip and is now the only long-lived branch; the
~70 legacy `vX.Y.Z` branches still present in the repo are historical
artifacts of the old convention, not active release refs. Every section
below corresponds to a real git tag in this repo's history (only `v0.7.5`,
cut by the new `make release` script, is an annotated tag — the 71 tags
before it are lightweight, a holdover from the old ritual); no tag, date,
or PR number is invented.

## [Unreleased]

### Removed
- Removed `app.InitForce`, `app.TheForce`, and the `go-force` module from the
  shared package after Auth reached native-only. `sf-gate` remains pinned to
  its prior Lib pending retirement; deprecated Cache must not consume this
  breaking release.

### Added
- Added a generated, read-only Stash PDF metadata client for bounded list and
  tenant-scoped get operations from Stash draft PR #16. A pinned consumer
  projection exposes only `ID`, `Filename`, `Title`, and `URI`, preserves
  compound native-principal plus `kvSession` authentication, and omits all
  create/render/update/delete operations and models.
- Regenerated the Members Go client and synchronized Members Swagger copies
  for the governed shared-portal backend contract, including catalog, plan,
  subscription, entitlement, authorized-client, scope, and effective-
  entitlement operations and models (ADR-KV-017).
- Added the compound-auth Members client surface for Estate Administrator,
  Owner, and Manager tenant-membership administration, including manageable-
  tenant discovery, optimistic updates, and soft revocation (ADR-KV-021).
- Regenerated the Research Go client and synchronized Research Swagger copies
  for governed Industry read/create/update plus tenant-attributed
  IndustryCompany, IndustryProduct, and IndustryService read/create operations.
  Contract tests pin the generated HTTP methods and paths and prevent an
  unsupported `IndustryService.HTML` field from entering the shared model.
- Regenerated the Research Go client from the deployed v0.7.16 contract for
  governed Topic, Factor, FinancialStatement, and Observation list/get/create/
  update workflows. Contract tests pin the source spec, generated operations,
  ID-filtered reads, optimistic-conflict responses, and the absence of invented
  Topic delete, bulk, Salesforce, or credential-literal behavior.
- Synchronized the Research provider projection from draft PR #32 and generated
  compound-auth CompanyProduct and CompanyService list/detail/create clients
  plus CompanyService optimistic update. Contract tests preserve Product's
  proposal-only update boundary, remove both catalog deletes, pin negative
  mutation responses, and prevent Salesforce, Cache, or credential coupling.

## [v0.7.5] — 2026-07-12

First release cut with the new `make release` scripted ritual (ADR-KV-014),
and the first release with CI behind it.

### Added
- First-ever CI for `lib`: `go build/vet/test ./...` job plus a gitleaks
  secret-scan job on every push/PR, closing out the last un-covered repo in
  the 12-repo Go-mesh test-harness program (ci/first-ci-gitleaks, PR #1)
- Table-driven unit tests for `app/service-helpers.go`'s pure helpers
  (test/app-service-helpers, PR #2)

### Changed
- Replaced the manual three-web-UI-plus-CLI release ritual with
  `scripts/release.sh` / `make release` + `make release-dry-run`
  (feat/scripted-release, ADR-KV-014, PR #3)
- Regenerated all sibling clients under `api/` with go-swagger v0.35.0
  (feat/regen-clients-processor-token, PR #5)

### Fixed
- `PaymentMethod` swagger def updated for the `card_*` → `processor_token`
  migration (PR #4)

## [v0.7.4] — 2025-05-27

### Added
- Generated session-management API client and models

## [v0.7.3] — 2025-05-01

### Changed
- Refactored swagger defs (`Address`, `CompanyProduct`, `CompanyService`,
  `Factor`, `FinancialStatement`, `Industry`, `IndustryCompany`,
  `IndustryProduct`, `IndustryService`, `Observation`, `Topic`) to use
  external `$ref` component defs instead of inline definitions

## [v0.7.2] — 2025-04-30

### Changed
- Replaced `AccountID` with `CompanyID` in `GetIndustryCompaniesParams` and
  the related swagger definitions

## [v0.7.1] — 2025-04-29

No code changes — retag of the same commit as `v0.7.0`/`v0.6.7`.

## [v0.7.0] — 2025-04-29

No code changes — retag of the same commit as `v0.6.7`.

## [v0.6.7] — 2025-04-29

### Added
- Enrichment fields on `Account`, `CompanyProduct`, and `CompanyService`
  models

## [v0.6.6] — 2025-04-29

### Changed
- General code-structure refactor for readability/maintainability

## [v0.6.5] — 2024-06-30

### Added
- `Channels` field on `Account` and `Contact` models

## [v0.6.4] — 2024-06-29

### Added
- `AppExchange` URL field on `CompanyProduct` model

## [v0.6.3] — 2024-06-28

### Added
- `AppExchange` URL field on `CompanyProduct` model

## [v0.6.2] — 2024-06-28

### Added
- `AppExchange` URL field on `Account` and `Company` models

## [v0.6.1] — 2024-06-27

### Added
- `FullDescription` field on `Account` model

## [v0.6.0] — 2024-01-22

### Added
- `FullDescription` field on `Industry` model

## Pre-v0.6.0 history (v0.0.1 – v0.5.15, 2021-07-30 – 2023-08-25)

58 tags predate `v0.6.0`, from `lib`'s original scaffolding through the
last patch release before the year-and-a-half gap to `v0.6.0`. Coarse
summary by theme (no PR numbers — this history predates the PR-merge
convention):

- **2021 (v0.0.1–v0.1.9):** Initial `app` package scaffolding — config,
  logger, MySQL, and Salesforce (`go-force`) init helpers; first
  go-swagger client generation against the estate's early services
  (including a since-retired Telnexus/Kazoo-era client, still visible as
  vendored specs under `swagger/`); early devops endpoint moves and
  `/etc` config-path changes.
- **2022 (v0.1.2–v0.4.9):** Buildout of `sf-gate` and `members` swagger
  clients; schema cleanups; `research` and `plex` microservices added to
  the platform; user/session/batch-endpoint additions across `sf-gate` and
  `members`.
- **2023 H1 (v0.5.0–v0.5.8):** `members` feature buildout — prompts and
  prompt answers, favorites, documents, event categories, external
  accounts — plus a research-domain refactor.
- **2023 H2 (v0.5.9–v0.5.15):** Steady patch releases stabilizing the
  prompts/members surface; `v0.5.15` (2023-08-25) is the last tag before
  the gap to `v0.6.0`.
