v6.0 — rename to Open Visualization Engine (AVA→OVE) + footer version stamp
This commit is contained in:
parent
df39d16b61
commit
1538e83222
7 changed files with 79 additions and 15 deletions
|
|
@ -2,6 +2,7 @@ import type { Metadata } from "next";
|
||||||
import { Geist, Geist_Mono } from "next/font/google";
|
import { Geist, Geist_Mono } from "next/font/google";
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { Toaster } from "@/components/ui/toaster";
|
import { Toaster } from "@/components/ui/toaster";
|
||||||
|
import { APP_NAME, APP_SHORT, APP_VERSION } from "@/lib/version";
|
||||||
|
|
||||||
const geistSans = Geist({
|
const geistSans = Geist({
|
||||||
variable: "--font-geist-sans",
|
variable: "--font-geist-sans",
|
||||||
|
|
@ -14,10 +15,10 @@ const geistMono = Geist_Mono({
|
||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "AVA — Advanced Visualization Agent",
|
title: `${APP_SHORT} — ${APP_NAME} (v${APP_VERSION})`,
|
||||||
description:
|
description:
|
||||||
"Audio-reactive visualization agent for clubs: 3-band spectrum detection, predictive beat tracking and AVS-style visualization scripting.",
|
"Open Visualization Engine: audio-reactive visuals for clubs — 3-band spectrum detection, predictive beat tracking and AVS-style visualization scripting.",
|
||||||
keywords: ["AVA", "visualization", "VJ", "audio-reactive", "beat detection", "AVS", "Winamp"],
|
keywords: ["OVE", "visualization", "VJ", "audio-reactive", "beat detection", "AVS", "Winamp"],
|
||||||
icons: {
|
icons: {
|
||||||
icon: "/logo.svg",
|
icon: "/logo.svg",
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
// AVA — sticky footer status bar: micro-stats + engine health.
|
// OVE — sticky footer status bar: micro-stats + version stamp + engine health.
|
||||||
|
|
||||||
'use client'
|
'use client'
|
||||||
|
|
||||||
import { useAvaStore } from '@/lib/store'
|
import { useAvaStore } from '@/lib/store'
|
||||||
|
import { APP_NAME, APP_VERSION } from '@/lib/version'
|
||||||
import { cn } from '@/lib/utils'
|
import { cn } from '@/lib/utils'
|
||||||
|
|
||||||
export function FooterBar() {
|
export function FooterBar() {
|
||||||
|
|
@ -45,7 +46,15 @@ export function FooterBar() {
|
||||||
SCRIPT: <span className="ml-1 truncate text-zinc-300">{scriptName}</span>
|
SCRIPT: <span className="ml-1 truncate text-zinc-300">{scriptName}</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span className={cn('ml-auto flex shrink-0 items-center gap-1.5', error ? 'text-rose-400' : 'text-emerald-400')}>
|
{/* version stamp (left of the engine-health dot) + engine health */}
|
||||||
|
<div className="ml-auto flex shrink-0 items-center gap-3 sm:gap-4">
|
||||||
|
<span
|
||||||
|
className="text-zinc-600"
|
||||||
|
title={`${APP_NAME} — version ${APP_VERSION}`}
|
||||||
|
>
|
||||||
|
version {APP_VERSION}
|
||||||
|
</span>
|
||||||
|
<span className={cn('flex items-center gap-1.5', error ? 'text-rose-400' : 'text-emerald-400')}>
|
||||||
<span
|
<span
|
||||||
className={cn(
|
className={cn(
|
||||||
'size-1.5 rounded-full',
|
'size-1.5 rounded-full',
|
||||||
|
|
@ -56,6 +65,7 @@ export function FooterBar() {
|
||||||
<span className="text-zinc-400">{error ? 'script error' : 'engine ok'}</span>
|
<span className="text-zinc-400">{error ? 'script error' : 'engine ok'}</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import { BeatDot } from '@/components/ava/beat-dot'
|
||||||
import { LinkDialog } from '@/components/ava/link-dialog'
|
import { LinkDialog } from '@/components/ava/link-dialog'
|
||||||
import { tapBeat, useAudioSource } from '@/components/ava/audio-source'
|
import { tapBeat, useAudioSource } from '@/components/ava/audio-source'
|
||||||
import { useAvaStore } from '@/lib/store'
|
import { useAvaStore } from '@/lib/store'
|
||||||
|
import { APP_NAME, APP_SHORT } from '@/lib/version'
|
||||||
import { cn } from '@/lib/utils'
|
import { cn } from '@/lib/utils'
|
||||||
|
|
||||||
function SourceSegmentButton({
|
function SourceSegmentButton({
|
||||||
|
|
@ -149,9 +150,9 @@ export function AppHeader() {
|
||||||
<AudioWaveform className="size-5 text-zinc-950" aria-hidden />
|
<AudioWaveform className="size-5 text-zinc-950" aria-hidden />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-base font-bold leading-none tracking-wide">AVA</h1>
|
<h1 className="text-base font-bold leading-none tracking-wide">{APP_SHORT}</h1>
|
||||||
<p className="mt-1 hidden text-[10px] leading-none tracking-[0.14em] text-zinc-500 sm:block">
|
<p className="mt-1 hidden text-[10px] leading-none tracking-[0.14em] text-zinc-500 sm:block">
|
||||||
ADVANCED VISUALIZATION AGENT
|
{APP_NAME.toUpperCase()}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
16
src/lib/version.ts
Normal file
16
src/lib/version.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
// OVE — app identity + version stamp.
|
||||||
|
//
|
||||||
|
// Single source of truth for the product name and version shown in the UI
|
||||||
|
// (header, footer, document title). Bump APP_VERSION whenever we ship a
|
||||||
|
// large change so the running build can always be identified at a glance —
|
||||||
|
// useful both for the z.ai Version History and for naming local backups
|
||||||
|
// (v6.0 = rename to Open Visualization Engine + version indicator).
|
||||||
|
//
|
||||||
|
// History:
|
||||||
|
// 6.0 — renamed to "Open Visualization Engine" + footer version stamp
|
||||||
|
// 5.0 — folder-tree Presets page (Task 9–11 state, restored in Task 12)
|
||||||
|
// 4.0 — link audio source (yt-dlp resolve + stream proxy)
|
||||||
|
|
||||||
|
export const APP_NAME = 'Open Visualization Engine'
|
||||||
|
export const APP_SHORT = 'OVE'
|
||||||
|
export const APP_VERSION = '6.0'
|
||||||
BIN
tool-results/ove-v6-desktop.png
Normal file
BIN
tool-results/ove-v6-desktop.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
tool-results/ove-v6-mobile.png
Normal file
BIN
tool-results/ove-v6-mobile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
36
worklog.md
36
worklog.md
|
|
@ -728,3 +728,39 @@ Stage Summary:
|
||||||
now matches the archive's HEAD (2a23db4) on top of the current workspace.
|
now matches the archive's HEAD (2a23db4) on top of the current workspace.
|
||||||
- NOTE for the future: commit snapshots are the source of truth when an
|
- NOTE for the future: commit snapshots are the source of truth when an
|
||||||
environment rebuild is suspected — compare git log before re-implementing.
|
environment rebuild is suspected — compare git log before re-implementing.
|
||||||
|
|
||||||
|
---
|
||||||
|
Task ID: 13
|
||||||
|
Agent: main (Z.ai Code)
|
||||||
|
Task: v6.0 — rename to "Open Visualization Engine" (AVA → OVE) + footer
|
||||||
|
version indicator (establishes the versioning convention)
|
||||||
|
|
||||||
|
Work Log:
|
||||||
|
- New src/lib/version.ts — single source of truth: APP_NAME
|
||||||
|
"Open Visualization Engine", APP_SHORT "OVE", APP_VERSION "6.0" + a
|
||||||
|
short version-history comment (6.0 rename+stamp, 5.0 folder-tree, 4.0
|
||||||
|
link source) so future bumps are a one-line change.
|
||||||
|
- src/app/layout.tsx — document title now "OVE — Open Visualization Engine
|
||||||
|
(v6.0)" (built from the constants); description + keywords updated
|
||||||
|
(AVA→OVE, "agent"→"engine").
|
||||||
|
- src/components/ava/header.tsx — logo block h1 "AVA" → "OVE" (APP_SHORT),
|
||||||
|
subtitle "ADVANCED VISUALIZATION AGENT" → "OPEN VISUALIZATION ENGINE"
|
||||||
|
(APP_NAME.toUpperCase()), both imported from version.ts.
|
||||||
|
- src/components/ava/footer-bar.tsx — right cluster is now a ml-auto wrapper
|
||||||
|
holding: "version 6.0" stamp (text-zinc-600, tooltip "Open Visualization
|
||||||
|
Engine — version 6.0") immediately LEFT of the engine-ok dot + label,
|
||||||
|
exactly as requested. Stamp is visible on mobile too (fits: no horizontal
|
||||||
|
scroll at 390px).
|
||||||
|
- Internal code identifiers (ava store/lib/component paths, ava-agent rust
|
||||||
|
crate) intentionally left unchanged — the rename is user-facing only.
|
||||||
|
- VERIFIED in agent-browser: title "OVE — Open Visualization Engine (v6.0)";
|
||||||
|
header logo/subtitle; footer text "...version 6.0\nengine ok" with the
|
||||||
|
stamp on the same row, right of the stats, left of the dot; mobile 390×844
|
||||||
|
no horizontal scroll + stamp visible; zero console/page errors; lint clean.
|
||||||
|
- Committed as "v6.0 — rename to Open Visualization Engine + version stamp".
|
||||||
|
|
||||||
|
Stage Summary:
|
||||||
|
- Versioning convention established: bump APP_VERSION in src/lib/version.ts
|
||||||
|
on every large change; the stamp renders bottom-right of the footer and the
|
||||||
|
document title carries it too. Users can name local backups by the stamp
|
||||||
|
(e.g. "OVE v6.0") and cross-check against z.ai Version History.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue