Any auto-saved changes not updated within 30 days will be lost
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3554205. --> Reported by: [mayur-sose](https://www.drupal.org/user/3832406) Related to !442 >>> <h3 id="overview">Overview</h3> <p> Unpublished changes created more than 30 days ago do not appear in the Canvas UI. Newly created changes display correctly, but older unpublished changes (created prior<br> to 30 days ago) are missing from the interface. This affects all types of unpublished changes including: </p> <ul> <li>Page edits (both draft and published pages)</li> <li>Homepage configuration changes</li> </ul> <p> <strong>Expected behavior:</strong><br><br> All unpublished changes, regardless of when they were created, should remain accessible in the Canvas UI until they are explicitly published or discarded. </p> <h3>Manual Testing Instructions</h3> <p> To test on 1.x to verify changes will expire after 30 days: </p> <ol> <li>Install the update_test module: <code>./vendor/bin/drush pm:install update_test</code> (allows faking time; if module not found, set<br> <code>$settings['extension_discovery_scan_tests'] = TRUE;</code> in settings.php)</li> <li>Set the date to January 30, 2026: <code>drush state:set update_test.mock_date 2026-1-30</code></li> <li>Create an article to confirm the creation date matches January 30, 2026</li> <li>In Canvas, create a page called "published page", publish it, then make a change. Create another page called "draft page" but do not publish it</li> <li>Set "draft page" as the homepage, but do not publish this change</li> <li>Confirm in "Review X Changes" you see both pages and the homepage change is present</li> <li>Advance the date to March 1, 2026: <code>drush state:set update_test.mock_date 2026-3-1</code></li> <li>Reload the page</li> <li>The navigation and "Review X Changes" may still show the staged changes</li> <li>Editing a page should not show the changes</li> <li>Clear the cache: <code>drush cr</code> (note: you may encounter an "access denied" error if the session has expired)</li> <li>The navigation and "Review X Changes" should no longer show the changes</li> </ol> <p>When testing with the merge request, the changes should not expire.</p> <p>To test the upgrade path before the "Advance the date" step switch to the MR branch and run <code>drush updb</code> </p> <h3 id="proposed-resolution">Proposed Resolution</h3> <p> Switch from the expirable tempstore (which automatically expires data after 30 days) to a regular key-value store for storing unpublished changes. This ensures changes<br> persist indefinitely until explicitly published or discarded. </p> <p> The AutoSaveManager class now uses key-value store instead of tempstore for data persistence. </p> <h3 id="user-interface-changes">User Interface Changes</h3> <p> None. The UI remains the same, but unpublished changes will no longer disappear after 30 days. </p> <h3 id="data-model-changes">Data Model Changes</h3> <p> None. The data structure remains the same. </p> <h3 id="migration-path">Migration Path</h3> <p> An update hook (<code>canvas_update_10001()</code>) automatically migrates existing unpublished changes from tempstore to key-value store. </p>
issue