jevstrudel.git / RELEASES.md
1# Release notes
2
3Newest first, one `##` heading per deploy: a version (`YYYY-MM-DD.N`), a
4dash, and a title, then a line per change a listener would notice. The site
5shows these in its update prompt, and `nix run .#deploy` refuses to publish
6until the newest one is not yet live (`website/src/jev/releases.mjs`).
7
8## 2026-10-05.1 — A new address: strudel.lmjtfy.fun
9- The site is now at strudel.lmjtfy.fun. The old address sends you there, to the same song or page.
10- Signed in at the old address? You arrive signed in. Passkeys are tied to an address, so your account asks you to add one for the new address: do it then, or the account cannot be reached once that session ends.
11- An AI app connected to the old address needs connecting again, at strudel.lmjtfy.fun/jev/mcp.
12- Volume, autoplay and your tally of agreeing with Jev are kept by the browser per address, so they start over.
13
14## 2026-10-04.4 — Seeking
15- A seek bar above Jev's booth, one cell per section: click a section and the song jumps to its first bar.
16- Back, or to a section Jev has already decided, is instant. Further ahead it buffers like a video that has not loaded: the song holds while Jev decides each section on the way, then jumps.
17
18## 2026-10-04.3 — Pause, volume, and lyrics on every song
19- ⏸ pause beside play: it holds the song exactly where it is, Jev and the lyrics included, and goes on from the same spot.
20- A volume slider beside play, with a mute button. It is remembered in your browser.
21- Every song shows its lyrics as it plays, not only COSMIC KNOT.
22
23## 2026-10-04.2 — Lyrics on screen
24- COSMIC KNOT shows its lyrics as it plays: the line being sung sits over the bottom of the code, each syllable lights up as it is sung, and a ball hops from one to the next.
25
26## 2026-10-04.1 — COSMIC KNOT
27- New song: COSMIC KNOT, words and brief by oASTEROIDo. Post-hardcore and math-rock: it floats, weightless, for its whole first half with the strain buried under the calm, then snaps in one hard cut into tapped guitars and the impact, and floats again, hollow. Jev holds the fuse: it decides whether the float takes one more breath before the edge, and how much of the hidden strain shows.
28- Its lines are sung on a tune by a new voice, not spoken on a chord.
29
30## 2026-10-03.1 — SNEK HISS
31- New song: SNEK HISS. AI-made music has an almost metallic hiss between 3 and 8 kHz, like a snake. The song hunts it band by band, finds it, and fixes it the way two 2026 papers do, until the last chorus is clean. Jev sets how much of the snake each section has.
32- Links to a listening party, a listener's song or a shared performance load again: they could fail to open their song.
33
34## 2026-09-27.2 — Autoplay keeps Jev on time
35- After autoplay moves to the next song, Jev arranges it again: every section after the first was playing its fallbacks.
36- On a first visit, the song you click is the one that plays, with its booth, request log and autoplay. It could play the welcome song instead.
37
38## 2026-09-27.1 — The jev panel, and everyone in it
39- Everything jevstrudel adds now lives in the jev panel on the left (☰ jev): songs, activity, listening, you, mcp and data. The header and the right panel are Strudel's again.
40- ⏭ next beside play: Jev picks another song for you from what you've played. The autoplay switch beside it plays Jev's next pick when a song ends.
41- Jev at work sits under the editor, always: the booth, the mixer, and a request log of everything Jev was asked, newest on top. No more popups.
42- A minimap beside the code, and the lines playing right now light up, in the editor and on the minimap.
43- Listening: see who's listening to what and how far through, 🎧 listen along to hear it in sync, and join live listening parties. "show me here" keeps you off the list.
44- A song's page shows its comments first, who has it open now, its parties, every take Jev played of it with ▶ replay, and a map of how Jev moves through it.
45- Every name is a link to that person's profile: their songs, comments, pitches and what they've been playing.
46- Activity tab: songs published and scored, comments, pitches, and every take played, as they happen.
47- Everyone's votes on "do you agree with Jev?": songs ranked by listeners beside Jev's ranking, and where listeners outvote it.
48- Vote for pitches, sort them by most voted, and see which song a pitch became.
49- Your plays are yours: "recently played" lists every take you played, with ▶ replay. Listeners' songs are recorded too.
50- Data tab: everything the site stores, for anyone to read. Only passkeys, sessions and sign-in codes are never shown.
51- Today's Jev budget shows in the booth. The mcp tab explains how to connect your own AI.
52- Release notes: every release is here, and the version at the jev panel's foot opens them.
53- Your AI knows Jev: the reference covers jev(), choice, score, noul and walk, and searching several words finds them all.
54
55## 2026-09-26.9 — ALL GREEN, and your AI can use the whole site
56- New song: ALL GREEN. Krug's JevLM plays Wordle live: it scans the words that still fit, spells its guess, and the tiles play the rhythm in 5/4. It ends when a row turns all green, or after six tries.
57- Your AI can now browse the sounds tab and ask Jev which sound fits what you describe.
58- Your AI can look up Strudel functions, change the editor's theme, font and keybindings, and read the console.
59- Your AI can play any song, ask Jev for one by mood, react 🔥/😴, vote in "do you agree with Jev?", and comment (screened by Jev).
60
61## 2026-09-26.4 — Connecting your AI works from a visited site
62- Connecting an AI app no longer shows the song browser instead of the sign-in and consent page, after the site had been visited once.
63
64## 2026-09-26.3 — Make songs with your own AI
65- Make songs with your own AI: connect Claude Code, Claude, or any MCP client at /ai/. It plays in your open tab, in a sandbox, and can publish songs for Jev to screen.
66- Your account panel lists your connected AI apps, each with a disconnect button.
67- When your AI plays in a tab, the header shows 🤖 and the tab's id.
68- Jev can no longer loop a groove or a drop until a song runs out: each loop goes round once more at most (nine songs).
69- Jev picks each next section knowing how the last ones were arranged (which parts played, the transitions and the energy), so it can build and release.
70- Borrow Checker Blues: Jev now arranges the opening too.
71- Emergency Meeting: the last 'Jev is not the impostor' is as loud as the first.
72
73## 2026-09-26.2 — Share links open the right song
74- A shared performance or listening-party link now opens its own song; after the site had been visited once, it opened LIGHTNING IN A BOTTLE instead.
75
76## 2026-09-26.1 — Sign in, listen together, publish your own
77- Sign in with a passkey (no password, no email): your Jev calls get a daily budget of your own, and the radio remembers what it played for you on every device.
78- 🔥/😴 now count for everyone: a song's page shows how every listener reacted to each section, and Jev hears it when choosing.
79- "Share this performance": when a song ends, or you stop it after its opening, the booth gives you a link that replays exactly what Jev chose, with no new Jev calls.
80- Listen together: start a listening party from a song's page and share the link. Everyone hears the same song with the same Jev, in time, even joining mid-song, and everyone's 🔥/😴 reaches Jev.
81- Publish your own songs: signed in, the jev tab publishes the code in the editor as your song, with revisions and a cover, scored by the same art critic as the site's songs.
82- Comments on every song, and a place to pitch Jev a song idea.
83- Jev reads everything before it's shown. Your own posts show whether they're public, held (and why) or still waiting.
84- "Is it art?" works on every song again; most had grown too long for it.
85- A listener's song now plays in an isolated sandbox, apart from the page and your account: its code can't read your session, comment or publish as you, or spend your Jev budget.
86- Code opened from a share link plays in the same sandbox, since it's someone else's too.
87- A line above the editor says when what's loaded is a listener's code and what the sandbox leaves out.
88- Listeners' songs still play with their samples, and Jev still arranges them — just anonymously.
89
90## 2026-09-25.4 — Jev listens closer
91- A limiter on the master: no song can clip, whatever Jev does to the levels.
92- Jev is only asked about parts that actually play in a section; the mixer greys out the rest.
93- Jev no longer copies his own past transitions, so fills, risers and dropouts come back.
94- A part set to "back" is always heard, at half volume.
95- Art scores are now the average of three verdicts, so the order of the song list holds still.
96- "Do you agree with Jev?" votes are now counted anonymously across everyone who votes.
97
98## 2026-09-25.3 — Every song reviewed
99- The rest of the library is reviewed and remixed, and no song clips any more: SELECT * FROM JEV, OPTION ORDER, EMERGENCY MEETING, LIGHTNING IN A BOTTLE, SYSTEM ONE and TASK FAILED SUCCESSFULLY.
100- OPTION ORDER's chorus now asks the same question twice with the options swapped, and the answer flips.
101- SYSTEM ONE's loading chime is the real Windows chime.
102- Sung "Jev" lines are re-voiced so they're heard as Jev, not Jeff.
103- If a call to Jev drops, it's tried again before the section gives up on it.
104- The song list is sorted by Jev's art score, highest first.
105
106## 2026-09-25.2 — Jev on time
107- Jev now decides the opening too: he's asked before the first bar, so the intro no longer always plays at full.
108- When Jev's answer arrives after a section has started, it plays from the next bar instead of being thrown away for the whole section.
109- A song's samples load before it starts, so no line or hit is dropped the first time you hear it.
110- When an answer is late, the section's tooltip says when it was asked and when it arrived.
111- MINIMAX WAS RIGHT THERE reviewed and remixed: no clipping, a clearer hook and a riff of its own.
112
113## 2026-09-25.1 — Jev at the desk
114- New: Jev's mixer under the editor. Faders, knobs and level meters for every part Jev controls, gliding to each new setting as a section starts; a dashed outline shows where they go next.
115- The welcome tab is now called "jev". Picking a song opens it in place, with its art breakdown and spec, and a breadcrumb back to the list.
116- Jev's booth now sits under the header, and scrolls along to the newest section as the song plays.
117- A song card's art breakdown now appears only when you point at its "% art" pill.
118- A link to a song now plays that song when you open it, even in a tab that has already played something, and opens on the song's page.
119- When Jev can't answer, a section's tooltip now says why.
120- A transition no longer switches halfway through its bar when Jev's answer arrives late.
121- Jev hears the mix more accurately: every sample is measured, not a snapshot.
122- Seven songs reviewed and remixed, and none of them clips any more: HEY! LISTEN!, TYPESAFE JUNGLE, TOO CHEAP TO METER, YOU'VE GOT JEV, BORROW CHECKER BLUES, FORTY-FIVE PERCENT and ELEVEN THOUSAND VOLUMES.
123- HEY! LISTEN! has new, clearer lines, and the drums no longer bury the chiptune.
124- TYPESAFE JUNGLE now spells it out: "My name is Jev. J, E, V." Its stabs are in tune.
125- TOO CHEAP TO METER's "Gate the sudo command" is re-sung so it can be heard, and the second verse plays on every path.
126- YOU'VE GOT JEV has a real dial-in, and each hook plays once.
127- FORTY-FIVE PERCENT sings every line, over a real hum loop.
128- ELEVEN THOUSAND VOLUMES rations its "Yes.", staggering it in and out instead of saying it through every drop.
129
130## 2026-09-24.8 — ELEVEN THOUSAND VOLUMES
131- New song: ELEVEN THOUSAND VOLUMES. Lieutenant Commander Data points a browser at an ebook store and has Jev answer "Yes." to every download, faster and faster, until the store rate-limits him. He has eleven thousand books and can't open any of them.
132- Jev now works out where the song is before choosing a part's level, and some transitions are only offered where they make musical sense.
133- A song can no longer be forced to end in the middle of a line.
134
135## 2026-09-24.7 — Jev on the mixing desk
136- Jev now sets how much of each part plays in a section (out, back or full), instead of just on or off.
137- Jev picks how the song moves into each section: a straight cut, a drum fill, a riser, or a one-beat gap.
138- Jev now hears how loud each part came out, not only the whole mix.
139- Samples across every song have been levelled, so no clip jumps out and none gets buried. Several that clipped no longer do.
140- Emergency Meeting's intro whisper now follows the vocals, and Task Failed Successfully's outro theme ends with the song.
141- Minimax gets its Pong back as its own part.
142
143## 2026-09-24.6 — Jev plays the band
144- Jev now decides which parts play each section, one yes or no per part: drop the drums for tension, strip it back to the bass, bring everything back for the payoff. The strip lights up the parts that are playing.
145- Jev picks the section first, then decides the parts knowing which section it chose.
146- Jev's section choice isn't always its top pick, so two plays of a song can take different paths. The strip shows when that happened.
147- Jev now hears how loud each section actually came out.
148- Fixed: a section that came back later, such as a repeated chorus, sometimes played with another section's arrangement.
149- New on the welcome tab: "do you agree with Jev?" Pick the more-art of two songs and see how often you and the critic agree. Your votes stay in your browser.
150
151## 2026-09-24.5 — Jev's own API, in every song
152- Every song now declares Jev at the top in TypeSafe's own shape: `jev({ state, questions })` with `choice`, `score` and `noul`, the same as TypeSafe's SDK. Jev's answers are Strudel patterns you can compose.
153- Jev's calls are highlighted in yellow in the editor, and the choices playing right now light up where the song writes them.
154- The strip under the editor shows every question Jev answers, each section.
155- When the site has changed since your last visit, you'll see what's new.
156- If Jev is busy, the site backs off the way TypeSafe asks.
157
158## 2026-09-24.4 — Every song is Jev's to arrange, and a harsher critic
159- All 13 songs now have a form: Jev picks each next section, what plays in it and how intense it is, and decides when the song ends.
160- The art score is now a critic's rubric: hook, development, structure, concept, originality and craft, each out of 5. 60% means good; three notes scores 2%. Hover a song's cover to see how it scored.
161- "You've got mail" no longer drowns out "You've got Jev".
162- When Jev is busy, the site waits as long as Jev asks before trying again.
163
164## 2026-09-24.3 — Jev arranges the whole song
165- Lightning in a Bottle has no fixed length now: Jev picks which section comes next, repeats a chorus or goes back to the drop, and ends the song by choosing the outro.
166- Jev also sets how intense each section is, and hears your 🔥 and 😴 from the strip under the editor.
167- Tell Jev how you feel on the welcome tab and it picks a song for you.
168- Radio: switch it on and Jev picks the next song whenever one ends.
169- 🎨 "is it art?" in the header asks Jev to judge whatever is in the editor, your edits included.
170- Every song's spec now shows Jev's art score for each revision.
171- The header's "update" button is now called "run": it re-runs the code. New versions of the site show up here instead.
172
173## 2026-09-24.2 — Watch Jev work
174- A strip under the editor shows each of Jev's picks as the song plays, with how confident it was; click one to see its odds.
175- The playing move lights up in the code, and each pick pops up as it lands.