openvibers/openvibe.shared Commits

4.122.0: a thread start page keeps its head at the top (#307)

OP OpenVibers committed 6 days ago · 832e83cc2b · 6 files, +14 −9

* 4.122.0: a thread start page keeps its head at the top on wide screens

* Merge remote-tracking branch 'origin/main' into fix/thread-start-head-top

# Conflicts:
#	CHANGELOG.md
#	README.md
#	STATUS.json
#	package-lock.json
#	package.json

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 5a191ed..b1e6f77 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,9 @@
# Changelog
++## 4.122.0 — 2026-11-06
++
++- A thread start page (`page({ center })`) keeps its head at the top on wide screens: only the welcome and the composer are centred, by auto margins. Centring the whole column floated the head into the middle of a tall screen above an empty band (seen on openvibe.exchange/chat at 1280 px). Phones are unchanged.
++
## 4.121.0 — 2026-11-06
- **The Dock's agent view works in the window too** (Dock K-D4, on K-D3). The pop-out keeps the Agents tab's stream:
ddiff --git a/README.md b/README.md
iindex bb68c38..4ce38ea 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Versioned UI, the OpenVibe Frame (the navbar, footer and "shipped" views every site sits in), SEO, legal and release-client packages every OpenVibe site renders.
--**Status:** alpha, v4.121.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
++**Status:** alpha, v4.122.0 (every release is a tag; see [CHANGELOG.md](CHANGELOG.md)). Every deployed
consumer installs a tagged release and none keeps a vendored copy
([docs/migration-plan.md](docs/migration-plan.md) is done); each repository's `package.json` names
the tag it pins.
ddiff --git a/STATUS.json b/STATUS.json
iindex 3d74727..1cd411d 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -4,7 +4,7 @@
"code": true,
"wave": "W2",
"package": "openvibe-shared",
-- "version": "4.121.0",
++ "version": "4.122.0",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"deployed": false,
"deployment": "none of its own: a package released as git tags; OpenVibe.Network serves /shared/* from its pinned tag, and a site can serve its own pinned copy (openvibe-shared/serve)",
ddiff --git a/package-lock.json b/package-lock.json
iindex 33a8813..0a9c121 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-shared",
-- "version": "4.121.0",
++ "version": "4.122.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-shared",
-- "version": "4.121.0",
++ "version": "4.122.0",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex 5a9675a..4b9ab2d 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-shared",
-- "version": "4.121.0",
++ "version": "4.122.0",
"description": "Shared navbar, footer, themes, icons, legal pages, SEO, auth and analytics for every OpenVibe site",
"main": "index.js",
"bin": {
ddiff --git a/thread.css b/thread.css
iindex 5accf60..8a2478b 100644
---- a/thread.css
++++ b/thread.css
@@@ -176,11 +176,12 @@ html[data-ov-motion=reduced] .ovt-answer.is-revealing .ovt-sw { opacity: 1 !impo
.ovt-card-btn.is-quiet:hover { background: var(--bg-hover, color-mix(in srgb, var(--text-primary, #fff) 6%, transparent)); filter: none; }
/* A start page (page({ center })): the welcome and the composer together in the middle, not the composer at the bottom. */
--.ovt.is-start .ovt-main { justify-content: center; }
--.ovt.is-start .ovt-scroll { flex: none; padding-bottom: 4px; }
++/* The head stays at the top; only the welcome and the composer are centred, by auto margins (centring the whole column
++ floated the head into the middle of a tall screen, above an empty band). */
++.ovt.is-start .ovt-scroll { flex: none; padding-bottom: 4px; margin-top: auto; }
.ovt.is-start .ovt-empty-state { margin-top: 0; }
--.ovt.is-start .ovt-dock { position: static; background: none; padding-bottom: max(24px, env(safe-area-inset-bottom, 0px)); }
--@media (max-width: 760px) { .ovt.is-start .ovt-main { justify-content: flex-start; } .ovt.is-start .ovt-empty-state { margin-top: 4vh; } }
++.ovt.is-start .ovt-dock { position: static; background: none; padding-bottom: max(24px, env(safe-area-inset-bottom, 0px)); margin-bottom: auto; }
++@media (max-width: 760px) { .ovt.is-start .ovt-scroll { margin-top: 0; } .ovt.is-start .ovt-dock { margin-bottom: 0; } .ovt.is-start .ovt-empty-state { margin-top: 4vh; } }
/* A plain page in the conversation's place (page({ main })). */
.ovt-page { max-width: 980px; width: 100%; box-sizing: border-box; margin: 0 auto; }