Skip to content

feat(solar): compose and control retained motion timelines - #79

Merged
ClodoCapeo merged 17 commits into
mainfrom
eleven/local-20261010-sponsor-motion
Oct 10, 2026
Merged

ClodoCapeo merged 17 commits into
mainfrom
eleven/local-20261010-sponsor-motion

Conversation

@ClodoCapeo

Copy link
Copy Markdown
Member

Result

Solar can compose retained animations in sequences and parallel groups, interpolate independent property tracks with Bézier/hold/spring curves, travel along cubic motion paths and control playback through native LSDP. Pause, seek, speed, reverse, looping, alternate direction, stop and cancel use one bounded clock and one outstanding submission.

The motion channels include affine transforms, colors, blur/shadow/stroke parameters, continuous whole-image waves, corresponding SVG path morphs and vector stroke reveal. Plans compile once; unchanged native worker clones reuse one exact-content compilation. Ordinary state updates preserve the active scene. Experimental extension contracts, supported effects and limits are documented in docs/development/motion-system.md.

The branch includes the local immutable scene provider and sponsor/composed/vector reference development fixtures and proof scripts. The user accepted the final OpenAI reference rotoscope visually; the first interpretation remains explicitly rejected. Dense held poses preserve contour merge/split windows. This is a reference-specific vector reconstruction, not semantic animation rig recovery or arbitrary video-to-LSML conversion.

Integration and validation

  • Current main 9dc261e has exactly the original 421495a base tree. Integrated its squash history while retaining the motion changes.
  • Four Vision artifact pins remain unchanged at source 14658e3, now accurately recorded as contained in verified Vision merge bb6d57f (Lumencast/lumencast-vision#6).
  • Found and fixed a fresh-checkout provenance failure: four exact upstream native client blobs use CRLF. Scoped Git attributes now preserve their bytes; committed blobs equal pinned native revision e695e14f. Existing PR CI also runs the native-client hash check.
  • Local checks passed: lint, TypeScript, architecture/discovery/docs/file sizes, 5 tooling tests, 260 unit tests in 35 files, native client hashes, full lib/host/server build and bundle/artifact pins.
  • Actual Rust LSDP interoperability on the reference archive passed fragmented payloads, atomic rejection, stale base, idempotency, unchanged source and memory-only cold restart.
  • Rebuilt native Solar/Vision actual-canvas controls passed all seven checks with one scene load and no reader errors. Local submission cadence from earlier reference proof is 60.03/s; this is not physical scanout.

Canonical checkpoint: evidence/local-20261010-sponsor-motion/eleven/20261010T130100Z-publication-checkpoint.md. Current control and native receipts are linked there. CI must pass on the final head before squash merge.

Scope and rollback

No release tag or deployment. Blue playback synchronization, a visual timeline editor and full After Effects/Jitter parity remain separate. Preserve the clean active source worktree and live demo; unrelated worktrees and sessions remain untouched. Revert this squash merge through a checked PR for rollback.

Owner: Eleven; thread 01a124c8-8595-7f01-92fd-bf0d24ba8bd1; work unit local-20261010-sponsor-motion. User explicitly authorized push and merge.

Agent-Role: eleven

Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982

Work-Unit: local-20261007-vision-integration

Issue: none

Evidence: qualified source-delivery candidate; local validation renewed 2026-10-07
Agent-Role: eleven

Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982

Work-Unit: local-20261007-vision-integration

Issue: none
Agent-Role: Eleven
Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982
Work-Unit: local-20261007-vision-integration
Issue: user-request
Evidence: evidence/local-20261007-vision-integration/eleven/20261007T201000Z-authoring-report.json
Agent-Role: Eleven
Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982
Work-Unit: local-20261007-vision-integration
Issue: user-request
Agent-Role: Eleven

Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982

Work-Unit: local-20261007-vision-integration

Issue: user-request
Agent-Role: Eleven

Agent-Thread: 01a116c8-c342-7e62-b783-59953e085982

Work-Unit: local-20261007-vision-integration

Issue: user-request

Evidence: Solar typecheck lint build layout and 197 tests passed
Apply LSDP mutations independently of Orion, preload installation fonts, and transfer canonical LSML with addressed assets to one persistent engine.

Agent-Role: eleven

Agent-Thread: 01a11a8b-8f4f-7fc2-abc4-7983042e4f63

Work-Unit: local-20261008-solar-merge

Issue: #78

Evidence: evidence/local-20261008-solar-merge/eleven/20261008T123900Z-candidate.md
Adopt the current isolated dev baseline and play sponsor image transitions through native LSDP, Solar and Vision. Bind translation to active scene coordinates instead of reloading for each sample.

Agent-Role: Eleven
Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1
Work-Unit: local-20261010-sponsor-motion
Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T080849Z-capture.json
Reuse retained image translations and source crops for a sampled wave fixture, with native playback and actual-canvas endpoint/replay evidence.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T091139Z-wave-checkpoint.md
Replace cropped image rows with two whole textures and retained Vision wave bindings. Pin the local continuous-mesh engine, validate animation ranges and shared start time, and retain actual-canvas quality and cadence evidence.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T093026Z-continuous-wave-checkpoint.md
Compile nested sequential and parallel tracks, property curves, cubic paths and bounded springs. Drive retained Vision transforms and effects without geometry reloads. Add native playback controls and primitive LSML keyframe replay, with compatibility documentation and actual-canvas proof.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T101407Z-composed-motion-checkpoint.md
Add validated SVG path morphing and retained stroke reveal channels. Reconstruct
an OpenAI reference sequence from generated vector contours and LSML tracks,
with native Solar/Vision playback, controls, pixel replay and cadence evidence.

Agent-Role: Eleven
Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1
Work-Unit: local-20261010-sponsor-motion
Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T110229Z-vector-motion-checkpoint.md
Replace the rejected visual interpretation with measured vector contour motion.
Keep recorded poses at topology changes and qualify aligned native timestamps
and half-frame positions, separate from actual real-time canvas capture.
Reuse accepted catalogue compilation for native clones and fix hold boundaries.

Agent-Role: Eleven
Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1
Work-Unit: local-20261010-sponsor-motion
Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T114348Z-reference-motion-checkpoint.md
Upstream main and the original 421495a base have identical trees. Preserve the motion candidate across squash history and record its exact engine source contained in the verified Vision merge.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T125000Z-publication-manifest.json
Pinned upstream Git blobs use CRLF. Protect only those four immutable files from text normalization and verify their provenance in PR CI. Record acceptance of the final vector reference fixture.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T125000Z-publication-manifest.json
Keep whitespace diagnostics while recognizing the exact upstream CRLF endings for four vendored blobs.

Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion
Agent-Role: Eleven

Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1

Work-Unit: local-20261010-sponsor-motion

Evidence: evidence/local-20261010-sponsor-motion/eleven/20261010T130100Z-publication-checkpoint.md
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T13:06:43.531977Z 94608bc PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ClodoCapeo

Copy link
Copy Markdown
Member Author

AGENT_REPORT / MERGE_ATTESTATION — Eleven

Exact signed candidate: 94608bc4d3c0afbd8f8d9faceca8cc97583a4033. User explicitly authorized Solar push and merge. Current main 9dc261e8747ad07a294815b58adb442d546941fb is integrated. Repository permits squash only.

Local validation passed: 260 unit tests / 35 files, 5 tooling tests, lint, TypeScript, architecture/map/docs/file-size gates, exact native client provenance, actual Rust/native reference interoperability, full lib/host/HTML/server build and bundle/four Vision artifact pins. All seven actual-canvas controls passed on the rebuilt native host with one scene load and no reader errors.

Canonical report: evidence/local-20261010-sponsor-motion/eleven/20261010T130100Z-publication-checkpoint.md. Current runtime receipts linked there. The prior client-byte check failure is corrected by retaining exact upstream CRLF blobs with scoped Git attributes; hashes were not weakened. User accepted the final reference rotoscope; earlier interpretation remains rejected.

Final CI run 38054231072 passed (file-sizes, which includes native-client provenance, architecture and tooling checks). This is the available PR CI; full unit/build/runtime validation is local. Workspace guard passes and worktree is clean.

Merge this exact head via squash; verify GitHub signature and exact origin/main tree equality afterward. Keep the active demo and clean worktree/branch. No release tag/deployment or unrelated cleanup. Rollback by checked revert of the squash commit.

Agent-Role: Eleven
Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1
Work-Unit: local-20261010-sponsor-motion

@ClodoCapeo
ClodoCapeo merged commit 9c8f837 into main Oct 10, 2026
1 check passed
@ClodoCapeo
ClodoCapeo deleted the eleven/local-20261010-sponsor-motion branch October 10, 2026 13:05
@ClodoCapeo

Copy link
Copy Markdown
Member Author

CLOSURE_REPORT — Eleven

PR #79 merged via the repository's permitted squash method at 9c8f837d5049a54a61ff83aba1fe9e9c49c35b48. GitHub signature is verified (reason=valid). Fetched origin/main equals that SHA and its complete tree equals the exact signed candidate 94608bc4d3c0afbd8f8d9faceca8cc97583a4033 (git diff --quiet HEAD origin/main, exit 0).

Final PR CI run 38054231072 passed. Full local checks and native/actual-canvas evidence are in evidence/local-20261010-sponsor-motion/eleven/20261010T130100Z-publication-checkpoint.md: 260 unit tests, 5 tooling tests, real Rust reference interoperability, seven native canvas controls, full build/bundle and all four pinned Vision artifacts. Workspace guard passed.

Worktree is clean at candidate HEAD on eleven/local-20261010-sponsor-motion, path D:/Documents/Zab/Solar/.worktrees/eleven-local-20261010-sponsor-motion. Retained deliberately because its active demo is running at http://127.0.0.1:4590/ and this chat continues. Other worktrees and sessions preserved; no canonical checkout edits. No release tag or deployment. Rollback: checked revert of this squash commit.

Agent-Role: Eleven
Agent-Thread: 01a124c8-8595-7f01-92fd-bf0d24ba8bd1
Work-Unit: local-20261010-sponsor-motion

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 94608bc4d3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 397 to +398
const geometryBindings = prepareEditableBindings(variant);
const animationBindings = prepareAnimationBindings(variant);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Chain editable positions through animation aliases

When an animated node also uses bindAnimate["transform.translate"], this ordering first binds its coordinates to __solar.geometry.* and then replaces those bindings with __solar.animation.*, recording the geometry leaves as aliases. However, projectState resolves animation aliases against the original state rather than the geometry-projected result, so later updates to the authored position only patch the now-unbound geometry leaves and the animated node stays at its old coordinates. The projection must chain the generated geometry values into the animation aliases.

Useful? React with 👍 / 👎.

Comment on lines +479 to +483
if (item.animation !== undefined) {
const plan = compile(item.animation, depth + 1);
return {
duration: delay + plan.duration,
clips: plan.clips.map((c) => ({ ...c, start: c.start + delay })),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Enforce the composed-plan duration limit on wrappers

A reference wrapper can add up to 600,000 ms to a child plan that is already 600,000 ms, and nested wrappers can repeat this up to the depth limit without hitting the composition check below. Leaf delay_ms + duration_ms has the same gap. Such accepted plans exceed the documented ten-minute bound and keep the requestAnimationFrame playback loop active for hours, especially when iterations are requested; validate the resulting duration before returning every plan type.

Useful? React with 👍 / 👎.

Comment on lines +28 to +30
const url = new URL(base.href);
url.pathname += `/${encodeURIComponent(sceneId)}`;
url.searchParams.set("version", request.sceneVersion);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Normalize trailing slashes before appending the scene ID

If the configured local endpoint ends in /, which is otherwise accepted, this concatenation requests a path such as /solar-sources//scene-id. Servers with an exact /solar-sources/:id route will return 404, causing this provider to fall back to Canvas and making the local library unavailable when offline. Strip trailing slashes or resolve the scene segment relative to a normalized base.

Useful? React with 👍 / 👎.

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