This desktop is a project in its own right, so it keeps its own log. Top to bottom, newest first down to the very first version.
v1.5
This window
running now
+CHANGELOG.md joins the desktop: its own icon, a slot in the dock and a URL at /versions.
+The version the menu bar announces is read from the log, so it cannot contradict it.
+The terminal learns `open changelog` — versions, versiones and cambios work too.
v1.4
A page per project
+/projects/<key> opens the reader with that project already inside, and its article ships in the server HTML.
+Windows mount the first time they are opened rather than all at once: each URL serves its own content instead of all ten.
+The index links with real <a href>, so the articles are reachable without JavaScript too.
v1.3
A real Python
+The terminal runs CPython 3.14 compiled to WebAssembly, inside the browser, with no server on the other side.
+`python scoring.py` runs the file; plain `python` opens the REPL.
+~/projects replaces the blog: what I build on my own, with its stack and its status.
v1.2
One URL per window
+Every window gets its own static page, with its own <title>, description and canonical.
+The slugs move to English, and the old Spanish ones stay alive as permanent 301 redirects.
+Desktop icons become real links: Cmd-click and middle-click work as they should.
v1.1
Bilingual, English first
+All the text moves to src/data/copy/, one dictionary per language with the exact same shape.
+Switching language happens on the client without reloading; the preference is stored in the browser.
+The static HTML ships in English, which is what a visitor without a preference gets.
v1.0
The original desktop
+The idea underneath: a portfolio that behaves like an operating system, with windows you drag and minimise.
+README.md, cv.pdf, now.txt, photos/, contact and the trash, plus a dock and a menu bar.
+All in Spanish, and a terminal that was still a prop.
Why is this here? Because a portfolio that never says how it was made looks a little too much like a template. Every version on this list is a commit you can read in the repository.