Skip to content

[DO NOT MERGE] Merge beta into main#737

Draft
microbit-matt-hillsdon wants to merge 114 commits intomainfrom
beta
Draft

[DO NOT MERGE] Merge beta into main#737
microbit-matt-hillsdon wants to merge 114 commits intomainfrom
beta

Conversation

@microbit-matt-hillsdon
Copy link
Copy Markdown

@microbit-matt-hillsdon microbit-matt-hillsdon commented Feb 13, 2026

microbit-matt-hillsdon and others added 30 commits November 20, 2025 10:17
Fix theme and upgrade ml-trainer-microbit theme package (#626)
- New and updated nudges to guide user through recording for 2 actions then training.
- Also replaced empty data samples page state with an initial placeholder action.
- Add screen reading and reduced motion support for nudges.
- Update homepage step-by-step and move it above video.
- The welcome dialog has not been finalised yet, but has a placeholder video. 

---------

Co-authored-by: Matt Hillsdon <matt.hillsdon@microbit.org>
This may well be replaced by another animation format but good enough for testing.
Update UI to cope with multiple projects
This previously tried to add existing actions to storage which threw.
Update card styling
Limit number of projects in carousel
Add card to view all projects at end
Ensure that text input is focused when dialoged is opened.
microbit-matt-hillsdon and others added 24 commits February 25, 2026 16:22
The recording highlight effect used usePrevious (from Chakra) to detect
isRecording transitions. Because prevIsRecording was in the effect's
dependency array, the effect re-ran when prevIsRecording caught up to
isRecording on the next render. With isRecording still true, this drew
a second start line a few ms after the first, distorting the highlight.

The beta changes caused additional re-renders (e.g. due to hints) that
triggered the extra effect execution.

Fix by replacing usePrevious with a ref updated inside the effect. The
ref is already in sync when the effect runs, so re-renders are harmless
and only actual isRecording transitions trigger drawing.

This doesn't seem to be an issue on beta or apps so the re-renders must be a
combined effect of the two branches.
The !model criterion is too cryptic so leaves users unsure about when we show
the dialog. We might add a skip, or a per session rule, or a new projects only
rule in future.
... on devices with limited height e.g. 1336x768, 1280x720.
Brand colour and short viewport tweaks
...depending on stage as the createai page is not yet live.
Remove AboutPage and link to createai/ai page
New animation layout introduced for portrait mobile / narrower screen sizes.
Some of the strings have been unused since the image -> video swap in the old home page.
Prevents it showing again on navigation back from Train Model when you didn't
connect (e.g. opened project with data already).
* Button B press should only record 1 recording
* Don't allow recording when tour is in progress
* Allow button B recording only when record button for selected action is displayed
…ve project (#809)

Extract renameProject to project-utils so it can be shared between
store and storage. The shared version updates both header.name and
pxt.json name, and handles missing headers gracefully.
* Make visible toolbar editable name focus ring
* Maximise showing project name by tweaking ActionBar styling
microbit-matt-hillsdon and others added 5 commits March 26, 2026 18:09
These should now be complete except for Catalan which we'll update again before
we ship.
The redirect path was hardcoded as "/new" instead of using the basepath
prefix, so it didn't match when deployed at e.g. /v/beta/new.
Essentially @glastonbridge's #825 but modified to pause the graph at the help dialog.

Fixes #798

In order to stop visual flicker as the page changes out-of-step with the state machine for the training dialogs, I push the close dialog event onto the back of the event stack after a navigate, so it does not pre-emptively redraw the old page before hitting the navigate action.

---------

Co-authored-by: Alex Shaw <alex.shaw@microbit.org>
Write errors (quota exceeded, unexpected failures) show a persistent
toast via store state observed in Layout, keeping the app usable.
Read errors propagate to the React Router error boundary. First error
per session is reported to Sentry; subsequent ones are suppressed.

Includes e2e tests that monkey-patch IDBObjectStore to simulate both
write and read failures.
New edge cases considered:
- Prioritise record hint for first action if first action has name, but no data samples.
- Prioritise add action name hint for first action if first action does not have name or data samples.

Move hint visibility has been updated so that:
- It wobbles again if user does not move micro:bit after first wobble.
- It gets hidden if user does not move micro:bit 5s after second wobble.
- It does not get reinstated after reconnecting within a session.
- It gets hidden after deleting action(s)/recording.
- It gets hidden after being connected in testing model page.
- It gets hidden if an action name input field changes.

Fixes #803
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants