What's Changed
- fix(client): send Idempotency-Key on mutations — create_credit_note failed 100% by @berthelius in #96
- fix(openapi): one source, N derived — kill the hand-copied specs that lied by @berthelius in #97
- test(openai): freeze reviewed MCP descriptor by @berthelius in #101
- fix(openai): align resubmission identity and commerce by @berthelius in #105
- fix(openai): remove ambiguous projection inputs by @berthelius in #106
- fix(openai): harden final review surface by @berthelius in #107
- fix(openai): align OAuth consent with reviewed scope by @berthelius in #108
- fix(openai): use redirect-safe OAuth sign-in by @berthelius in #109
- revert: keep proven OAuth popup flow by @berthelius in #110
- fix(openai): balance dark and composer icons by @berthelius in #111
- fix(openai): use transparent composer icons by @berthelius in #112
- fix(openai): align submission tests and listing truth by @berthelius in #113
- fix(sync): retry origin fetches and separate outage from drift by @berthelius in #114
- fix(client): tag every request as MCP-originated so adoption is measurable by @berthelius in #115
- chore(release): 1.16.6 — MCP source attribution + lockfile refresh by @berthelius in #119
- fix(fiscal): alias frihet_modelo_* to the drifted get_modelo_* tools (#50) by @berthelius in #117
- fix: refresh MCP dependencies and require Node 20 by @berthelius in #103
- ci: analytics tripwire — no unregistered emitters in a contract-less repo by @berthelius in #120
- docs(readme): 157 tools (+5 fiscal aliases) — issue #50 resolved by @berthelius in #121
- docs: de-drift CLAUDE.md (version + tool inventory point at sources) by @berthelius in #132
- fix(mcp): unified document fetch + bounded streams (Addresses C16 of berthelius/Frihet-ERP#1393) by @berthelius in #129
- fix(permissions): align MCP reporting contracts by @berthelius in #133
- fix(mcp): preserve safe 403 remediation detail by @berthelius in #134
- fix(openapi): sync published contract artifacts by @berthelius in #135
- fix(package): correct Zod peer floor by @berthelius in #137
- fix(team): align MCP member contract with backend roles by @berthelius in #128
- fix(mcp): align payroll, overtime, and period read contracts by @berthelius in #140
- fix(mcp): close reviewed contract drift (#139) by @berthelius in #141
- fix(security): contain MCP telemetry and API trust boundaries by @berthelius in #142
- fix(security): close MCP credential-boundary residuals by @berthelius in #143
- fix(mcp): publish generated capability truth by @berthelius in #144
- fix(discovery): canonical /es/ legal URLs + drop the unenforced rate claim by @berthelius in #146
- fix(mcp): descriptions that match the code + confirm coverage by risk by @berthelius in #126
- fix(paginated): strict outputSchema contract — no undeclared enrichment (ERP #1580) by @berthelius in #147
- feat(canary): MCP SDK v1.x compatibility harness & v2 golden baseline by @berthelius in #148
- fix(tools): expose paidDate on create_expense with strict calendar validation (#1062) by @berthelius in #149
- test(conformance): official external MCP conformance baseline for the v1 server (#1578 Phase 0) by @berthelius in #150
- fix(conformance): extend R8 to every NOT_APPLICABLE row, and correct four claims in the Phase 0 report by @berthelius in #151
- fix(conformance): compare the result, not the commit sha — the Phase 0 gate has never been green by @berthelius in #153
- feat(onboarding): agent-native onboarding — initialize.instructions, generated descriptor, verified install paths by @berthelius in #152
- ci(release): detect published-artifact drift, and pin the anchor it rests on by @berthelius in #155
- feat: finalize official ChatGPT connector resubmission by @berthelius in #157
- chore(release): 1.17.0 — agent onboarding, published-artifact drift, conformance provenance by @berthelius in #156
Full Changelog: v1.16.4...v1.17.0