Skip to content

feat: start a bot at a given time of its cycle (0.4.0) - #3

Merged
NorbertBodziony merged 1 commit into
mainfrom
fix/strict-read-untracked
Sep 26, 2026
Merged

NorbertBodziony merged 1 commit into
mainfrom
fix/strict-read-untracked

Conversation

@NorbertBodziony

Copy link
Copy Markdown
Owner

Summary

  • BloubBot gets initialPhase. The component reads it once, on mount, and starts the clock, the block and the pose at that time. Bots mounted together with different values do not animate in step. A frozen bot (frozenAt) ignores it.
  • BotEngine.setState(id, now, posePhase = 0): posePhase moves the pose of the new state forward and keeps the transition timing. With 0, the output does not change.
  • Version 0.4.0, CHANGELOG and README updated.

Why

OpenBot had this feature as a patch on the built package (patches/@norbert_bodziony%2Fbloub@0.3.0.patch). The patch read props.cycle directly in the component body, so Solid 2 logged a STRICT_READ_UNTRACKED warning for each avatar. This version reads all start values in one untrack. After release, OpenBot removes its patch.

Checks

  • bun run test: 216/216 pass (new test: initialPhase starts the bot at that time of the cycle).
  • bun run typecheck and bun run test:package pass.
  • In OpenBot, with this build in place of the patched one: two avatars and one mood change give 0 STRICT_READ_UNTRACKED warnings (8 with the patched 0.3.0). AccountUpdateIsland.test.tsx 6/6, bloub-avatar-motion.test.ts 14/14, typecheck:renderer pass.

Release

After merge: git tag v0.4.0 && git push origin v0.4.0 runs publication.yml.

Add `initialPhase` to `BloubBot`. The component reads it once, on mount,
and starts the clock, the block and the pose at that time. Bots mounted
together with different values do not animate in step.

Add an optional `posePhase` to `BotEngine.setState`. It moves the pose of
the new state forward and keeps the transition timing. With 0, the output
does not change.

OpenBot had this feature as a patch on the built package. The patch read
props directly in the component body, and Solid 2 logged a
STRICT_READ_UNTRACKED warning for each avatar. This version reads all
start values in one `untrack`.
@github-actions

Copy link
Copy Markdown

Apercu Cloudflare Pages : https://pr-3.bloub-app.pages.dev

@NorbertBodziony
NorbertBodziony merged commit 7c7e2c9 into main Sep 26, 2026
3 checks passed
@NorbertBodziony
NorbertBodziony deleted the fix/strict-read-untracked branch September 26, 2026 17:19

This branch was successfully deployed

1 active deployment
preview — 43a34fd5 Deployed Sep 26, 2026 by github-actions[bot]
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.

1 participant