Commit graph

29 commits

Author SHA1 Message Date
2f0ed4f657 v7.18.0: Zai-Magic preset 'Beautiful Spectrogram' (bgx scrolling spectrogram)
Twelfth hand-authored Zai-Magic preset: a true scrolling spectrogram as a
pure script -- bgx feedback slide moves the whole framebuffer left (the
time axis), persist 1 keeps the history locked, and a 64-bin vertical
write head at the right edge inks pink -> red -> orange -> yellow -> white
over a deep dark navy field that only leaves by scrolling off the left
edge. The per-frame ink is computed from the live stroke geometry (coats
= 1.12 + 1.604*wpx/segl; ink = 1.1/(coats*ratio)) so overlapping columns
accumulate to full palette strength at any fps, aspect or brush width,
with per-coat adds kept above 8-bit quantization. Half-second erase phase
drains the previous preset's framebuffer, 3s 15x fill sweep paints the
navy field, stage resizes replay the sweep. EMBEDDED_SEED_VERSION
7.14 -> 7.18.1; seed re-synced (107 presets).
2026-11-07 02:43:12 +00:00
597f442ec4 worklog: Task 50 — persistence stack re-verified intact; push still awaits operator credentials 2026-11-06 17:02:35 +00:00
bbbee3ce5d v7.17.0 — trueblack: opt-in subtractive tail on the trail fade; long-persist trails reach pure black (8-bit fixed-point wash swept by a -1/255/frame 'difference' fill), unblocking the Orange Burst bg* blow-out 2026-11-06 16:41:30 +00:00
062cd79952 v7.16.0 — presets tab rearranged: management panel on top, full-width tree below
User request: drop the side-by-side split so the 'Load Preset' section
sits on top at full width with no wasted height (even when a preset is
selected) and the preset tree below uses the whole section width, so
preset names never clip. Buttons pack into one compact grid row on
desktop (2x3 for a user folder; phones keep the old stacking); the tree
fills the tab body's leftover height on desktop (h-full flex chain,
420px cap only below lg); club-mode scope line + RANDOM/SEQUENCE pill
share one row. No logic changes. Worklog Task 48.
2026-11-06 08:40:11 +00:00
6dd7f7ead7 Merge origin/zai-dev — integrate operator's tracked .env/.env.ove (3286721)
The operator hand-pushed .env and .env.ove tracked while this task ran,
both with DATABASE_URL="file:./db/custom.db" — the relative form that
Prisma resolves against prisma/schema.prisma's directory, i.e. to
<repo>/prisma/db/custom.db, breaking the CLI (db push would silently
create a fresh empty database there) and the runtime (cannot open);
verified empirically. The merge keeps .env tracked per the operator's
explicit action (gitignore: !.env) and corrects DATABASE_URL in both
files to the portable file:../db/custom.db. The committed .env is held
byte-identical to .env.ove so dev.sh's self-heal copy never leaves a
dirty tree.
2026-11-06 08:02:42 +00:00
621bbc662c v7.15.3 — self-healing sandbox boot: tracked .env.ove + db seed + secrets/
Operator-authorized for the strictly private self-hosted Forgejo repo:
the env template (.env.ove), a baseline database snapshot
(db/custom.db.seed) and secrets/ now ride with the repo so sandbox
reprovisions can never wipe them. dev.sh self-heals at the very top
(before bun install): .env is restored from .env.ove whenever it lacks
OVE_DIRECTORY_API_KEY, and db/custom.db from the seed whenever it is
missing — verified end-to-end against a faithful reset simulation
(both [SELF-HEAL] restores fire, 106-preset library serves, directory
proxy authenticated, browser clean).

One evidence-driven deviation from the requested values: DATABASE_URL
is file:../db/custom.db, not file:./db/custom.db — Prisma resolves
relative SQLite paths against prisma/schema.prisma's directory, so the
./ form provably breaks both the CLI (would create a fresh empty db at
prisma/db/custom.db on every boot) and the runtime (cannot open); the
../ form is the portable equivalent and is documented in .env.ove's
header. secrets/ ships with a README documenting the house-cookie file
slots (the actual cookie exports are re-added by the operator).
2026-11-06 08:00:46 +00:00
737437a593 worklog: Task 46 — directory env + db recovery after sandbox reprovision
The Directory tab's NOT_CONFIGURED message was the sandbox disk reset
wiping the untracked .env (OVE_DIRECTORY_URL/API_KEY) — not repo
corruption. Credentials restored from the project's cards; the deleted
custom.db was recovered from the running process's file handles before
restart (106 presets, 8 folders, settings intact); poisoned Turbopack
cache cleared; dev server restarted via dev.sh. secrets/ house-account
cookies remain lost (graceful fallback) — flagged for manual restore.
No code changes.
2026-11-06 07:32:56 +00:00
4d5fba3977 v7.15.2 — footer Facebook page link + theme switch moved to Settings
The project's Facebook page (facebook.com/openvisengine) is now linked
from the footer's right-hand group beside the version stamp — icon-only
(lucide Facebook glyph), opens in a new tab, same hover/focus treatment
as the portfolio link. The light/dark tick switch moved out of the
header into the Settings tab's Appearance section as a 'Light / dark
mode' row above the base-theme cards — identical mechanics (checked =
white theme, unchecked = the visitor's stored dark base, both persist,
mount-guarded SSR). Header is one control lighter; every appearance
control now lives in one place. Verified in-browser: link attrs + icon,
toggle absent from header, flip round trips (outline -> light -> outline,
and purple -> light -> purple proving the stored-base tracking), What's
New shows 7.15.2, sticky footer + no overflow at 1280/375, console clean.
2026-11-06 07:17:18 +00:00
b08490e80e v7.15.1 — silence hold: beat detection & prediction freeze during silence
Sustained near-digital quiet on the overall level (< 0.006 for 300 ms,
sticky until a decisive 0.015) now places an immediate HOLD on the beat
tracker: nothing fires (real or predicted -- previously the predictor
kept faking beats for up to ~2 s into any silence), the tempo estimate
and confidence freeze exactly where they are, and beatphase freezes for
scripts instead of saturating at 'beat imminent'. Decisive audio
releases the hold instantly and the grid resumes from the phase the
audio went quiet (captured before the debounce window, so a
pause/resume keeps perfect time); after a hard cut the comb + first
real beats re-align within a couple of periods. 'Set Beat' taps release
the hold outright. Waveform/band data is never gated -- it still flows
(it is simply ~0, because the audio is gone).

- BeatFrame.silent carries the state; scripts get the silent variable
  (1 while held); the beat indicator shows an amber HOLD badge + amber
  phase ring while held.
- rust-agent/src/beat.rs + engine.rs: same gate ported for parity (its
  bass level doubles as the silence signal; NOT compile-verified -- no
  cargo in this sandbox).
- Verified: headless 26/26 assertions on the real BeatTracker (music ->
  silence -> in-phase resume -> onsetless pad -> tap; the pre-fix
  fake-beat window 12.8-15.5 s is empty) and browser E2E on the live
  app with a generated 120 BPM + silence looping WAV (HOLD badge tracks
  the silent spans exactly across two loop cycles; console clean).
2026-11-06 06:49:46 +00:00
Z User
5f1c03db31 e0315efb-ff50-4f97-ab76-b2f751e9b03b 2026-11-06 01:14:43 +00:00
Z User
b54841fabf c123beee-6c07-4660-8af8-d2ff1f89767c 2026-11-05 23:35:41 +00:00
Z User
5451c6ccdd cc601e21-85be-4466-9dee-d6199754c813 2026-11-05 22:47:32 +00:00
Z User
9cea959a52 v7.13.1 — Beat Matrix endpoint fix: full 16x10 grid, no phantom dot past the wall 2026-11-05 08:44:59 +00:00
Z User
05d2c626ca worklog: Task 40 — v7.13 merge of the parallel v7.12 line into the OVE-Directory build 2026-11-05 08:23:21 +00:00
Z User
1ea335a2fe 62fe0e7e-3025-47cc-bab0-d72875f1698e 2026-11-04 23:55:48 +00:00
Z User
1c1105da45 e7e98d75-c472-45a0-8363-2cc17e4e3f4e 2026-11-04 16:14:36 +00:00
Z User
80782609b2 133604ae-01f0-4bd7-96a5-69156cef7530 2026-10-29 10:04:00 +00:00
Z User
9e90f7ff8a 06aca6bb-9fee-4fa9-bcc4-7ce527f71121 2026-10-29 08:43:20 +00:00
Z User
04233da343 5b6b4fb9-90e5-4481-8fcf-ba664d43edb4 2026-10-29 08:32:21 +00:00
Z User
5be05e345e 35a1a517-8c44-4c6c-81f5-41b0ac639b76 2026-10-29 07:19:50 +00:00
Z User
df5e6e3374 v6.4 — beat detection suspends with no music (no ghost beats) + royal purple dark theme with light-yellow highlights 2026-10-28 07:45:43 +00:00
Z User
0e4d37e269 v6.3 — light/dark theme tick switch in the header 2026-10-27 08:22:36 +00:00
Z User
87b5a7fe34 v6.2 — read-only embedded library + per-visitor browser presets (anti-spam/anti-vandalism hardening) 2026-10-27 07:44:06 +00:00
Z User
f3fd5100d0 v6.1 — every embedded preset is now a unique visual: 16-family seeded stand-in generator, approx badges, version-gated library re-seed 2026-10-27 06:10:58 +00:00
Z User
1538e83222 v6.0 — rename to Open Visualization Engine (AVA→OVE) + footer version stamp 2026-10-26 21:19:50 +00:00
Z User
df39d16b61 Restore folder-tree Presets page (Tasks 9-11) from user's Google Drive archive — tree UI, folders/export/import APIs, 95 embedded presets, randomize, Save/Save As 2026-10-26 21:01:39 +00:00
Z User
4caaa3e9ce 51e07079-f9be-4ead-b2fd-3fd53f7b3f35 2026-10-26 20:45:47 +00:00
Z User
e8cab6a2be a039b0db-81ec-4ef2-82bd-9e2ad958af8c 2026-10-22 03:29:51 +00:00
Z User
28aebdf552 72185aef-7931-4dd9-a377-318054098118 2026-10-21 14:13:58 +00:00