Repository navigation
fix(storage): keep legacy auto allocation when multi routing is retained - #27
Merged
Merged
Conversation
Legacy deployments that relied on the removed Compose overlay retain their persisted multi storage sections, but CF_ENABLE_S3_STORAGE now defaults to false and regenerated [cloudfile] s3_storage_enabled=false. The C allocator then stopped pinning new libraries to auto-local directories. Keep the persisted switch whenever the retained storage classes remain enabled. Also repair two test regressions from the build-chain change: archive the V2 launcher tests with the launcher they exercise, and make the native-pin assembly test use a ref that differs from the new source-lock fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
After #25 removed the legacy Compose overlay values, an existing deployment whose
.envdid not explicitly setCF_ENABLE_S3_STORAGE=truekeeps its persisted multi routing (so old libraries stay readable), but bootstrap regenerates[cloudfile] s3_storage_enabled = false.cf_pin_default_local_storageis gated by that switch, so new libraries silently land in the defaultseafile-datainstead of their own auto-local directory. This violates "legacy deployments keep their behavior".Change
library_storage.retained_legacy_switch(): true when the persisted config still hasenable_storage_classes = trueands3_storage_enabled = true.bootstrap.write_cloudfile_seafile_conf(): when legacy backend sections are retained and that switch was on, keeps3_storage_enabled = true. ExplicitCF_LIBRARY_STORAGE=autoand new installs are unaffected.tests/test_v2_native_config.pyandtests/test_v2_web_paths.pystill pointed atbuild/v2, which fix(build): unify full dev builds and immutable receipts #26 archived; they move todocs/history/storage-build-20261020/tests/with their paths updated (19 tests, OK).test_application_assembly.test_changed_native_pin_refuses_reuse_without_creating_outputset seafile-server ref to'a'*40, which equals the newsource-lock.jsonfixture value, so nothing changed and the refusal never fired. It now uses'c'*40.Validation
Before this PR, dev had 1 failure plus the 2 archived-test import errors (and the same pytest import error).
No deployment or image build.
🤖 Generated with Claude Code