Skip to content

release/v3.8.x - #18413

Open
shahass92-commits wants to merge 24 commits into
cheaper-inference:release/v3.8.53from
shahass92-commits:release/v3.8.53
Open

shahass92-commits wants to merge 24 commits into
cheaper-inference:release/v3.8.53from
shahass92-commits:release/v3.8.53

Conversation

@shahass92-commits

@shahass92-commits shahass92-commits commented Oct 28, 2026 •

Copy link
Copy Markdown

Summary

  • Describe the user-facing or operational change.

Related Issues

  • Closes #
  • Related to #

Target Branch

See the Release Strategy, the
Contribution Golden Path and the
ROADMAP:

  • Base is the active release/v3.8.x branch (the highest open release/v*), not main
  • New feature? From 3.8.55 on it is held with the v4-feature label for the v4 channel
  • Focused templates: append ?template=feature.md or ?template=bugfix.md to the compare URL

Validation

Choose the change type and focused loop from the
Contribution Golden Path. The full unit suite,
Vitest, the 60% coverage gate, and the production build all run in CI on this PR (#8329):

  • Change type: provider / routing / UI / i18n / CLI / DB / build-deploy / other
  • Focused tests and category gates from the golden path
  • npm run lint
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR
  • SonarQube is temporarily opt-in while the private project has no quota; it is not a PR gate.

Tests Added Or Updated

  • List every changed or added automated test file.
  • If no production code changed, state that here.

Coverage Notes

  • If this PR changes src/, open-sse/, electron/, or bin/, explain which tests cover the change.
  • If coverage moved down in any touched file, explain why and what follow-up task will recover it.

Reviewer Notes

  • Call out any risky areas, migrations, feature flags, or manual validation that reviewers should know about.

claude and others added 21 commits October 27, 2026 17:58
Install gsap@^3.15.0 (https://github.com/greensock/GSAP) as a production
dependency for dashboard UI animation. The single package ships the core
plus every plugin (ScrollTrigger, Flip, SplitText, MorphSVG, Draggable,
Observer, ...), registered at use sites via gsap.registerPlugin().

- package.json / package-lock.json: add gsap 3.15.0 (lockfile updated
  with npm 11 so existing libc metadata is preserved)
- dependency-allowlist.json: allow gsap for the check:deps gate
- .license-allowlist.json: register an exception for GSAP's non-SPDX
  Standard "no charge" license (license-checker reports it as
  "Custom: https://gsap.com/standard-license.")
…ds7s

feat(dashboard): add gsap animation library dependency
Add src/shared/lib/gsap.ts as the single GSAP entry point: it registers
ScrollTrigger once and re-exports gsap and ScrollTrigger, so components
import from "@/shared/lib/gsap" instead of "gsap" and always get the
plugin registered.

The module is safe to evaluate during SSR: without a window, ScrollTrigger
defers its setup, so registration takes effect when the module runs in
the browser.

Tests:
- tests/unit/gsap-setup.test.tsx (jsdom): ScrollTrigger is registered on
  import (fails if the registerPlugin call is removed)
- tests/unit/shared/gsap-setup-ssr.test.ts (node): importing without a
  window does not throw and leaves ScrollTrigger unregistered
…ds7s

feat(dashboard): add shared GSAP setup with ScrollTrigger registered
Package the MIT-licensed cinematic-ui skill (akseolabs-seo/cinematic-ui
at 24a66c1) as a Claude Code plugin under contrib/claude-plugins/, and
declare this repository as a plugin marketplace so it installs with:

  claude plugin marketplace add shahass92-commits/omniroute \
    --sparse .claude-plugin contrib/claude-plugins
  claude plugin install cinematic-ui@shahass92-plugins

- .claude-plugin/marketplace.json: marketplace "shahass92-plugins" with
  one entry pointing at ./contrib/claude-plugins/cinematic-ui
- contrib/claude-plugins/cinematic-ui/.claude-plugin/plugin.json:
  manifest; "skills": ["./"] makes the plugin folder the skill
- SKILL.md: upstream text, with "Primary Platforms" (manual install
  paths, other agents' files) replaced by "Plugin Notes", which resolve
  references/ via ${CLAUDE_SKILL_DIR} and require pinned CDN versions
- references/, LICENSE: copied unchanged from upstream
- README.md: install, usage, contents, changes from upstream, resync
- .prettierignore: keep the vendored SKILL.md and references/
  byte-identical to upstream (same reason as skills/*)

Checked with `claude plugin validate --strict` on the plugin and the
marketplace, and by installing from the local marketplace into a clean
HOME: the plugin loads one skill, cinematic-ui:cinematic-ui.
A cone-mode sparse checkout also includes the top-level files, so the
marketplace checkout is about 20 MB, not just the plugin folder. Also
document the #<branch> suffix for installing from a non-default branch;
both verified by installing from GitHub into a clean HOME.
Add a reusable <Reveal> client component (src/shared/components/Reveal.tsx)
built on the shared "@/shared/lib/gsap" setup: its content fades and
slides up the first time it scrolls into view.

- Respects the OS "reduce motion" setting via gsap.matchMedia: no tween
  and no ScrollTrigger are created when reduced motion is on.
- Cleans up on unmount (matchMedia revert kills the tween and trigger).
- clearProps drops the inline transform afterwards so fixed-position
  descendants are not trapped by a transformed ancestor.
- clamp() keeps the trigger reachable near the bottom of short pages, so
  content can never stay hidden.
- `as="section"` lets callers swap their own wrapper for <Reveal>.

Use it on the dashboard home: the Quick Start section and the provider
topology + recent requests grid (0.08s stagger). Reveal is imported
directly rather than via the shared components barrel so GSAP stays out
of bundles that do not use it.

Tests: tests/unit/Reveal.test.tsx (jsdom) covers rendering, the
reduced-motion no-op, the hidden initial state with one ScrollTrigger,
and cleanup on unmount (verified to fail when cleanup is removed).
…ds7s

feat(dashboard): reveal home cards on scroll with GSAP ScrollTrigger
…flow

The Datadog Synthetic tests workflow failed on every push and PR with
"Input required and not supplied: api_key" because the DD_API_KEY and
DD_APP_KEY repository secrets are not set yet.

- Compute a DD_KEYS_PRESENT flag (a boolean only, never the secret values)
  and, when either key is missing, pass with a ::notice:: that says which
  secrets to add instead of failing. Fork PRs, which never receive
  secrets, take the same path.
- Pass datadog_site from a DD_SITE repository variable (default
  datadoghq.com) so non-US1 Datadog accounts work without editing the
  file. The input is confirmed in the pinned action's action.yml (v1.4.0).
- Fix all 3 zizmor findings on this file: pin actions/checkout to the
  SHA the rest of the repo uses (v7.0.1), set persist-credentials: false,
  and restrict the token to `permissions: contents: read`.
- Formatted with Prettier (lint-staged formats *.yml).

Validation: actionlint clean; zizmor 1.25.2 (offline) reports 0 findings
for this file and the repo total drops 216 -> 213; the 12 workflow
scanning unit tests (105 cases) pass.
…-8blq5g

feat(skills): add cinematic-ui Claude Code plugin and marketplace
Add src/shared/lib/gsap.ts as the single GSAP entry point: it registers
ScrollTrigger once and re-exports gsap and ScrollTrigger, so components
import from "@/shared/lib/gsap" instead of "gsap" and always get the
plugin registered.

The module is safe to evaluate during SSR: without a window, ScrollTrigger
defers its setup, so registration takes effect when the module runs in
the browser.

Tests:
- tests/unit/gsap-setup.test.tsx (jsdom): ScrollTrigger is registered on
  import (fails if the registerPlugin call is removed)
- tests/unit/shared/gsap-setup-ssr.test.ts (node): importing without a
  window does not throw and leaves ScrollTrigger unregistered

(cherry picked from commit 8c0abf7)
Add a reusable <Reveal> client component (src/shared/components/Reveal.tsx)
built on the shared "@/shared/lib/gsap" setup: its content fades and
slides up the first time it scrolls into view.

- Respects the OS "reduce motion" setting via gsap.matchMedia: no tween
  and no ScrollTrigger are created when reduced motion is on.
- Cleans up on unmount (matchMedia revert kills the tween and trigger).
- clearProps drops the inline transform afterwards so fixed-position
  descendants are not trapped by a transformed ancestor.
- clamp() keeps the trigger reachable near the bottom of short pages, so
  content can never stay hidden.
- `as="section"` lets callers swap their own wrapper for <Reveal>.

Use it on the dashboard home: the Quick Start section and the provider
topology + recent requests grid (0.08s stagger). Reveal is imported
directly rather than via the shared components barrel so GSAP stays out
of bundles that do not use it.

Tests: tests/unit/Reveal.test.tsx (jsdom) covers rendering, the
reduced-motion no-op, the hidden initial state with one ScrollTrigger,
and cleanup on unmount (verified to fail when cleanup is removed).

(cherry picked from commit 4ea387f)
…flow

The Datadog Synthetic tests workflow failed on every push and PR with
"Input required and not supplied: api_key" because the DD_API_KEY and
DD_APP_KEY repository secrets are not set yet.

- Compute a DD_KEYS_PRESENT flag (a boolean only, never the secret values)
  and, when either key is missing, pass with a ::notice:: that says which
  secrets to add instead of failing. Fork PRs, which never receive
  secrets, take the same path.
- Pass datadog_site from a DD_SITE repository variable (default
  datadoghq.com) so non-US1 Datadog accounts work without editing the
  file. The input is confirmed in the pinned action's action.yml (v1.4.0).
- Fix all 3 zizmor findings on this file: pin actions/checkout to the
  SHA the rest of the repo uses (v7.0.1), set persist-credentials: false,
  and restrict the token to `permissions: contents: read`.
- Formatted with Prettier (lint-staged formats *.yml).

Validation: actionlint clean; zizmor 1.25.2 (offline) reports 0 findings
for this file and the repo total drops 216 -> 213; the 12 workflow
scanning unit tests (105 cases) pass.

(cherry picked from commit a843d92)
…stored tree)

The branch tip e3dd064 holds PR #6's original history, which was discarded
from release/v3.8.53 when the branch was reset to upstream. This merge records
it as a parent so the push stays a fast-forward; the tree is unchanged from the
restored commits on top of the current release/v3.8.53.
…ds7s

Restore GSAP setup, home-card Reveal, and Datadog skip lost in the release branch reset

@shahass92-commits shahass92-commits left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

completed

@shahass92-commits

Copy link
Copy Markdown
Author

activate

claude and others added 3 commits October 28, 2026 09:33
Brings in the 6 upstream commits the fork was missing (cheaper-inference#18358, cheaper-inference#18194,
cheaper-inference#18381, cheaper-inference#18380, cheaper-inference#18338, cheaper-inference#18253) with a normal merge, so the fork's own
commits (gsap + Reveal, Datadog skip, cinematic-ui plugin) are kept.
…ds7s

Sync fork with upstream cheaper-inference:release/v3.8.53 (6 commits)
@shahass92-commits
shahass92-commits marked this pull request as draft October 28, 2026 23:39
@shahass92-commits
shahass92-commits marked this pull request as ready for review October 28, 2026 23:40

@shahass92-commits shahass92-commits left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

complrated to all view

This branch has not been deployed

No deployments
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.

2 participants