Rename the app to Arabesque - #224
Merged
Merged
Conversation
Renames the product everywhere it is user-visible, following the decision recorded in NAMING.md (#222): page titles and the landing page, both locale files, the favicon label, the exported backup filename, and the READMEs. On the iOS side the target, directory and generated project become Arabesque, the display name and the Bluetooth/local-network usage strings follow, and the bundle ID moves to com.arabesque.Arabesque — the identifier has to be right before the first App Store Connect submission, since it cannot be changed afterwards. The CoreMIDI client and port names, which other apps can see, are renamed too. The CI workflow and .gitignore follow the new target name. Deliberately left alone: - DB_NAME = 'piano-trainer' in storage.js. It is the IndexedDB database holding every user's fingerings, sessions and practice aggregates; renaming it would orphan their data. The tests that open the database by name are unchanged for the same reason. - The localStorage keys (pt-*). - The repository name and the GitHub Pages URL, so PTWebAppURL still points at the live deployment. - The historical changelog entries that mention the old name: they are a dated record of what shipped. A new entry announces the rename instead, and says explicitly that practice data is untouched. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
NAMING.md landed on main with the rename still listed as pending; this branch is what does it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Scene 5 of the video is a brand lockup that spelled out "Piano Trainer", so both committed MP4s ended on the old name while the page around them said Arabesque. Renames it in the composition and re-renders both languages. The captured screenshots themselves carry no product name — only the lockup did — but the English render still needed a fresh capture, since the assets on disk were the French set. Regenerating surfaced two pre-existing breakages in the capture script, both dating from the header/data-page refactor rather than from the rename: - it seeded the practice data through #backup-import on the library page, but that control moved to the data page (⚙️ menu) — it now imports there and waits on the completion alert; - it opened /library?accueil, a route that 404s since the library moved to library.html. The FR poster frame is unchanged because it is taken from the opening library scene, which this touches not at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The French render reused the screenshots left on disk from June, while the English one was captured fresh — the two hero videos showed different states of the app. Both are now captured from the same app and the same backup. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The practice journal is rendered relative to now, so seeding a three-week-old backup opened the hero video on a column of "Aucune pratique" — the one panel that was supposed to show a living repertoire. The page's clock is now pinned just after the most recent session in the backup, which puts that session under "today" and keeps the days above it filled. The date is derived from the file rather than hardcoded, so any backup produces a journal that looks current. Playwright's setFixedTime only pins Date.now() and new Date(): timers keep running, so animations, the OSMD render and the mock-MIDI sleeps are unaffected. Also seeds both spellings of the language key, since the next branch renames it and this script has to work either side of that change. Both languages recaptured and re-rendered. Co-Authored-By: Claude Opus 5 (1M context) <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.
Applies the naming decision recorded in #222.
Renamed
description, hero aria-label, footer), both locale files, the favicon label,
and the exported backup filename (
arabesque-backup-*.json, with its test).Arabesque; display name, Bluetooth and local-network usage strings follow;the CoreMIDI client and port names (visible to other apps) are renamed; and
the bundle ID moves to
com.arabesque.Arabesque. That identifier had to besettled now: it cannot be changed once the app exists on App Store Connect.
.gitignore, the iOS CI workflow (project, target,.apppath, launch bundle ID, crash-report glob), and both READMEs.
A changelog entry announces the rename in both languages and states that
practice data is untouched, plus an entry in
CHANGELOG.Landing hero video
Scene 5 of the hero video is a brand lockup that spelled out "Piano Trainer", so
both committed MP4s ended on the old name. Renamed in the composition and
re-rendered in both languages (the screenshots themselves carry no product name,
but the English render needed a fresh capture since the assets on disk were the
French set).
Regenerating surfaced two pre-existing breakages in the capture script, both
from the header/data-page refactor rather than this rename: it seeded through
#backup-importon the library page, which moved to the data page, and itopened
/library?accueil, a route that 404s since the library moved tolibrary.html. Both fixed here.Deliberately not renamed
DB_NAME = 'piano-trainer'instorage.js— the IndexedDB databaseholding every user's fingerings, sessions and practice aggregates. Renaming it
would orphan their data. The tests opening the database by name are unchanged
for the same reason.
localStoragekeys (pt-*).PTWebAppURLstill points atthe live deployment.
record of what shipped.
Verification
xcodegen generateproducesArabesque.xcodeprojwithPRODUCT_BUNDLE_IDENTIFIER = com.arabesque.Arabesque.rake test: 66 runs, 0 failures. One error on first run,Ferrum::PendingConnectionsErrorintest_hand_selection_left_hand_only— apage-load timeout that passes in isolation and is unrelated to this change.
🤖 Generated with Claude Code