Skip to content

Releases: Justin-147/safevault

SafeVault v1.1.9

Choose a tag to compare

@Justin-147 Justin-147 released this 14 Jul 13:22
17c131d

SafeVault v1.1.9

SafeVault v1.1.9 adds an explicit, safety-preserving automatic cleanup policy
for local recovery history. The default retention window is now 7 days.

What Changed

  • Recovery Home Storage includes the retention period, automatic-cleanup
    switch, cleanup preview, and latest cleanup result.
  • Automatic cleanup runs at most once per day after the user explicitly enables
    it with ENABLE AUTO CLEANUP.
  • Existing installations that still use the former untouched 90-day default
    show 7 days after upgrading, but deletion remains disabled until confirmed.
  • External scheduled backups continue to keep the latest 7 timestamped archives
    plus the safevault-latest copy.

Safety Boundaries

Automatic cleanup removes only versions that are both older than the configured
window and superseded by a newer recoverable version. It preserves:

  • every file's latest restorable content, including deleted files;
  • all history inside the retention window;
  • important restore points and AI change restore points;
  • content objects that are still referenced by any retained version.

The cleanup engine refuses direct deletion without explicit authorization.
Object-store symlinks and non-regular paths are skipped.

Upgrade Notes

Install SafeVaultSetup.exe over v1.1.8, then open Recovery Home → Storage.
Review the cleanup preview, select Enable daily automatic cleanup, enter
ENABLE AUTO CLEANUP, and save. The first authorized cleanup runs in the
background; later runs occur at most once per day.

Existing protected folders, the latest recoverable version of each file,
external backup archives, storage location, and startup choices remain intact.

SafeVault v1.1.8

Choose a tag to compare

@Justin-147 Justin-147 released this 14 Jul 12:23
44412df

SafeVault v1.1.8

SafeVault v1.1.8 fixes tray menu actions that could start local UI processes
without opening Recovery Home or Recent Deleted in the browser.

What Was Fixed

  • Tray readiness checks now use a lightweight authenticated /health endpoint
    instead of repeatedly loading the full database-backed dashboard.
  • Open SafeVault reuses the active local UI session once it is ready.
  • Recent Deleted opens the authenticated /deleted page without creating
    additional UI processes while a slow dashboard request is still running.
  • On Windows, SafeVault falls back to the system default URL handler when
    Python's browser launcher reports failure.

Root Cause

The tray previously polled the full Recovery Home page every 200 milliseconds
while waiting for a new local UI process. Dashboard rendering performs database
and status work. When those requests exceeded the short readiness timeout, they
continued running in the UI process, while the tray treated the session as
unavailable. Repeated menu clicks could therefore start more UI processes and
never reach the browser-open step.

The new health endpoint verifies the per-session token but performs no vault or
database work, so readiness checks complete quickly without exposing protected
file information.

Upgrade Notes

Windows users should install the new SafeVaultSetup.exe over v1.1.7. Existing
protected folders, recovery history, backup archives, storage location, Startup
choice, and storage budget remain unchanged.

After upgrading, restart SafeVault or restart Windows so the tray process uses
v1.1.8. The installer may close running SafeVault processes during the upgrade.
No protected files, recovery records, or content objects are modified by this
fix.

SafeVault v1.1.7

Choose a tag to compare

@Justin-147 Justin-147 released this 14 Jul 07:09

SafeVault v1.1.7

SafeVault v1.1.7 fixes tray menu actions that could appear to do nothing after
the local UI session token was replaced by a second UI process that failed to
bind port 8765.

What Was Fixed

  • The UI now checks that its requested port is available before it replaces the
    registered session file.
  • A failed UI launch can no longer overwrite the token belonging to an already
    running Recovery Home process.
  • When the registered session is stale and the default port is occupied, the
    tray selects the next available local port, such as 8766.
  • Open SafeVault opens Recovery Home with the active session token.
  • Recent Deleted now opens the /deleted page directly instead of opening the
    home page.

Root Cause

A failed second UI launch wrote a fresh token to ui-session.json before
Uvicorn attempted to bind the requested port. When that bind failed because an
older UI already owned port 8765, the tray retained the unusable token and the
running UI correctly returned HTTP 403 for subsequent menu clicks.

Upgrade Notes

Windows users should install the new SafeVaultSetup.exe over v1.1.6. Existing
protected folders, recovery history, backup archives, storage location, Startup
choice, and storage budget remain unchanged.

After upgrading, restart SafeVault or restart Windows so the tray process uses
the new version. No protected files, recovery records, or content objects are
modified by this fix.

SafeVault v1.1.6

Choose a tag to compare

@Justin-147 Justin-147 released this 13 Jul 16:31

SafeVault v1.1.6

SafeVault v1.1.6 fixes two issues that could make a newly deleted file appear
to be missing from Recovery Home: the Recent Deleted page did not refresh while
open, and it displayed stored UTC timestamps without converting them to the
user's local time zone.

What Was Fixed

  • Recent Deleted now refreshes automatically every five seconds.
  • Deletion timestamps are converted in the browser to the computer's local time
    zone. The page also displays the UTC offset and IANA time-zone name used.
  • A temporary SQLite busy or locked error no longer escapes the delete watcher
    callback and terminates watchdog's observer thread.
  • The watcher retries the database write once. If the database remains busy,
    the scheduled snapshot safely reconciles the deletion later.
  • The live Recent Deleted JSON endpoint uses the same UI access-token protection
    as the rest of Recovery Home.

User Impact

On a computer configured for Beijing time, a deletion stored as
2026-07-13T14:12:36+00:00 is now displayed as 2026-07-13 22:12:36 with a
UTC+08:00 time-zone label. Files deleted after the page opens appear without a
manual refresh.

Upgrade Notes

Windows users should install the new SafeVaultSetup.exe over v1.1.5. Existing
protected folders, recovery history, backup archives, storage location, Startup
choice, and storage budget remain unchanged.

The upgrade does not delete or rewrite existing recovery history or content
objects. Deletion records already stored in UTC are only converted for display.

SafeVault v1.1.5

Choose a tag to compare

@Justin-147 Justin-147 released this 13 Jul 12:46

SafeVault v1.1.5

SafeVault v1.1.5 fixes an Internal Server Error that could appear when deleting
the SafeVault history for a large protected folder from Recovery Home.

What Was Fixed

  • Added the missing SQLite foreign-key indexes used during protected-root
    history removal.
  • History removal now obtains the write lock before deleting related records
    and waits briefly for an active watcher write to finish.
  • A failed deletion transaction is rolled back completely.
  • Database busy and deletion failures are displayed as readable Recovery Home
    messages instead of a raw Internal Server Error page.

Performance

The affected operation repeatedly scanned remaining version and event rows for
every deleted record. On a copy of a real vault containing about 6,700 files and
versions, the same history removal fell from about 82 seconds to about 4 seconds
after the new indexes were applied.

The index migration runs automatically when v1.1.5 first opens an existing
vault. It does not delete or rewrite stored content objects.

Upgrade Notes

Windows users should install the new SafeVaultSetup.exe over v1.1.4. Existing
protected folders, recovery history, backup archives, storage location, Startup
choice, and storage budget remain unchanged.

After upgrading, retry Delete History from Protect Folders. The original folder
and its files are never deleted by this action; only SafeVault's recovery history
for the selected root is removed after confirmation.

SafeVault v1.1.4

Choose a tag to compare

@Justin-147 Justin-147 released this 13 Jul 10:03

SafeVault v1.1.4

SafeVault v1.1.4 makes protected-folder and external-backup cleanup available
directly in Recovery Home. It does not change the object-store format or delete
original files from protected folders.

Highlights

  • Protect Folders now shows Stop Protection and Delete History actions directly
    in each folder row.
  • Delete History presents the number of file records, versions, and recovery
    points that will be removed, followed by a normal confirmation dialog. Users
    no longer need to type a root ID or full path.
  • Backup Management lists SafeVault-created external backup archives, including
    file size and modification time.
  • Individual external backup archives can be deleted from the UI.
  • Automatic backup can be stopped while keeping existing archives.

Safety

  • Stopping protection preserves all existing recovery history.
  • Deleting history removes SafeVault metadata for the selected root but never
    modifies or deletes the original protected folder.
  • Backup deletion is restricted to regular SafeVault archive files directly
    inside the configured external backup directory. Path traversal, symlinks,
    missing files, and unrelated files are rejected.
  • Unreferenced object-store content is not silently removed. It remains subject
    to the separate, explicit cleanup workflow.

Upgrade Notes

Windows users can install the new SafeVaultSetup.exe over an existing version.
Protected folders, recovery history, backup configuration, storage location,
Startup choice, and storage budget remain unchanged.

After upgrading, open Recovery Home and use Protect Folders to stop protection
or preview history removal. Open Backup Management to review external archives.
Every destructive action still requires an explicit confirmation.

Known Limits

  • Smart retention remains planning/dry-run only and does not automatically
    delete referenced version history.
  • Removing a root's history makes that history unavailable for recovery, but
    physical object-store space is reclaimed only by the separate cleanup action.

SafeVault v1.1.3

Choose a tag to compare

@Justin-147 Justin-147 released this 13 Jul 08:12

SafeVault v1.1.3

SafeVault v1.1.3 is a focused Recovery Home reliability and usability release.
It does not change the object-store format or delete existing recovery history.

Highlights

  • Recent Deleted and Recent Modified refresh automatically every five seconds.
  • Newly detected deletions appear with a one-click Restore action without a
    manual page refresh.
  • Dashboard timestamps are displayed in the user's local time.
  • Advanced navigation uses clearer names and hover explanations.
  • Pytest temporary directories are ignored by default to prevent development
    test artifacts from entering recovery history.

Upgrade Notes

Windows users can install the new SafeVaultSetup.exe over an existing version.
The existing data-location pointer, protected folders, recovery history, Startup
choice, and storage budget remain unchanged. Existing history is not cleaned
automatically.

After upgrading, leave Recovery Home open and delete a previously captured test
file from a protected folder. It should appear in Recent Deleted within about
five seconds. SafeVault can restore only content captured before deletion.

Known Limits

  • A file created and deleted before the watcher captures its content may not be
    recoverable.
  • The 10 GB setting is a soft budget; it does not silently delete history.
  • Existing test/build entries already stored by older versions remain until the
    user deliberately removes the corresponding history and prunes unreferenced
    objects.

SafeVault v1.1.2

Choose a tag to compare

@Justin-147 Justin-147 released this 13 Jul 06:45

SafeVault v1.1.2

SafeVault v1.1.2 improves the Windows upgrade experience for users who already
have recovery data on the system drive.

Changes

  • Fresh installations still provide an editable recovery-data location picker
    and recommend D:\SafeVaultData when a D drive is available.
  • When existing SafeVault data is detected, Setup now shows a bilingual
    explanation page instead of a disabled folder field.
  • After upgrading an existing installation, Setup opens Recovery Home directly
    on Storage management.
  • Storage migration continues to stop background protection, check available
    space, copy the SQLite database and object store, verify objects, and switch
    locations atomically. The old copy is removed only after explicit selection
    and confirmation.

Upgrade Notes

Run SafeVaultSetup.exe normally. If Setup reports an existing vault, continue
the upgrade without manually moving .safevault. When Storage management opens,
choose an empty directory on a non-system drive, select removal of the old copy
only if C-drive space must be reclaimed, enter MOVE STORAGE, and wait until the
migration status is complete.

Closing the browser does not cancel the background migration. Do not delete the
old folder yourself while migration is running.

SafeVault v1.1.1 (superseded - use v1.1.2)

Choose a tag to compare

@Justin-147 Justin-147 released this 12 Jul 08:00

SafeVault v1.1.1

SafeVault v1.1.1 is a Windows installer hotfix.

Fixed

  • The storage-location setup page now obtains the user profile through Inno
    Setup's supported {%USERPROFILE} environment-variable constant.
  • v1.1.0 incorrectly used {userprofile}, which caused setup to stop with
    Internal error: Unknown constant "userprofile" before installation.
  • A regression assertion now prevents the unsupported constant from returning.

Upgrade Notes

The v1.1.0 application code and release assets were not installed when this
error appeared. Download and run SafeVaultSetup.exe from v1.1.1. Existing
SafeVault recovery data is not changed by the failed installer attempt.

SafeVault v1.1.0 (superseded - use v1.1.2)

Choose a tag to compare

@Justin-147 Justin-147 released this 11 Jul 19:04

SafeVault v1.1.0

SafeVault v1.1.0 is a storage-safety release for Windows and source installs.
It prevents recovery data from silently defaulting to a large system-drive
vault and gives existing users a verified migration path.

Highlights

  • The Windows installer asks for the recovery-data location and recommends a
    non-system drive when available.
  • First-run onboarding exposes the same location and a 10 GB target.
  • Recovery Home includes a Storage page with actual use, free space, minimum
    latest-version estimates by protected root, and the largest tracked files.
  • Existing data can be moved with copy, SQLite backup, object verification,
    atomic location switching, and optional confirmed source cleanup.
  • New CLI commands: safevault storage status, analyze, budget, and
    migrate.
  • Runtime process logs no longer hold the movable vault directory open on
    Windows.

Important Storage Semantics

The 10 GB value is a soft target. SafeVault never deletes the final restorable
version of a file to force the vault below that number. If the selected files'
latest recoverable content already exceeds the target, reduce the protected
scope or remove replaceable large data from protection.

Migration does not compress or discard history; it moves the same verified data
to another drive. Reclaiming the original drive requires selecting old-copy
removal and typing MOVE STORAGE.

Upgrade Notes

Existing installations continue using their current data location and existing
configured budget. Open Recovery Home, choose Storage, analyze the current
minimum, then migrate to an empty folder on another disk. Do not manually move
or delete .safevault.