1
# Changelog
2
3
## 1.0.35
4
- Fixed redaction marker colors being overridden by higher-specificity dark/auto theme CSS. Saved backend blackout and edge colors now win reliably.
5
- Added an explicit localized tooltip for every redaction marker on mouse hover and keyboard focus, while retaining native title and screen-reader labels.
6
- Tooltip text follows the active WordPress locale (German/English translations included).
7
8
## 1.0.34
9
- Added independent repository-browser hover background/text, active background/marker, and keyboard focus colors.
10
- Removed the remaining blue hover dependency from repository-browser controls.
11
- Added a visible redaction legend in the repository browser so partially redacted files are easier to find.
12
- Kept redaction-marker fill and edge colors configurable in Settings.
13
- Redaction markers retain localized mouseover/focus explanations.
14
15
## 1.0.33
16
- Added dedicated configurable colors for navigation/tab hover and underline states so Overview / Code / Architecture / Tech stack no longer depend on hardcoded blue hover values.
17
- Redaction marker (blackout / “marker pen”) fill and edge colors remain configurable in the backend and are now labelled more clearly.
18
- Partially redacted files now show explicit tree badges such as “3 redactions” / “3 Schwärzungen” instead of only a number.
19
- Redaction markers now provide a localized mouseover hint explaining that the area was redacted to protect sensitive or proprietary implementation details.
20
- Redaction markers are keyboard-focusable for the same explanatory accessibility text.
21
22
## 1.0.32
23
- Added independent, configurable Skill / progress bar fill and track colors. Progress bars no longer inherit the blue link/accent color.
24
- New default progress fill is green (`#3fb950`) with a dark track (`#21262d`).
25
- Fixed the WordPress readme Stable tag mismatch (1.0.31 package still reported 1.0.26).
26
- Extended uninstall cleanup to remove repository-overview and showcase-color options when explicit full data deletion is enabled.
27
- Preserved all 1.0.31 frontend color centralization and Elementor/theme isolation behavior.
28
29
## 1.0.26
30
- Refresh GitHub repository metadata before every real GitHub snapshot import/sync.
31
- GitHub About/description changes now update the local repository description and therefore the public repository overview after the next GitHub sync.
32
- Refresh default branch, repository URL and private/public metadata together with the description.
33
- Applying approved protection rules to an existing safe draft remains local and does not contact GitHub.
34
35
# 1.0.25
36
- Protected Structure: fully protected files remain visible in the public repository tree with a lock badge, while their contents are never exposed.
37
- Derived folders remain visible and show protected/partially protected indicators.
38
- Clicking a protected file now renders a localized protection notice instead of source content.
39
- Public REST responses expose protection state but return an empty content field for protected files.
40
- Repository overview heading and description can be customized separately for German and English; the /repositories/ slug stays unchanged.
41
- Public showcase statistics/profile now count protected structural entries so visitors can understand the project shape without receiving hidden source.
42
43
# 1.0.24
44
45
- Improved dark-theme contrast on the public repository index: headings, card titles, descriptions, metadata and CTA links now keep readable colors even when the active WordPress theme overrides link/heading states.
46
- Added explicit hover, active, visited and keyboard-focus colors for repository links.
47
- Made rewrite upgrades reliable: plugin updates now defer rewrite flushing until after the current index/detail routes are registered on `init`.
48
- Activation now registers both `/repositories/` and `/repositories/{slug}/` before flushing.
49
- Showcase slug changes now defer the flush to the next request so WordPress cannot persist stale routes from the previous slug.
50
51
# 1.0.23
52
53
- Added a guided four-step repository workflow with a clear next action.
54
- Added "Apply protection now" to rebuild a protected review draft from an existing safe snapshot without contacting GitHub.
55
- Clarified that GitHub sync is only needed when upstream source changes.
56
- Added a standalone public repository overview at the configured `/repositories/` slug.
57
58
## 1.0.22
59
60
- Fixed the published `get_repository_tree` MCP input schema to expose optional `cursor`, `prefix`, and `limit` parameters while keeping only `repository_id` required.
61
- Added a live `connected-ai/tool-schema` diagnostic endpoint and admin checks showing the exact parameter names exported by the server.
62
- Kept backend pagination behavior (`next_cursor`, `has_more`) unchanged.
63
64
# YougitAI Secure Showcase changelog
65
66
## 1.0.21
67
- Added cache-independent `get_repository_tree_paginated` MCP tool with optional `cursor`, `prefix`, and `limit` inputs and explicit repository-wide pagination guidance.
68
- Added protection proposal filters by portfolio decision and proposal source.
69
- Bulk selection and “Approve all visible” now operate only on currently visible filtered proposals.
70
71
## 1.0.20
72
- Added bulk approval for connected-AI protection proposals with per-row checkboxes, Select all, Approve selected, and Approve all visible.
73
- Marked repository-scoped MCP read tools as closed-world/read-only to avoid overly conservative client safety classification.
74
- Added bounded `get_file_excerpt_for_review` as a safer source-review fallback (max 200 lines, secrets masked).
75
- Kept full source review scoped, read-only, audited, and subject to the existing source-byte budget.
76
77
## 1.0.19
78
- Added a cache-busting MCP tool name `get_repository_tree_v2` with explicit `repository_id`, `cursor`, `prefix`, and optional `limit` arguments in `tools/list`.
79
- Kept the existing tree tools for backward compatibility while mapping v2 to the same paginated handler.
80
- This avoids clients reusing a stale schema for the original `get_repository_tree` tool name.
81
82
## 1.0.18
83
- Fixed the exposed MCP `get_repository_tree` input schema so `cursor`, `prefix`, and `limit` are first-class arguments in `tools/list`.
84
- `cursor` and `prefix` are now required in the exposed schema (use `0` and an empty string on the first call) to prevent clients from collapsing the signature to `repository_id` only.
85
- Updated `get_repository_tree_page` the same way for compatibility.
86
- MCP initialize now advertises `tools.listChanged=true` so clients know tool definitions can change and should be rescanned.
87
- No Connected AI publish or restore capability was added.
88
89
## 1.0.17
90
- Added explicit MCP tool `get_repository_tree_page` with first-class `cursor`, `prefix`, and `limit` inputs.
91
- Pagination metadata is now returned at the top level (`items`, `next_cursor`, `has_more`, `total_matching`) so ChatGPT can iterate the complete repository tree reliably.
92
- Kept `get_repository_tree` backward compatible.
93
- No publish or restore capability was added to Connected AI.
94
95
# 1.0.16
96
97
- Fixed MCP `list_repositories` structured output: it now always returns an object with `repositories` and `count`.
98
- Reworked `get_repository_tree` into a paginated, prefix-filterable metadata-only response (default 250, max 500 paths) instead of returning up to 5000 entries at once.
99
- Added path-only risk hints for AI prompts, security logic, private endpoints, business logic, internal schemas, and core IP without reading source.
100
- Added `get_portfolio_policy` so connected AI clients use the same SHOW / ABSTRACT / REDACT / HIDE decision model.
101
- Added MCP output schemas and standard read/write annotations to make tool intent clearer to ChatGPT and other MCP clients.
102
- Redaction proposals can now carry portfolio classification and decision metadata while remaining disabled until human approval.
103
- No connected-AI publish or restore tool is exposed.
104
105
# 1.0.15
106
107
- Fixed OAuth authorization-server discovery returning 404 on some WordPress/front-end routing stacks by serving /.well-known metadata during parse_request, independent of rewrite rules/theme 404 handling.
108
- Added /.well-known/openid-configuration as a compatibility discovery alias.
109
- Added explicit HTTP 200 and CORS headers to public OAuth discovery metadata.
110
111
# Changelog
112
113
## 1.0.34
114
- Added independent repository-browser hover background/text, active background/marker, and keyboard focus colors.
115
- Removed the remaining blue hover dependency from repository-browser controls.
116
- Added a visible redaction legend in the repository browser so partially redacted files are easier to find.
117
- Kept redaction-marker fill and edge colors configurable in Settings.
118
- Redaction markers retain localized mouseover/focus explanations.
119
120
## 1.0.14
121
- Replaced the flat public file list with a collapsible repository tree.
122
- Added visible marker-style blackout overlays for protected passages in public code.
123
- Added per-file redaction counts and protected-line summaries without persisting original secret values.
124
- Added a redaction manifest that stores only location/length/replacement metadata for new snapshots.
125
- Added legacy placeholder detection so existing redacted snapshots still show visible protection markers.
126
- Fixed dark-theme link, hover, active, visited, and keyboard-focus contrast.
127
128
## 1.0.13
129
- Forces the MCP OAuth `WWW-Authenticate` challenge at the final WordPress REST serving layer so reverse-proxy or REST response handling cannot silently drop the plugin-level challenge.
130
- Adds `Vary: Authorization` and no-store headers to protected MCP responses.
131
- Adds an admin OAuth diagnostics panel that checks the public MCP 401 response, `WWW-Authenticate`, Protected Resource Metadata, and Authorization Server Metadata from the site itself.
132
133
## 1.0.12
134
- Added MCP 2026 Client ID Metadata Document (CIMD) support for ChatGPT OAuth clients.
135
- Advertises `client_id_metadata_document_supported` and RFC 9207 issuer responses.
136
- Uses a standards-compliant OAuth `401 invalid_token` response at the MCP HTTP boundary.
137
- Keeps Dynamic Client Registration as a backwards-compatible fallback.
138
139
## 1.0.11
140
- Fixed ChatGPT OAuth discovery by allowing unauthenticated GET requests to the MCP endpoint to return a proper 401 OAuth challenge instead of a WordPress REST 404.
141
- Added `scope` guidance to the `WWW-Authenticate` challenge.
142
- Authenticated GET requests now return MCP-compliant `405 Method Not Allowed` with `Allow: POST` because this server does not expose an SSE stream.
143
144
## 1.0.10
145
- Fixed ChatGPT OAuth discovery for path-based MCP endpoints by serving RFC 9728 protected-resource metadata at both the root and resource-specific well-known URI and advertising the resource-specific URL in 401 challenges.
146
147
# Changelog
148
149
## 1.0.34
150
- Added independent repository-browser hover background/text, active background/marker, and keyboard focus colors.
151
- Removed the remaining blue hover dependency from repository-browser controls.
152
- Added a visible redaction legend in the repository browser so partially redacted files are easier to find.
153
- Kept redaction-marker fill and edge colors configurable in Settings.
154
- Redaction markers retain localized mouseover/focus explanations.
155
156
## 1.0.12
157
- Added MCP 2026 Client ID Metadata Document (CIMD) support for ChatGPT OAuth clients.
158
- Advertises `client_id_metadata_document_supported` and RFC 9207 issuer responses.
159
- Uses a standards-compliant OAuth `401 invalid_token` response at the MCP HTTP boundary.
160
- Keeps Dynamic Client Registration as a backwards-compatible fallback.
161
162
## 1.0.9
163
164
- Replaced the primary ChatGPT DIRECT bearer-token setup with native OAuth 2.1-style authorization for custom MCP apps.
165
- Added Protected Resource Metadata and Authorization Server Metadata discovery endpoints.
166
- Added dynamic OAuth client registration for public PKCE clients, Authorization Code + PKCE S256, short-lived access tokens, rotating refresh tokens, and `offline_access` discovery.
167
- Added a WordPress administrator consent screen that lets the site owner choose exactly which repositories ChatGPT may review.
168
- Added OAuth connection revocation and audit logging while preserving the hard rule that DIRECT exposes no publish or restore tool.
169
- Kept temporary bearer tokens only as an advanced fallback for MCP clients that explicitly support them.
170
- Reworked the ChatGPT setup instructions so the normal flow is now: paste MCP URL → choose OAuth → approve repositories in WordPress.
171
172
## 1.0.8
173
174
- Fixed the combined “Review and publish” action so it can approve a pending review, run final verification, and activate the verified public snapshot in one workflow.
175
- Added repository publication/access states: draft/offline, public, password protected, and private/admin-only.
176
- Added reversible publication state changes without deleting the verified snapshot.
177
- Added password-protected frontend access with invalidation when the password changes.
178
179
## 1.0.7
180
181
- Rebuilt ChatGPT (DIRECT) setup as a three-step guided wizard.
182
- Added clear repository access selection and an advanced all-repositories warning.
183
- Added one-click copy controls for MCP endpoint, temporary token, and starter prompt.
184
- Added explicit guidance that the bearer token belongs in the ChatGPT custom-app authentication field and must never be pasted into a conversation.
185
- Added a human-readable permission summary and clearer connection management.
186
- Improved responsive layout and accessibility of the direct-connection setup.
187
188
## 1.0.6
189
- Reworked snapshot review UX with protection summary, grouped findings, clearer status language, and visible explanations.
190
- Added a prominent AI protection panel with provider-aware actions and a clear ChatGPT DIRECT path.
191
- Added bulk actions for finding groups and multi-file hiding on the next import.
192
- Clarified that scanner findings marked as protected are already redacted in the stored draft.
193
- Improved file risk labels and manual-redaction discoverability.
194
195
## 1.0.5
196
197
- Added per-repository **Original source** display mode for repositories that may be shown without redaction.
198
- Original mode is explicit and requires a warning acknowledgement; it never changes the currently published snapshot automatically.
199
- Secure mode remains the default and recommended mode; existing protection rules are retained when switching modes.
200
- Clarified sync behavior: every sync creates a draft and never overwrites the live showcase automatically.
201
- Reworked repository admin UX with visible Code & Redaction navigation, live-vs-draft status cards, clearer manual protection actions, and improved button contrast/disabled states.
202
203
## 1.0.4
204
- Reworked repository admin UX with clear section navigation and live-vs-draft workflow status.
205
- Added prominent manual Code & Redaction entry point and one-click whole-file protection.
206
- Clarified that sync always creates a draft, reapplies protection rules, and never overwrites the live showcase automatically.
207
- Fixed admin button contrast across primary, secondary, hover, focus, and disabled states.
208
- Improved empty states and file selection visibility for manual redaction.
209
210
## 1.0.3
211
- Added an OAuth-powered GitHub repository picker with multi-select import for accessible public and private repositories.
212
- Added quick actions to select all repositories, private repositories only, or clear the selection.
213
- Already imported repositories are detected and disabled in the picker.
214
- GitHub OAuth now returns directly to the repository picker after successful authorization.
215
- Manual repository URL import is retained as a collapsed fallback only.
216
- Added a refresh action for the connected GitHub repository list and complete DE/EN localization for the new workflow.
217
218
## 1.0.2
219
220
- Added a complete in-plugin GitHub OAuth setup guide directly beside the OAuth credentials.
221
- Shows the current site's Homepage URL and exact Authorization callback URL as selectable fields.
222
- Added explicit guidance that private GitHub repositories remain private and only reviewed public snapshots are exposed.
223
- Added direct navigation to GitHub Developer Settings and step-by-step DE/EN instructions.
224
225
## 1.0.1
226
- Fix standalone showcase rewrite registration during activation so `/repositories/{slug}/` works immediately after plugin activation.
227
- Live-verified Elementor and Elementor Pro widget registration, DIRECT authentication gate, database schema creation, and scheduled cleanup on WordPress 6.7 / PHP 8.1.
228
229
## 1.0.0
230
- Release hardening for production use.
231
- Added per-connection rate limiting and no-store security headers for ChatGPT (DIRECT) MCP responses.
232
- Added daily cleanup of expired/revoked DIRECT connection records.
233
- Corrected standalone showcase routing to return real 404 responses for unavailable projects.
234
- Final compatibility baseline validated against WordPress 7.1 / PHP 8.4 environments with Elementor and Elementor Pro present, while keeping Elementor optional.
235
- Completed release lint, translation, package-integrity, security-boundary and upgrade checks.
236
237
## 0.9.0
238
239
- Added GitHub OAuth App connection flow with state validation, encrypted OAuth client secret, encrypted access token storage, and exact callback URL guidance.
240
- Added recursive large-repository tree fallback when GitHub truncates recursive tree responses, with a configurable hard node limit.
241
- Added hourly and daily secure synchronization modes in addition to manual and signed-webhook sync; scheduled syncs only create draft snapshots.
242
- Added a professional portfolio showcase with Overview, README preview, Tech Stack, language distribution, high-level architecture modules, and secure code browsing derived only from the verified public snapshot.
243
- Added a multi-project portfolio grid shortcode and native Elementor grid widget; Elementor Pro remains optional.
244
- Added a system-status panel covering PHP, HTTPS, encrypted secret storage, background queue, Elementor availability, and active AI mode.
245
- Added explicit data-retention controls and opt-in secure plugin-data deletion on uninstall.
246
- Expanded German and English localization for all new release surfaces.
247
- Preserved the hard publication boundary: original GitHub source is never served publicly, automated sync never publishes, and DIRECT AI exposes no publish or restore tool.
248
249
## 0.7.0
250
251
- Hardened ChatGPT (DIRECT) with per-connection repository allowlists for least-privilege access.
252
- Added an explicit all-repositories opt-in; new connections otherwise require at least one selected repository.
253
- Added connected-AI source-review budgets to limit data exposure if a temporary token is compromised.
254
- Added connection diagnostics exposing scopes, repository restrictions, expiry, and source-budget usage without exposing secrets.
255
- Added review-context metadata so connected AI can understand protection profiles, recent snapshots, and existing rules before requesting source.
256
- Added batch source review for up to ten paths and batch redaction proposals for up to fifty suggestions per call.
257
- Added a tool for reading connected-AI proposal approval state.
258
- Preserved the hard publication boundary: DIRECT still has no publish or restore capability and all AI-created redactions remain disabled until human approval.
259
- Expanded German and English localization for all new DIRECT controls and security messages.
260
261
## 0.6.1
262
- Added `ChatGPT (DIRECT)` as a first-class AI mode alongside OpenAI, Anthropic Claude, and Google Gemini API modes.
263
- Added contextual setup guidance for connecting a ChatGPT custom MCP app directly to the plugin without storing a model API key in WordPress.
264
- Direct mode now shows the MCP endpoint, temporary connection-token workflow, permissions, and explicit no-publish security boundary in the AI settings area.
265
- Reworked the settings markup to avoid nested forms between general settings and connection-token management.
266
- Direct mode disables server-side external-AI processing; connected AI actions continue through the scoped MCP connection layer only.
267
268
## 0.6.0
269
- Added a first-party Connected AI / MCP-style JSON-RPC endpoint with no WPVibe dependency.
270
- Added short-lived, revocable bearer connection tokens stored as SHA-256 hashes only.
271
- Added scoped connected-AI permissions for repository metadata, just-in-time source review, findings, redaction proposals, and draft snapshot creation.
272
- Deliberately exposes no publish tool or publish permission to connected AI clients.
273
- Added just-in-time GitHub source retrieval for review; source is not persisted by the connection layer.
274
- Added pre-egress secret masking and hard blocks for sensitive credential paths before source can be returned to a connected AI client.
275
- Added audit events for connected-AI source reads, redaction proposals, approvals, and draft snapshot creation.
276
- Connected-AI redaction rules are stored disabled and require explicit WordPress administrator approval before they can affect future snapshots.
277
- Added connection management UI with one-time token display, expiry, revocation, status, and MCP endpoint discovery.
278
- Added rule-source/status UI for reviewing Connected AI proposals.
279
- Added dedicated notes storage for AI proposal rationale so rationale can never become public replacement text.
280
281
## 0.5.0
282
283
- Added provider-neutral AI review support for ChatGPT/OpenAI, Claude/Anthropic, and Gemini/Google.
284
- Added encrypted, independent API-key storage and model settings for all three providers.
285
- Added a shared normalized security-review schema so downstream findings and fail-closed publication logic stay provider-independent.
286
- Added Gemini structured JSON output integration and Claude Messages API integration with strict JSON validation.
287
- Added active-provider selection without deleting credentials for inactive providers.
288
- Kept external AI processing opt-in and source/public separation unchanged.
289
- Expanded German and English localization for all multi-provider AI settings.
290
291
## 0.4.0
292
293
- Added symbol-based protection rules for named classes, functions, and methods.
294
- Symbol rules survive line-number movement and fail closed when a symbol is missing, ambiguous, or its signature changes unexpectedly.
295
- Added secure restore/rollback to previously published snapshots only.
296
- Restores rerun the complete final leak scan and require the stored verification hash to match before activation.
297
- Made snapshot verification hashes deterministic by sorting files before hashing.
298
- Added repository audit-history UI for security-relevant events.
299
- Added translated admin controls for symbol protection, snapshot restoration, and audit history.
300
- Preserved strict source/public separation and draft-only sync behavior.
301
302
## 0.3.0
303
304
- Added encrypted GitHub fine-grained token storage for private repositories.
305
- Added encrypted-at-rest storage and automatic migration for existing OpenAI API keys.
306
- Added signed GitHub webhook endpoint with SHA-256 HMAC verification.
307
- Added asynchronous secure sync queue using Action Scheduler when available and WP-Cron fallback otherwise.
308
- Webhook syncs create draft snapshots only and never auto-publish.
309
- Added per-repository webhook secret generation/rotation and manual/webhook sync modes.
310
- Added interactive visual line-range redaction editor in wp-admin.
311
- Added fingerprinted line protection rules that fail closed when upstream code changes.
312
- Added critical stale-rule findings when line protection can no longer be applied safely.
313
- Expanded German and English translation catalogs for all new UI and security states.
314
- Preserved standalone WordPress and Elementor/Elementor Pro compatibility through the shared sanitized renderer.
315
316
## 0.2.0
317
318
- Added strict review workflow between import and publish.
319
- Added security finding storage with severity, source, recommendation and review state.
320
- Added final deterministic leak scan and verification hash before publication.
321
- Added manual protection rules for path hiding, exact-string redaction and regex redaction.
322
- Added audit logging for repository, snapshot, finding, rule and publish events.
323
- Added optional external AI review provider architecture; external AI remains disabled by default.
324
- Added OpenAI Responses API provider with structured security-review output and prompt-injection isolation.
325
- Expanded secret detection for private keys, GitHub, AWS, Google, Stripe, Slack, JWT, DB URLs and bearer credentials.
326
- Added protection profiles and repository review screens.
327
- Added plugin upgrade migrations for the expanded schema.
328
- Preserved the hard boundary: original GitHub source is processed in memory only; only sanitized snapshot content is persisted.
329
330
## 0.1.0
331
332
- Initial secure showcase foundation.
333
- Standalone WordPress rendering, shortcode and Elementor widget.
334
- Public GitHub repository import.
335
- Separate public snapshot storage.
336
- Basic secret scanner and built-in path blocking.
337
- German and English localization foundation.
338