{"id":380597,"date":"2026-10-15T07:20:52","date_gmt":"2026-10-15T07:20:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lineweb-change-desk\/"},"modified":"2026-10-15T07:20:27","modified_gmt":"2026-10-15T07:20:27","slug":"lineweb-change-desk","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/lineweb-change-desk\/","author":23285232,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.3","requires":"7.0","requires_php":"8.3","requires_plugins":null,"header_name":"Lineweb Change Desk","header_author":"Andrew Matia \/ Lineweb","header_description":"Review, selectively apply and safely restore business-information text changes in Gutenberg posts and pages.","assets_banners_color":"f8f8f4","last_updated":"2026-10-15 07:20:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/lineweb.gr\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"linewebdigital","date":"2026-10-15 07:20:27","revision":3747769}},"upgrade_notice":{"0.1.0":"<p>Initial candidate. Verify provider behavior and use staging before production content changes.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3747769,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3747769,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3747769,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3747769,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3747769,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3747769,"resolution":"2","location":"assets","locale":"","width":1240,"height":1084},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3747769,"resolution":"3","location":"assets","locale":"","width":353,"height":1635}},"screenshots":{"1":"Desktop workspace: exact changes, selected Gutenberg content and the centered official LineWeb logo.","2":"Before\/after proposal review with explicit approval and final confirmation.","3":"Responsive mobile workspace using synthetic content."}},"plugin_section":[],"plugin_tags":[2353,11143,4917,8485,148076],"plugin_category":[],"plugin_contributors":[275980],"plugin_business_model":[],"class_list":["post-380597","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-bulk-edit","plugin_tags-content-management","plugin_tags-editorial","plugin_tags-gutenberg","plugin_contributors-linewebdigital","plugin_committers-linewebdigital"],"banners":{"banner":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/banner-772x250.png?rev=3747769","banner_2x":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/banner-1544x500.png?rev=3747769","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/icon-128x128.png?rev=3747769","icon_2x":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/icon-256x256.png?rev=3747769","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/screenshot-1.png?rev=3747769","caption":"Desktop workspace: exact changes, selected Gutenberg content and the centered official LineWeb logo."},{"src":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/screenshot-2.png?rev=3747769","caption":"Before\/after proposal review with explicit approval and final confirmation."},{"src":"https:\/\/ps.w.org\/lineweb-change-desk\/assets\/screenshot-3.png?rev=3747769","caption":"Responsive mobile workspace using synthetic content."}],"raw_content":"<!--section=description-->\n<p>Change opening hours, service wording or policy references with a human-reviewed workflow. Preview selected content, inspect each before\/after proposal, approve only what you want, then confirm the final changes. Nothing is published autonomously.<\/p>\n\n<ul>\n<li>Exact, case-sensitive text changes work without AI or external requests.<\/li>\n<li>Optional AI uses a named compatible provider configured through the WordPress AI Client. Provider costs and retention terms apply.<\/li>\n<li>Published, unprotected posts and pages only. Paragraph, heading, list-item and button text; normal groups\/columns\/lists\/buttons are traversed.<\/li>\n<li>Link destinations and Gutenberg markup remain unchanged. Custom blocks, HTML, synced patterns, builders and split-node phrases need manual review.<\/li>\n<li>Source hashes, current permissions and other users' edit locks are rechecked before applying or restoring.<\/li>\n<li>No telemetry, Lineweb account, WooCommerce dependency or storefront assets.<\/li>\n<\/ul>\n\n<p>This 0.1 source is a release candidate. It is not a complete-site scanner, autonomous agent or guarantee of AI factual accuracy. Products, prices, orders, titles, metadata and templates are outside its scope.<\/p>\n\n<p>Limit: ten sources, 60,000 supported characters, 1,000 fields and 1 MB raw content per source. AI processes at most five chunks of eight fields\/12,000 characters. Oversized and remaining fields are unscanned; incomplete or invalid output fails. Each source is applied once per job; approve all its desired proposals before applying.<\/p>\n\n<h4>External services and costs<\/h4>\n\n<p>Exact mode contacts no service. AI mode sends only the explicitly confirmed excerpts, opaque field IDs and instruction to the named WordPress-configured provider. There is no hardcoded provider or fallback. Review any personal data in the preview and the privacy\/terms links supplied by your chosen provider's Connector before sending. AI data is not sent to Lineweb. Credentials stay with WordPress\/the provider plugin.<\/p>\n\n<p>An AI service account, API credentials and any provider charges are needed only if you choose AI mode. WordPress supplies the AI Client, not a free model subscription. The provider plugin manages endpoint\/model selection; Change Desk does not contact all of the services below. Common optional Connectors include:<\/p>\n\n<ul>\n<li>OpenAI API: https:\/\/platform.openai.com\/ (typically api.openai.com). Terms: https:\/\/openai.com\/policies\/services-agreement\/ . Privacy: https:\/\/openai.com\/policies\/privacy-policy\/ .<\/li>\n<li>Anthropic API: https:\/\/www.anthropic.com\/api (typically api.anthropic.com). Terms: https:\/\/www.anthropic.com\/legal\/commercial-terms . Privacy: https:\/\/www.anthropic.com\/legal\/privacy .<\/li>\n<li>Google Gemini API: https:\/\/ai.google.dev\/ (typically generativelanguage.googleapis.com). Terms: https:\/\/ai.google.dev\/gemini-api\/terms . Privacy: https:\/\/policies.google.com\/privacy .<\/li>\n<\/ul>\n\n<p>These links document possible services, not a guarantee that every model supports this plugin's structured-response contract. For another provider or custom endpoint, review that Connector's actual destination, service terms and privacy policy. No external request is made during activation or an exact text change.<\/p>\n\n<p>At most 20 reserved requests per user and 50 per site per UTC day. Failed\/interrupted attempts may consume quota without a billed call. Cancellation stops future requests, not an already sent one. Unknown provider outcomes are not automatically retried; after ten minutes the job needs verification. Human-approved existing proposals remain reviewable once no call is outstanding. Live provider quality has not been established by the synthetic SDK tests.<\/p>\n\n<h4>History, retention and restore<\/h4>\n\n<p>Private jobs contain excerpts, instructions and restore snapshots. They expire after 30 days; bounded cleanup runs through WP-Cron. Deleting a selected source deletes its entire associated job and all its restore history. Deactivation stops cleanup without changing content. Uninstall removes only plugin-owned jobs, quota counters and cron, not source content or revisions.<\/p>\n\n<p>Restore refuses newer edits and cannot undo emails\/webhooks or other third-party hook side effects. InnoDB is required for posts, postmeta and options. Arbitrary transaction changes by another plugin cannot be guaranteed safe. Inspect per-source results and refresh uncertain operations instead of repeating writes blindly.<\/p>\n\n<h4>Source and build<\/h4>\n\n<p>Readable source and build instructions: https:\/\/github.com\/drewmt\/lineweb-change-desk\nAdmin JS\/SCSS: src\/admin\/. Compiled JS\/CSS: build\/admin\/. Run npm ci --legacy-peer-deps, npm run build and npm run plugin-zip:wordpress for the directory ZIP. npm run plugin-zip creates the separate direct-install ZIP with bundled Greek catalogs. Both require only the standalone public repository, not internal Lineweb files. WordPress-provided React\/API libraries are externalized, not shipped as a separate frontend runtime.<\/p>\n\n<p>The directory ZIP uses English fallback and WordPress.org language packs, with no bundled translated catalogs. Greek translation source remains in the public development repository and the separate direct-install ZIP. A Greek directory language pack has not yet been approved; it is not advertised as available from WordPress.org.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Build\/upload the plugin ZIP and activate it.<\/li>\n<li>Open Change Desk in the admin menu as an editor or administrator.<\/li>\n<li>Start with an exact text change on a small selection of published Gutenberg pages.<\/li>\n<li>Optionally configure a compatible structured-text provider in Settings &gt; Connectors for reviewed AI proposals.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20ai%3F\"><h3>Does it work without AI?<\/h3><\/dt>\n<dd><p>Yes. Exact text mode works immediately without a provider, key or charge.<\/p><\/dd>\n<dt id=\"does%20it%20scan%20the%20entire%20site%3F\"><h3>Does it scan the entire site?<\/h3><\/dt>\n<dd><p>No. It only processes selected supported text fields. Unsupported content and split-node phrases require manual review.<\/p><\/dd>\n<dt id=\"does%20it%20overwrite%20later%20human%20changes%3F\"><h3>Does it overwrite later human changes?<\/h3><\/dt>\n<dd><p>No. A changed source or active editing lock produces a conflict rather than a force overwrite.<\/p><\/dd>\n<dt id=\"is%20the%20ai%20result%20automatically%20applied%3F\"><h3>Is the AI result automatically applied?<\/h3><\/dt>\n<dd><p>No. Every proposal is unchecked until you approve it, followed by final confirmation. Check facts yourself.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20pages%20if%20i%20uninstall%3F\"><h3>What happens to my pages if I uninstall?<\/h3><\/dt>\n<dd><p>Their content and revisions remain. Only private Change Desk history, counters and its scheduled cleanup are removed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release candidate: exact text changes, native AI proposals, private jobs, selective application and guarded restore.<\/li>\n<li>English\/native Greek, responsive administration, explicit provider transfer and bounded quotas.<\/li>\n<\/ul>","raw_excerpt":"Review content changes across selected Gutenberg posts and pages. Exact text mode, optional AI proposals, selective apply and guarded restore.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/380597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=380597"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/linewebdigital"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=380597"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=380597"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=380597"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=380597"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=380597"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=380597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}