Skip to content

artcraft(*): Persist portable settings across updates - #19231

Merged
z-Fng merged 3 commits into
ScoopInstaller:masterfrom
Lorie-Capella:fix/artcraft-portable-persistence
Nov 5, 2026
Merged

z-Fng merged 3 commits into
ScoopInstaller:masterfrom
Lorie-Capella:fix/artcraft-portable-persistence

Conversation

@Lorie-Capella

@Lorie-Capella Lorie-Capella commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

ArtCraft's portable settings currently stay in Scoop's version-specific installation directory for these eight apps, so updating can appear to reset preferences and cleanup can delete the old data.

Add persist for DesignCraftData, EffectCraftData, FigCraft's config, FilmCraft's data, LightCraftData, PdfCraftData, SoundCraftData and VectorCraftData. LightCraft and SoundCraft also get a guarded pre_install that creates portable.txt, because the released executables support the marker but their portable ZIP packaging omits it. Preserve an existing upstream marker.

PhotoCraft already persists its data. CADCraft, DeckCraft, GridCraft and WordCraft still need their upstream portable implementations released; their current AppData paths should not be replaced with unused persist entries. Each manifest includes migration notes with its persistent destination and instructions for recovering existing settings. Existing user-profile settings are not automatically migrated.

Validation:

  • All eight modified manifests pass Scoop's JSON schema.

  • First install and update fixtures using Scoop's actual persist_data function retain the same settings SHA-256 through persistent junctions for all eight apps.

  • Both pre_install hooks create portable.txt and preserve its existing contents.

  • Versions, URLs, hashes and autoupdate definitions are unchanged.

  • No live install/update or app-launch smoke test was performed.

  • Use conventional PR title.

  • I have read the Contributing Guide.

Relates to #19230.

@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Eight application manifests now document portable settings locations and state that settings are not migrated automatically. They add persistent data paths. LightCraft and SoundCraft also create an empty portable.txt during pre-install when it is absent.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Possibly related issues

  • Issue 19230 describes the same portable-settings problem. This pull request adds persistence paths and guarded portable.txt hooks for the affected manifests.
Merge Risk: Minimal · up to 1602f

The change makes settings for eight apps survive updates, and the two marker hooks follow each app's documented portable-mode contract. No merge-blocking risk was found. Existing settings are not migrated automatically, and the manifest notes say so.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title clearly identifies the ArtCraft manifests and the main change: persisting portable settings across updates. It is concise and follows the repository's conventional title format.
Description check Passed The description provides the change summary, affected manifests, migration behavior, validation results, limitations, issue reference, and completed checklist items. It satisfies the required template…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description provides the change summary, affected manifests, migration behavior, validation results, limitations, issue reference, and completed checklist items. It satisfies the required template information.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (8 skipped: 8 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 92c38df and 1602fc6.

Files selected for processing: 8

  • bucket/designcraft.json
  • bucket/effectcraft.json
  • bucket/figcraft.json
  • bucket/filmcraft.json
  • bucket/lightcraft.json
  • bucket/pdfcraft.json
  • bucket/soundcraft.json
  • bucket/vectorcraft.json

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.

@Lorie-Capella Lorie-Capella changed the title *craft: Persist portable settings across updates artcraft(*): Persist portable settings across updates Nov 3, 2026
@Lorie-Capella

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

This comment was marked as outdated.

@z-Fng z-Fng left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the data path changed without automatic migration, we should include a note in the manifest to avoid confusing users into thinking their data is lost.

  • migration:
    "if (Test-Path $env:USERPROFILE\\.t3) {",
    " Write-Host \"`r`nMove user config from non-portable version...\"",
    " Copy-Item -Path $env:USERPROFILE\\.t3\\* -Destination \"$persist_dir\\user\" -Force -Recurse -ErrorAction Stop | Out-Null",
    " Remove-Item $env:USERPROFILE\\.t3 -Force -Recurse",
    "}",
  • notes:
    "notes": [
    "Scoop persists data since version 0.1.1067. You may need to move data by yourself.",
    "Before: '$env:USERPROFILE\\.config\\magpie'",
    "After : '$persist_dir\\data'"
    ],

Mark as ready when it is ready for review.

@Lorie-Capella
Lorie-Capella marked this pull request as ready for review November 5, 2026 15:16
@Lorie-Capella

Copy link
Copy Markdown
Contributor Author

Added migration notes to all eight manifests, including the exact $persist_dir destination and instructions to close the app and retain a backup when copying existing settings. The notes explicitly say that settings from earlier installations or user-profile folders are not migrated automatically. All eight manifests pass the Scoop schema. Marked ready for review.

@Lorie-Capella

Copy link
Copy Markdown
Contributor Author

/verify

@github-actions

This comment was marked as outdated.

@z-Fng

z-Fng commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

/verify

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

designcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

effectcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

figcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

filmcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

lightcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

pdfcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

soundcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

vectorcraft

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

@z-Fng
z-Fng merged commit 74f7549 into ScoopInstaller:master Nov 5, 2026
3 checks passed
@Lorie-Capella
Lorie-Capella deleted the fix/artcraft-portable-persistence branch November 5, 2026 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants