openvibers/openvibe.codes Commits

Motion: Calm reduces, only Off stops (#359)

OP OpenVibers committed 3 days ago · 42514946a3 · 6 files, +12 −17

* Bump openvibe-shared v4.179.0 → v4.183.0

The pin and the lockfile only (ov bump, no model). CI's pin-drift check failed on v4.179.0.

* Motion: Calm reduces, only Off stops

Delete the four rules that stopped the hello rise, the spark rail and the setup bar under reduced motion; the spark rail's finished states belong to html[data-ov-motion=off], and its two calmer variants stay under Calm.

* Pin: name openvibe-shared 4.183.0 in README and STATUS

Changes

ddiff --git a/README.md b/README.md
iindex 2e4d146..5965ef5 100644
---- a/README.md
++++ b/README.md
@@@ -182,5 +182,5 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [
<!-- versions:start -->
- openvibe-contracts: v0.384.0
- openvibe-sdk: v0.133.0
--- openvibe-shared: v4.179.0
++- openvibe-shared: v4.183.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 9d91bdc..6528e41 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -9,11 +9,11 @@
"domain": "openvibe.codes",
"contracts": "openvibe-contracts v0.384.0",
"sdk": "openvibe-sdk v0.133.0",
-- "shared": "openvibe-shared v4.179.0",
++ "shared": "openvibe-shared v4.183.0",
"packages": [
"openvibe-contracts v0.384.0",
"openvibe-sdk v0.133.0",
-- "openvibe-shared v4.179.0"
++ "openvibe-shared v4.183.0"
],
"summary": "Public at https://openvibe.codes (sudo ovhost deploy codes; unit openvibe-codes on 127.0.0.1:4900). Since 2026-10-08 Codes is the open coding-agent harness: openvibe-codes (a command-line tool and Node.js module, v0.5.2) runs a coding task on Claude Code, Claude Code on another provider, Codex, OpenCode, Command Code, MiniMax Code, Aider, the DeepSeek API or a person's own OpenAI-compatible model on their machine, hands it to the next agent when one fails or goes quiet, and keeps every run; the site carries the agent catalog with a public routing API, getting started, Improve OpenVibe and the community documents. The developer console that used to live here moved to OpenVibe.Services (https://openvibe.services) and every one of its addresses answers a permanent redirect there.",
"works": [
ddiff --git a/package-lock.json b/package-lock.json
iindex bdf6362..e8aa4ca 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -17,7 +17,7 @@
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
"pg": "^8.23.0"
},
"bin": {
@@@ -1193,9 +1193,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.179.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
-- "integrity": "sha512-Fjffjq3gLINhiXTqQJwsKQT/QbV4TYvsmz6GTp5hBJ8xA6KUQgu0wDgCQ3BRxCZ0ehmn0HGVAHUI+5m0LtPQCQ==",
++ "version": "4.183.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
++ "integrity": "sha512-vp9gg++Dhyj3h0cwvBjujM6dSFYoeXdh1UXdZ6OXP/NjG672Fs7uRANV4MjT467JtFDN7r7qLI3OJAwGQxOuQw==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex f6712a9..109bd64 100644
---- a/package.json
++++ b/package.json
@@@ -32,7 +32,7 @@
"iovalkey": "^0.4.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.179.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
"pg": "^8.23.0"
},
"engines": {
ddiff --git a/public/css/chat.css b/public/css/chat.css
iindex 4734331..95dcf96 100644
---- a/public/css/chat.css
++++ b/public/css/chat.css
@@@ -147,8 +147,8 @@ details[open]>summary .ch-caret{rotate:180deg}
.ch-on{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-weight:600;color:var(--ch-ok)}
.ch-on::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
/* The ideas rail, under the composer: it drifts sideways and stops under a pointer, the keyboard or its own pause.
-- Two copies make the loop seamless; the second is hidden from assistive tech and the keyboard. Calm motion (either
-- preference) makes it a still row that scrolls by hand. */
++ Two copies make the loop seamless; the second is hidden from assistive tech and the keyboard. Motion off
++ makes it a still row that scrolls by hand; Calm keeps the drift, slower. */
.ch-spark{display:flex;align-items:center;gap:4px;max-width:780px;margin:12px auto 0}
.ch-spark-view{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ch-spark-track{display:flex;width:max-content;animation:ch-drift var(--ch-drift,80s) linear infinite}
@@@ -162,10 +162,8 @@ details[open]>summary .ch-caret{rotate:180deg}
.ch-spark-pause .ch-i{width:15px;height:15px}
.ch-spark .ch-i-play,.ch-spark.is-paused .ch-i-pause{display:none}
.ch-spark.is-paused .ch-i-play{display:block}
--@media (prefers-reduced-motion:reduce){.ch-spark-track{animation:none}.ch-spark-view{overflow-x:auto;scrollbar-width:none}.ch-spark-list[aria-hidden]{display:none}.ch-spark-pause{display:none}.ch-dot.is-busy{animation:none}}
--html[data-ov-motion=reduced] .ch-spark-track{animation:none}
--html[data-ov-motion=reduced] .ch-spark-view{overflow-x:auto;scrollbar-width:none}
--html[data-ov-motion=reduced] .ch-spark-list[aria-hidden],html[data-ov-motion=reduced] .ch-spark-pause{display:none}
++html[data-ov-motion=off] .ch-spark-view{overflow-x:auto;scrollbar-width:none}
++html[data-ov-motion=off] .ch-spark-list[aria-hidden],html[data-ov-motion=off] .ch-spark-pause{display:none}
/* The workspace's other pages (Agents, Machines, Usage, Settings…) in the conversation's place: they keep their own
heading, so the head above them is only the phone's way to the rail. */
@@@ -224,7 +222,6 @@ html[data-ov-motion=reduced] .ch-spark-list[aria-hidden],html[data-ov-motion=red
@media (max-width:520px){.ch-mode{padding:0 8px}.ch-mode:not(:has(input:checked)) .ch-mode-i{display:inline-grid}}
.ch-hello h1>span{animation:ch-ask-in .28s cubic-bezier(.2,.9,.3,1) both}
@keyframes ch-ask-in{from{opacity:0;transform:translateY(4px)}}
--@media (prefers-reduced-motion:reduce){.ch-hello h1>span{animation:none}}
/* Motion (ask 40, 11-09, the owner: "more fluid… transitions… custom animations… resize"): one highlight slides between the
three modes, each mode's own parts rise in as they appear, and the ideas cross-fade when their set changes. Calm keeps
@@@ -242,4 +239,3 @@ transition:transform .34s cubic-bezier(.2,.9,.25,1.12),width .34s cubic-bezier(.
@keyframes ch-fade{from{opacity:0}}
html[data-ov-motion=reduced] .ch :is(.ch-for-new,.ch-for-openvibe,.ch-for-code){animation-name:ch-fade;animation-duration:.2s}
html[data-ov-motion=reduced] .ch-modes.has-glide::before{transition-duration:.18s;transition-timing-function:ease}
--@media (prefers-reduced-motion:reduce){.ch :is(.ch-for-new,.ch-for-openvibe,.ch-for-code){animation-name:ch-fade;animation-duration:.15s}.ch-modes.has-glide::before{transition-duration:.12s}}
ddiff --git a/public/css/setup.css b/public/css/setup.css
iindex 4abc3cf..f8247cd 100644
---- a/public/css/setup.css
++++ b/public/css/setup.css
@@@ -62,4 +62,3 @@
.c4-setup-agent-help{padding-left:0}
.c4-setup-actions>.c4-button,.c4-setup-actions>.c4-opill{flex:1 1 auto;justify-content:center}
}
--@media (prefers-reduced-motion:reduce){.c4-setup-bar>span{transition:none}}