admin and Claude Opus 5.5
668682c4ff
Give a song, a track or an item a sound FX of its own ( #355 )
...
A sound FX for one place in a song had to be a project asset, which
then stood in every picker. Now every pick of a sound FX in a song
can make one the song keeps for that place alone, on top of the
embedded assets of the first two parts.
- Create sound FX sits at the end of the Sound FX row of the song,
a track and an item, and of the menu of a track's FX button. It
makes "Sound FX 1", 2, … per song with the Input wired to the
Output, picks it and opens it. That is one undo step.
- Embed a copy, while the place names a project FX, gives the place
a copy under the same name.
- While the place names its own, the menu shows it with the mark and
offers Edit sound FX and Make project asset.
- Picking anything else lets it go in the same undo step. For a
track or an item `settleEmbedded` did that already. For the song's
own row `AssetPropertyCommand` now settles the song after `fx`.
- The mark `•` moved to the core. `assetRefLabel` puts it in front of
an embedded asset, so the inspector rows show it like the timeline.
- `FieldHandlers.moreChoices` lets a caller end a reference menu
with entries of its own. `embeddedPatternName` is `embeddedName`
with a base now.
Tests:
- Unit own-fx (new): 6 green, 6 counter-checks each red
- Unit embedded and 80 neighbouring files: 1434 green
- e2e 65 (melektaus-atx): ALL PASSED, 51 checks (2 new)
- Gate (melektaus-atx): CHECK EXIT 0, 270 files, 4178 tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 11:32:41 +02:00
..
2026-10-07 18:17:21 +02:00
2026-10-07 23:25:05 +02:00
2026-10-01 22:08:28 +02:00
2026-10-04 13:30:31 +02:00
2026-10-07 22:05:01 +02:00
2026-09-29 22:07:53 +02:00
2026-10-05 22:15:15 +02:00
2026-09-16 08:08:10 +02:00
2026-09-23 18:29:34 +02:00
2026-10-02 23:52:49 +02:00
2026-10-07 18:17:21 +02:00
2026-09-16 08:08:10 +02:00
2026-10-07 18:17:21 +02:00
2026-09-23 06:57:43 +02:00
2026-09-29 22:07:53 +02:00
2026-09-23 08:13:22 +02:00
2026-09-23 20:07:47 +02:00
2026-09-16 08:08:10 +02:00
2026-09-23 16:44:15 +02:00
2026-10-02 19:33:34 +02:00
2026-09-29 06:01:26 +02:00
2026-09-27 21:56:21 +02:00
2026-10-04 00:11:41 +02:00
2026-10-05 16:08:59 +02:00
2026-09-16 08:08:10 +02:00
2026-09-27 15:58:05 +02:00
2026-10-06 11:34:35 +02:00
2026-09-22 18:29:10 +02:00
2026-10-06 11:34:35 +02:00
2026-09-27 12:12:40 +02:00
2026-10-07 08:25:13 +02:00
2026-10-03 14:51:18 +02:00
2026-09-27 21:56:21 +02:00
Asset panel grouped by kind with icons: assets are listed under a header per kind (Sprites, Behaviors, ...) with the count on the right, empty groups are not shown, every group starts folded when a project is opened, a click on the header folds and unfolds it, selecting an asset elsewhere unfolds its group and folding the group of the selected asset clears the selection; every asset kind has an SVG icon in src/editor/panels/icons/ drawn before the name, the pure rule for grouping and sorting lives in assetGroups.ts; the same icons replace the kind word in document tabs and the overflow menu (a list icon for the List tab, which also fixes the close x lying over the end of the active tab's text), stand before every entry of the + menu (Button got an icon option) and on the right of scene object rows instead of the type name; the colour swatch next to sprite names is gone from both panels; the SVG loader moved to src/ui/svg.ts for both icon sets; test hook assetRow unfolds the group and scrolls to the row, assetRowShown only reads, new hook menuIcons; e2e 4g and 4h, 14 and 44a check the icons ( #176 )
2026-09-19 18:36:20 +02:00
2026-10-08 08:20:52 +02:00
2026-10-01 17:30:16 +02:00
2026-09-23 10:20:05 +02:00
2026-10-02 20:33:20 +02:00
2026-09-23 13:59:04 +02:00
2026-09-27 12:12:01 +02:00
2026-10-07 16:54:59 +02:00
2026-10-03 10:09:45 +02:00
2026-10-01 19:36:13 +02:00
2026-10-04 19:13:58 +02:00
2026-09-29 22:07:53 +02:00
Changing the password: the Logout button at the far right of the toolbar became an Account menu that names the signed-in account in an entry of its own that cannot be picked, with Change password... above Logout, and the new dialog (src/editor/auth/PasswordDialog.ts) asks for the current password, the new one and its repetition, all three as bullets, and stays standing when the server refuses so that it can say why, unlike the other form dialogs; the rules for empty, too short, new equal to old and a differing repetition sit as the pure function passwordProblem() next to loginProblem(), the API gained POST ?r=auth/password which answers 204, insists on the current password although a session is there, enforces a minimum length of 8 in UserStore::MIN_PASSWORD_LENGTH and again in the client so the mask can answer without asking the server, and the new SessionStore::destroyAllFor($user, $keep) ends every other session of the account while the tab that changed the password keeps its own; the placeholders admin/admin and user/user stay as they are, which the length check does not touch because it only runs when a password is set through the API; e2e 45 grew by 8 checks for the menu, the dialog, both refusals and signing in with the old and the new password, and it sets the e2e account back at the end - a run dying in between leaves it on <password>-tmp, which a make-user.php call repairs ( #182 )
2026-09-20 13:46:40 +02:00
2026-10-03 21:01:10 +02:00
2026-10-07 18:17:21 +02:00
2026-10-07 18:17:21 +02:00
2026-10-03 21:01:10 +02:00
2026-09-29 18:12:55 +02:00
2026-09-29 22:36:30 +02:00
2026-09-27 12:12:40 +02:00
2026-10-07 18:17:21 +02:00
2026-10-07 18:17:21 +02:00
2026-09-30 22:08:22 +02:00
2026-10-03 18:16:59 +02:00
2026-10-01 07:28:49 +02:00
2026-09-30 07:57:18 +02:00
2026-09-30 11:18:39 +02:00
2026-10-03 18:50:41 +02:00
2026-09-29 14:44:14 +02:00
2026-10-03 17:38:39 +02:00
2026-10-04 00:39:59 +02:00
2026-10-06 22:22:54 +02:00
2026-10-08 11:32:41 +02:00
2026-10-06 16:28:25 +02:00