# Changelog — JTL Shop - AI Connector

Alle nennenswerten Änderungen an **JTL Shop - AI Connector** (`tnt_mcp`), neueste Version zuerst.
Die Versionsnummer entspricht der `<Version>` in `info.xml` und dem Git-Tag `vX.Y.Z`.

## 1.3.0 — 2026-08-06

- test the connection without a model, so the model list is reachable

## 1.2.0 — 2026-08-06

- scroll-cap every list table + say plainly that AI is optional

## 1.0.0 — 2026-08-06

- Wartungsrelease.

## 0.27.2 — 2026-08-06

- first save without a model, capped log tables, merchant-facing docs

## 0.27.1 — 2026-08-06

- round-3 UI review — audit-log tone, empty args, pre-auth 401, chevron

## 0.27.0 — 2026-08-06

- Answer "what do I do next?" on one Start tab (design step 11, ledger U1 + U2, 0.27.0)

## 0.26.0 — 2026-08-05

- Wartungsrelease.

## 0.25.0 — 2026-08-05

- Ship the round-2 UI findings (ledger U25–U33, 0.25.0)
- Stop calling expired OAuth tokens active (ledger U24, 0.24.1)
- Tell the assistant how to set up AI, and say who owns it now (design steps 14-15, 0.24.0)
- UI ledger: round-2 review after the Tailwind pass (U24–U33, proposed)
- Convert the five older tabs to Tailwind (ledger U9–U20, 0.23.0)
- Phase B step 10: begin_ai_key_entry — the secret hand-off
- Phase B step 9: get_ai_status v2 — one read tool, one next step
- Phase B step 8: declare the AI-write switch in info.xml
- Add the KI tab: one screen that connects this shop to an LLM (0.21.0, phase B steps 6-7)
- Give the admin UI its own Tailwind build (ruling 20)

## 0.19.0 — 2026-08-05

- Consent screen: permissions as hoverable badges, in the merchant's words

## 0.18.0 — 2026-08-05

- Drop the read-only database user; make the read gate always-on

## 0.17.0 — 2026-08-05

- Store the OAuth keys in the database, not in the document root
- level 6 -> 8, matching tnt_workflows
- Fix four defects surfaced by phpstan level 7
- cannotUndo may be a de/en map, like title
- get_guide: discover the topic enum from catalog/guides instead of a const
- analyse adminmenu/ too
- Add/standardise Makefile help target

## 0.6.0 — 2026-07-27

- make all exposed settings writable (writable: "*"); hard-excludes still protect payment/pass/module settings

## 0.5.3 — 2026-07-27

- Tokens & Audit: make static tokens, OAuth clients & access tokens deletable

## 0.5.2 — 2026-07-27

- wrap Integrations tab <style> CSS in {literal} — Smarty parsed the CSS braces as delimiters (template syntax error)

## 0.5.1 — 2026-07-27

- correct shipping_methods list columns (cAnbieter/cAktiv don't exist) + e2e live-DB list-read guard

## 0.5.0 — 2026-07-27

- Integrations tab with per-provider connect guides and live status dots
- self-contained button spacing on OAuth consent/login screen
- emit empty tool inputSchema properties as object not array
- return 401 challenge on unauthenticated probe instead of parse error
- read backend admin session from frontend authorize route
- Consent login-prompt: box the return-URL for even margins; drop meaningless DB-reachable status row
- Settings registry: allowlist + live teinstellungenconf enumeration (replaces per-setting settings.yaml)
- OAuth URLs honor public origin behind a trusted reverse proxy (X-Forwarded-Host / TNT_MCP_PUBLIC_BASE override)
- Add release tooling: make release/zip + .gitattributes export-ignore (customer zip excludes tests, dev config, README/design docs; ships runtime vendor)
- Initial import: tnt_mcp — MCP server for JTL-Shop (v0.5.0)