chore(rebrand): phase 4b β feature-flags storage key and Tauri bridge identifiers#144
Conversation
|
CodeAnt AI is reviewing your PR. Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
CodeAnt AI finished reviewing your PR. |
|
@CodeAnt-AI review |
|
CodeAnt AI is running the review. Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
|
@CodeAnt-AI review |
|
CodeAnt AI is running the review. Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
Sequence DiagramThis PR migrates feature flag persistence from the legacy StoryCraft storage key to a WorldScript-specific key and aligns the Tauri Rust task supervisor commands and bridge identifiers with the new WorldScript naming. sequenceDiagram
participant App
participant FeatureFlagsStorage
participant BrowserStorage
participant TauriBridge
participant TauriCore
participant RustTaskSupervisor
App->>FeatureFlagsStorage: Load feature flags on startup
FeatureFlagsStorage->>BrowserStorage: Read WorldScript storage key or migrate from legacy key
BrowserStorage-->>FeatureFlagsStorage: Flags JSON
FeatureFlagsStorage-->>App: Flags merged with defaults
App->>TauriBridge: Submit Rust task request
TauriBridge->>TauriCore: Invoke WorldScript task supervisor command
TauriCore->>RustTaskSupervisor: Dispatch task for execution
RustTaskSupervisor-->>TauriCore: Task result event
TauriCore-->>TauriBridge: Forward result
TauriBridge-->>App: Deliver Rust compute result
Generated by CodeAnt AI |
|
CodeAnt AI finished running the review. Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
The help docs in this PR reference the localStorage key `worldscript-feature-flags`, but the runtime FEATURE_FLAGS_STORAGE_KEY was still `storycraft-feature-flags`, so the documented reset key was wrong. Rename the runtime key to `worldscript-feature-flags` and update the E2E feature-flag seeding helpers (tests/e2e/helpers.ts, lora-wizard.spec.ts) in lockstep. Pre-release (no users) so no migration needed. PR #144 further refactors this key into services/featureFlagsStorage.ts using the same value. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦148) Three docs described stale or incorrect rebrand details: - V1.23-REBRAND-SMOKE-TEST R.8 claimed a feature-flag key "migration"; there is none. Restate as: flags persist under `worldscript-feature-flags` (pre-release, no legacy migration). - CHANGELOG claimed the key was "migrated" and that IDB DB names + CSS class tokens "remain unchanged for migration compatibility". With no existing users the rebrand renames them forward to `worldscript-*` (the storycraft-driver-popover tour token is the one intentionally-unchanged token). Restate accordingly. - TAURI-CI referenced a non-existent `app.deepLink.protocols` config path; the actual key is `plugins.deep-link.desktop.schemes` (now registering both `worldscript://` and legacy `storycraft://`). This phase (docs/CI) merges last, after #142/#144/#145 land the code rebrand, so the runbooks validate against fully-rebranded main. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦k exts (#144) - featureFlagsStorage migration could permanently erase saved flags: setItem swallowed quota/private-mode errors but removeItem(legacy) ran unconditionally. setItem now reports success and the legacy key is only dropped after the new write is confirmed (the value is still used for the session if the write fails). - isWorldScriptProjectFile: .json detection used a case-sensitive endsWith while other extensions used the lowercased ext, so `.JSON` was wrongly rejected. Use the normalized ext for json too. - getProjectIdFromPath: extension-strip regex made case-insensitive (`/β¦/i`) so uppercase `.WORLDSCRIPT`/`.WSST`/`.JSON` produce consistent project IDs. - Tests cover the new case-insensitive paths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
|
@CodeAnt-AI review |
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
β¦ix (#144 wave-2) The handler only normalized worldscript:// while tauri.conf registers the legacy storycraft scheme too, so storycraft:// deep links (and .storycraft/.scst file associations) would not convert to file paths. Accept BOTH schemes (matching the dual registration added in #142). Also fix the canonical Windows form `worldscript:///C:/...`: the drive-letter check `^[A-Za-z]:` failed on the leftover leading slash (`/C:/...`), so exists() looked up the wrong path β now `^\/*[A-Za-z]:` strips the leading slash(es). Mirrors the deepLinkUrlToPath logic on #142; the two will consolidate at merge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
|
@CodeAnt-AI review |
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
Sequence DiagramThis diagram shows how the app now loads feature flags using the new WorldScript storage key with safe migration from the legacy StoryCraft key, and how Tauri deep link events using WorldScript project file associations are converted into project imports. sequenceDiagram
participant App
participant Storage
participant DeepLinkPlugin
participant FileSystem
App->>Storage: Load feature flags (use WorldScript key, migrate legacy StoryCraft key)
Storage-->>App: Resolved feature flags state
DeepLinkPlugin->>App: Emit deep link event with project URL or file path
App->>App: Normalize scheme and extract project file path
App->>FileSystem: Read project file contents
FileSystem-->>App: Project data
App->>App: Import project and open in UI
Generated by CodeAnt AI |
β¦ and task-bridge identifiers
β¦correct legacy key - Introduce featureFlagsStorage.ts to encapsulate localStorage access. - Fix LEGACY_FEATURE_FLAGS_STORAGE_KEY back to 'storycraft-feature-flags'. - Keep featureFlagsSlice synchronous while removing raw localStorage calls. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Move Rust command renames from phase 4c into phase 4b so the TS bridge and Tauri commands stay consistent within this PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Use /^worldscript:\/{0,2}/ so worldscript:, worldscript:/ and
worldscript:// are all stripped before path normalization.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦k exts (#144) - featureFlagsStorage migration could permanently erase saved flags: setItem swallowed quota/private-mode errors but removeItem(legacy) ran unconditionally. setItem now reports success and the legacy key is only dropped after the new write is confirmed (the value is still used for the session if the write fails). - isWorldScriptProjectFile: .json detection used a case-sensitive endsWith while other extensions used the lowercased ext, so `.JSON` was wrongly rejected. Use the normalized ext for json too. - getProjectIdFromPath: extension-strip regex made case-insensitive (`/β¦/i`) so uppercase `.WORLDSCRIPT`/`.WSST`/`.JSON` produce consistent project IDs. - Tests cover the new case-insensitive paths. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦ix (#144 wave-2) The handler only normalized worldscript:// while tauri.conf registers the legacy storycraft scheme too, so storycraft:// deep links (and .storycraft/.scst file associations) would not convert to file paths. Accept BOTH schemes (matching the dual registration added in #142). Also fix the canonical Windows form `worldscript:///C:/...`: the drive-letter check `^[A-Za-z]:` failed on the leftover leading slash (`/C:/...`), so exists() looked up the wrong path β now `^\/*[A-Za-z]:` strips the leading slash(es). Mirrors the deepLinkUrlToPath logic on #142; the two will consolidate at merge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
f3bc132 to
0a77c69
Compare
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
The help docs in this PR reference the localStorage key `worldscript-feature-flags`, but the runtime FEATURE_FLAGS_STORAGE_KEY was still `storycraft-feature-flags`, so the documented reset key was wrong. Rename the runtime key to `worldscript-feature-flags` and update the E2E feature-flag seeding helpers (tests/e2e/helpers.ts, lora-wizard.spec.ts) in lockstep. Pre-release (no users) so no migration needed. PR #144 further refactors this key into services/featureFlagsStorage.ts using the same value. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦148) Three docs described stale or incorrect rebrand details: - V1.23-REBRAND-SMOKE-TEST R.8 claimed a feature-flag key "migration"; there is none. Restate as: flags persist under `worldscript-feature-flags` (pre-release, no legacy migration). - CHANGELOG claimed the key was "migrated" and that IDB DB names + CSS class tokens "remain unchanged for migration compatibility". With no existing users the rebrand renames them forward to `worldscript-*` (the storycraft-driver-popover tour token is the one intentionally-unchanged token). Restate accordingly. - TAURI-CI referenced a non-existent `app.deepLink.protocols` config path; the actual key is `plugins.deep-link.desktop.schemes` (now registering both `worldscript://` and legacy `storycraft://`). This phase (docs/CI) merges last, after #142/#144/#145 land the code rebrand, so the runbooks validate against fully-rebranded main. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
β¦ceholder assets (#147) * chore(rebrand): phase 5 i18n values and translation glossary * chore(rebrand): phase 6 placeholder icons and assets * fix(rebrand): align feature-flags storage key with help docs (#147) The help docs in this PR reference the localStorage key `worldscript-feature-flags`, but the runtime FEATURE_FLAGS_STORAGE_KEY was still `storycraft-feature-flags`, so the documented reset key was wrong. Rename the runtime key to `worldscript-feature-flags` and update the E2E feature-flag seeding helpers (tests/e2e/helpers.ts, lora-wizard.spec.ts) in lockstep. Pre-release (no users) so no migration needed. PR #144 further refactors this key into services/featureFlagsStorage.ts using the same value. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(rebrand): align default wake-word phrase with UI copy (#147 wave-2) The voice UI copy was rebranded to "Hey WorldScript" across all locales, but the runtime default wakeWordPhrase stayed "Hey StoryCraft" in settingsSlice, voiceCommandService and the EnergyThresholdWakeWordEngine, so following the on-screen instruction would never trigger activation. Rename the default phrase to "Hey WorldScript" (engine, both settings defaults, service default, types doc) and update the wake-word + settings-fixture tests in lockstep. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
β¦s-tauri # Conflicts: # features/featureFlags/featureFlagsSlice.ts # services/tauriDeepLink.ts # tests/unit/services/tauriDeepLink.test.ts
Thanks for using CodeAnt! πWe're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X Β· |
* docs(rebrand): Phase 7 docs + Phase 8 CI/CD β complete StoryCraft β WorldScript rebrand - Rebranded all forward-facing documentation, issue templates, and workflow comments. - Renamed smoke-test protocol V1.22 β V1.23-REBRAND-SMOKE-TEST.md with rebrand-specific checks. - Updated GitHub Actions CI VRT serve path to /WorldScript-Studio/ and docker.yml pull comment. - Updated .github/best-practices-badge.yml security policy URL and issue template descriptions. - Forward-updated GitHub URLs in docs/history/ sprint handoffs. - Regenerated .mcp/proforge-mcp-server/package-lock.json for @worldscript scope. - Updated metadata.json app name to WorldScript Studio. - Added scripts/rebrand-docs.mjs helper for documentation mass-rebrand. * docs(rebrand): align AGENTS.md and README.md version badges to v1.23.0 * fix(rebrand): update remaining StoryCraft references in help locale fixtures * chore(rebrand): remove VRT path change from phase 7-8 The /WorldScript-Studio/ VRT path update now lives in phase 1-3 (PR #142) to keep playwright.config.ts and the workflow aligned in one PR. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(rebrand): clarify changelog scope and fix Tauri-CI file extension - Soften CHANGELOG claim from 'complete rename' to 'rename ... across user-facing code' and note legacy storage keys/CSS tokens stay unchanged. - docs/TAURI-CI.md: .scst -> .wsst to match tauri.conf.json fileAssociations. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(rebrand): correct rebrand claims for the no-migration end state (#148) Three docs described stale or incorrect rebrand details: - V1.23-REBRAND-SMOKE-TEST R.8 claimed a feature-flag key "migration"; there is none. Restate as: flags persist under `worldscript-feature-flags` (pre-release, no legacy migration). - CHANGELOG claimed the key was "migrated" and that IDB DB names + CSS class tokens "remain unchanged for migration compatibility". With no existing users the rebrand renames them forward to `worldscript-*` (the storycraft-driver-popover tour token is the one intentionally-unchanged token). Restate accordingly. - TAURI-CI referenced a non-existent `app.deepLink.protocols` config path; the actual key is `plugins.deep-link.desktop.schemes` (now registering both `worldscript://` and legacy `storycraft://`). This phase (docs/CI) merges last, after #142/#144/#145 land the code rebrand, so the runbooks validate against fully-rebranded main. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(rebrand): fix desktop file-extension inconsistency in smoke test (#148 wave-4) Step 7.5 referenced `.worldscript`/`.scst` β the old short extension. R.5/R.6 (and the #144 handler) use `.wsst`. Align 7.5 to `.worldscript`/`.wsst`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(rebrand): align systemd units + AGENTS file-assoc with WorldScript (#148) - AGENTS.md listed Tauri file associations as `.worldscript`/`.scst`; the runtime registers `.worldscript`/`.wsst`. Fix the short extension. - Low-end-CI docs referenced `worldscript-*.timer` units, but the actual systemd unit files were still `storycraft-*`, so the documented `systemctl enable` commands pointed at non-existent units. Rename the 5 unit files + their internal references + install-systemd-units.sh to `worldscript-*`, matching the docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore(rebrand): complete low-end-CI infra rename to worldscript (#148) The low-end-CI infra still used storycraft identifiers β docker container (storycraft-forgejo), data paths (~/storycraft-ci), env vars (STORYCRAFT_CI_HOME), and service references in the eco/optimization scripts (which broke after the systemd unit files were renamed to worldscript-*). Rebrand all 20 affected infra files to worldscript so the documented commands (docker logs worldscript-forgejo, systemctl β¦ worldscript-forgejo.service) match the actual runtime. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
User description
Summary
Part of the StoryCraft β WorldScript rebrand split. This PR updates the feature-flags persistence key and Tauri command identifiers.
Changes
FEATURE_FLAGS_STORAGE_KEYrenamed toworldscript-feature-flags.LEGACY_FEATURE_FLAGS_STORAGE_KEYkept asstorycraft-feature-flagsfor one-time migration.storycraft_task_supervisor_*toworldscript_task_supervisor_*.worldscript://scheme and.worldscript/.wsstextensions.Notes
Related
CodeAnt-AI Description
Keep WorldScript feature flags, project files, and native tasks working after the rebrand
What Changed
.JSON,.WORLDSCRIPT, and.WSSTare acceptedstorycraft://deep links still open, and newworldscript://links are handled tooImpact
β Saved feature-flag settings survive the rebrandβ WorldScript project files open correctlyβ Fewer broken native task lookups after renamingπ‘ Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.