Commit Graph
88 Commits
Author SHA1 Message Date
teahubxyzandClaude Fable 5.1 57d448443f gandora: a real previous-track button; skip walks forward through the session before cooking new tracks
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:05:22 +00:00
teahubxyzandClaude Fable 5.1 9c9a0dd377 gandora: library grouped by station (channel), each with its seed mark and count; kept tracks on top
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:00:52 +00:00
teahubxyzandClaude Fable 5.1 f967f739e4 gandora: only wire the analyser once the audio context is running (a suspended one would mute iOS)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:00:20 +00:00
teahubxyzandClaude Fable 5.1 a8e8d0efbd gandora: the cover is a visualizer while music plays; reactions show on library tiles
Analyser on the player: bass breathes the rings and the seed mark, highs sharpen the lines, slow drift on the
phases; ground and grain are cached per song so the frame loop only redraws rings and core. Reactions are saved
with the track on each tap (they were only in memory before), and the tiles show them (💬 for words, ⏭ for a skip).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:59:57 +00:00
teahubxyzandClaude Fable 5.1 af7fe043bd ventures: gandora lives at gandora.lol
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:51:40 +00:00
teahubxyzandClaude Fable 5.1 c54522678b gandora: lyrics on the back of the cover (tap the cover or LYRICS to flip)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:48:31 +00:00
teahubxyzandClaude Fable 5.1 df98581056 gandora: lyrics under the title (tap LYRICS or the cover); section markers styled; stays open across tracks
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:47:50 +00:00
teahubxyzandClaude Fable 5.1 8806f56907 gandora: a repeat button
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:46:56 +00:00
teahubxyzandClaude Fable 5.1 86a9ec10d3 gandora: say why a track didn't render (a budget cap reads differently from a Venice hiccup)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:43:51 +00:00
teahubxyzandClaude Fable 5.1 81805e1a25 gandora: stations and an explicit KEEP
Stations: a seed, its name, taste and recent history are saved (IndexedDB v2) and listed on the seed screen as
seed marks to resume; a new seed opens a new station, picking a station resumes it with its taste intact.
KEEP: a labelled pill under the controls pins the current track (toggle), beside the ❤️ reaction which still keeps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:38:18 +00:00
teahubxyzandClaude Fable 5.1 8d21bf11ff gandora: every played track is kept in the library (last 40), hearts pin for good; KEPT and PLAYED sections
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:27:42 +00:00
teahubxyzandClaude Fable 5.1 64fa4fc0b7 gandora: the now-playing strip follows track changes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:22:04 +00:00
teahubxyzandClaude Fable 5.1 6bdb300adb gandora: leaving the player keeps the station playing; a now-playing strip on the seed screen leads back
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:21:48 +00:00
teahubxyzandClaude Fable 5.1 050aa296a5 gandora: hedge a stalled render after 60 s with a second queue, take whichever lands first
Three timed renders through the worker took 8-24 s; the one that sat for 2+ min was Venice's queue stalling that
job. A second copy after 60 s bounds the wait at about normal + 60 s for an extra 3 cents on a bad day.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:18:48 +00:00
teahubxyzandClaude Fable 5.1 52edca2774 gandora: run on the shared inference worker by default, a personal Venice key optional
No key in the page and none needed: calls go to inference.yolopreneur.lol with an x-app header, quota'd per person
per day; a saved personal key still goes straight to api.venice.ai. DJ defaults to claude-haiku-5-5 (llama-3.3-70b
is gone from Venice's list). The ?demo key path is removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:09:18 +00:00
teahubxyzandClaude Opus 5.5 b3ec97387f havre: the nav is just studio, light/dark and reload (the reading is in the footer)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BQqGFv54JJTw7p3rgGjP7C
2026-10-20 18:48:53 +00:00
teahubxyzandClaude Fable 5.1 1b4641c1a4 gandora: honour a shared demo key from demo.js on ?demo links
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 18:48:44 +00:00
teahubxyz fbf54971af ventures: gandora in the ledger
Claude-Session: gandora-poc
2026-10-20 18:16:27 +00:00
teahubxyz 3a8bdf5f56 ventures: gandora, a generative station (PoC on Venice ACE-Step)
Type a seed → a DJ (Venice chat, JSON) writes tags, lyrics, bpm, key, energy for each track → ACE-Step 1.5 on
Venice renders 60 s → Pandora-style player with render-ahead. Covers are deterministic: hue from key, rings from
bpm, grain from energy, symmetry and core mark from the seed. Emoji + text reactions edit the station's taste;
❤️ keeps a track in an IndexedDB library (free replays). Venice key stays in the browser (CSP: api.venice.ai only).

Claude-Session: gandora-poc
2026-10-20 18:16:17 +00:00
teahubxyzandClaude Fable 5.1 8a8985c58b havre: a taller conversation on phones
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 06:42:56 +00:00
teahubxyzandClaude Fable 5.1 b977d7fee4 havre: the chat follows new messages only when you're at the end; scrolled up to read, it stays put (what you send, or open, still goes to the end)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 06:42:48 +00:00
teahubxyzandClaude Fable 5.1 dde0df7718 havre: the big picture has no focus ring or frame around it (it read as a blue background); links keep one colour once visited
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:46:48 +00:00
teahubxyzandClaude Fable 5.1 4be19bb845 havre smoke: a sent photo is in their turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:38:17 +00:00
teahubxyzandClaude Fable 5.1 567c187125 havre tests: a sent photo is in their turn
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:37:26 +00:00
teahubxyzandClaude Fable 5.1 c7d6f427f8 havre: a photo or clip they sent is told to the model in their own turn, as a stage direction, not in yours (characters took "you sent me a photo" as yours and got confused); a reply that narrates sending a photo makes one likely
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:37:15 +00:00
teahubxyzandClaude ba441f8d2d Havre openvenice README: workflows as Actions files, the Step node, the venture loop
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: open-workflows-venture-loop
2026-10-20 05:26:16 +00:00
teahubxyzandClaude e6621649c3 Havre /open: a Step node, and any Actions workflow as a canvas workflow and back
A Step node is one Gitea Actions step as it is (run, uses, with, env): inert in the browser, verbatim in the
export. Import now takes any Actions workflow file, not only one exported from here: its steps become a chain of
Step nodes and the rest of the file (on, permissions, concurrency, the job's runs-on and env) is kept as the
workflow's frame, so it exports back as it came in, with any Venice nodes spliced in as runner steps. A file
exported from a framed workflow re-reads each step's YAML from the file on import, so an edit made in the file wins.
Proof: .github/workflows/venture.yml imports as three Step nodes and exports back identical.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: open-workflows-venture-loop
2026-10-20 05:20:50 +00:00
teahubxyzandClaude Fable 5.1 349d4016b9 havre: every round, a voice pick with a voice note already sent becomes a photo
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:16:03 +00:00
teahubxyzandClaude Fable 5.1 9d959c1d99 havre: a reply that came with a voice note no longer skips what they'd send on their own; only a second voice note is held back
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 05:15:53 +00:00
teahubxyzandClaude Fable 5.1 82a3a694a6 havre: every round means every round: when the decision says nothing, write a shot and send a photo anyway; a photo that can't be made (no model, allowance spent) says why instead of nothing
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:36:02 +00:00
teahubxyzandClaude Fable 5.1 519bb3ff05 Havre: export a character with memory, chats and pictures, or everything; import restores a bundle by merging
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:17:15 +00:00
teahubxyzandClaude Fable 5.1 fc11e6e141 Havre: export with memory and chats, or the whole harbor; a backup file restores through import
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:16:46 +00:00
teahubxyzandClaude Fable 5.1 6324a25aad Havre: backup.js — a character with their memory, chats and pictures as one file, or the whole harbor; read back and merged
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:16:34 +00:00
teahubxyzandClaude Fable 5.1 63b754133e Havre: the on-their-own decision goes to a model that keeps to JSON, and a decision that goes wrong is said once (every round) instead of swallowed
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:05:00 +00:00
teahubxyzandClaude Fable 5.1 223a5561f5 Havre: on a phone the three tabs sit on one line, smaller, with a dot between them (again: a refresh run had reverted it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 04:00:23 +00:00
teahubxyzandClaude Fable 5.1 792bae027f Havre: the card's "new character" link opens the new-character form, from any card
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:52:22 +00:00
teahubxyzandClaude Fable 5.1 c34dc5c6c4 Havre: a "new character" link on the card's heading, so there's a way back to writing someone from any card
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:52:12 +00:00
teahubxyzandClaude Fable 5.1 72e8f47989 Havre: the reload link reloads, again (a refresh run had reverted it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:51:53 +00:00
teahubxyzandClaude Fable 5.1 cd6cd44813 Havre: the reload link in the nav, again (a refresh run had reverted it)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:50:36 +00:00
teahubxyzandClaude Fable 5.1 6b9c42eaa5 Havre: how long you're away before characters text first is a setting — a minute to a day (abilities, on their own); with "every round", the move is asked eagerly; no allowance left is said once
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:50:27 +00:00
teahubxyzandClaude Fable 5.1 b37c885f41 abilities.js: with "every round" the move is asked for eagerly — a photo unless it would make no sense, not "nothing, most of the time"
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:49:45 +00:00
teahubxyzandClaude Fable 5.1 0f8d120d7e Havre: the reload link reloads, bypassing the cache
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:43:40 +00:00
teahubxyzandClaude Fable 5.1 f34467232f Havre: a reload link in the nav, for the app installed on a phone (no address bar, no pull to refresh)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:43:16 +00:00
teahubxyzandClaude Fable 5.1 f1ce82e287 Havre: how long you're away before characters text first is a setting (under abilities, on their own)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:40:49 +00:00
teahubxyzandClaude Fable 5.1 67a96bd60d smoke: a Venice character's hello carries what they can send here beside Venice's own prompt
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:36:47 +00:00
teahubxyzandClaude Fable 5.1 e395865f87 Havre: the no-picture word is said once per chat
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:36:10 +00:00
teahubxyzandClaude Fable 5.1 1dce9b4174 Havre: a character knows what they can send here; one who wants to send a photo with no picture on their card says so in the chat
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:35:57 +00:00
teahubxyzandClaude Fable 5.1 a2f98c5436 card.js: the prompt tells a character what they can send here (photos and clips, or not yet, or not at all), so they don't deny it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:35:43 +00:00
teahubxyzandClaude Fable 5.1 4dfb672f74 Havre: on a phone the three tabs sit on one line, smaller and without the slashes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:28:23 +00:00
teahubxyzandClaude Fable 5.1 76a05d37a3 Havre: a chat opened on a phone scrolls to the tabs above it, so the nav is in view
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:26:02 +00:00
teahubxyzandClaude Fable 5.1 2e8ff6b11a smoke: on a phone the tabs stay above the chat; no back link
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:24:19 +00:00
teahubxyzandClaude Fable 5.1 216abc8fa6 Havre: on a phone, a chat keeps the CHATS / CHARACTERS / HARBOR tabs above it instead of a back link
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:23:53 +00:00
teahubxyzandClaude Fable 5.1 6e09057107 havre.py: the exported file's shell lines as block scalars, so a colon in them doesn't break the YAML
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:15:57 +00:00
teahubxyzandClaude Fable 5.1 dd2bbfb85e Havre /open: Export a workflow as a Gitea Actions file and Import one back; run.mjs, the headless runner the file uses
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:14:18 +00:00
teahubxyz 00ce855e89 Merge pull request 'Havre: memory in three tiers — deep, long, short — with remember, remind and /recall' (#208) from havre-memory into gh-pages 2026-10-20 03:08:45 +00:00
teahubxyzandClaude Fable 5.1 a8150996e7 smoke: notes are kept as objects now
ci / test (pull_request) Successful in 4s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:07:22 +00:00
teahubxyzandClaude Fable 5.1 24f92a0d75 memory.js: among equals, the newer batch first and a batch in the order it was written
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:07:13 +00:00
teahubxyzandClaude Fable 5.1 b3b25dfec3 style: a note kept but not in mind reads faint
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:05:54 +00:00
teahubxyzandClaude Fable 5.1 150a398af5 tests: a workflow with only a message door has no command
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:05:36 +00:00
teahubxyzandClaude Fable 5.1 773582206a workflows.js: /recall, and remember and remind as workflows with a message door
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:05:25 +00:00
teahubxyzandClaude Fable 5.1 1dd45aabbd Havre: memory in the page — a budgeted selection in every prompt, notes appended every dozen messages, remember and remind on each message, /recall
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:05:10 +00:00
teahubxyzandClaude Fable 5.1 8e03a6c5be memory.js: a note with a time is a reminder; a number reads as a note; only ordinary notes roll off
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:04:01 +00:00
teahubxyzandClaude Fable 5.1 e0885cae65 Havre: memory as three tiers — deep (chats), long (every note, dated, kinds), short (a budgeted selection each turn); recall, reminders
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 03:03:17 +00:00
teahubxyz b87db442c8 Merge pull request 'Havre: /photoshoot, and keeping a photo from the chat on their card' (#207) from havre-photoshoot into gh-pages 2026-10-20 02:17:49 +00:00
teahubxyzandClaude Fable 5.1 0aaf0cccab Havre: /photoshoot (a few photos from the pictures on their card, into the chat), and any photo of them in the chat can be kept on their card
ci / test (pull_request) Successful in 3s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 02:16:25 +00:00
teahubxyzandClaude Fable 5.1 4296c1c161 Havre: /photoshoot in workflows.js — a few photos from the pictures on their card, one shoot (count and brief)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 02:15:41 +00:00
teahubxyz 60735bd98b Merge pull request 'Havre: workflows with doors — /portraits and /new in the chat, three portraits on the sheet, write-with-AI in the harbor' (#206) from havre-workflows into gh-pages 2026-10-20 02:09:10 +00:00
teahubxyzandClaude Fable 5.1 f04acb1e2a Havre: run the workflows from any door — /portraits and /new in the chat, three portraits on the sheet, write-with-AI in the harbor; portraits land in the chat with a pick
ci / test (pull_request) Successful in 3s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 02:00:53 +00:00
teahubxyzandClaude Fable 5.1 f3c1554fd7 Havre: doors for the workflows — three portraits on the sheet, write-with-AI on the new-character form, /help hint
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 02:00:05 +00:00
teahubxyzandClaude Fable 5.1 ba964f473d Havre: workflows.js, the harbor's named workflows and their doors (portraits, new), with tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAvUH72XsdCitHdh3t7mjr
2026-10-20 01:59:48 +00:00
teahubxyz 5d7dfb1e28 Havre /open: a Cover + Track workflow node (image + audio → one video, recorded in the browser) 2026-10-19 21:55:13 +00:00
teahubxyz 30c29d1cb5 ventures: Cartridge's address is cartridge.yolopreneur.lol (slug stays box-art-night, the loop's key) 2026-10-18 19:49:08 +00:00
teahubxyz 69c37aedff ventures/box-art-night: redirect to cartridge.yolopreneur.lol 2026-10-18 19:49:05 +00:00
teahubxyz 0ceaf74b00 ventures: Cartridge lives at cartridge.yolopreneur.lol; box-art-night redirects there (owner's call) 2026-10-18 19:48:46 +00:00
teahubxyz 47976f94d7 ventures: thumbnails for Loot Drop, Cartridge and Huebrain on the portfolio 2026-10-18 19:21:36 +00:00
teahubxyz fa46572886 ventures/box-art-night: desktop thumbnail for the portfolio (rendered offline at 1280x800, the runner has no Chrome) 2026-10-18 19:21:20 +00:00
teahubxyz ee9c753bb2 ventures/loot-drop: desktop thumbnail for the portfolio (rendered offline at 1280x800, the runner has no Chrome) 2026-10-18 19:18:14 +00:00
teahubxyz 42a7fabbb3 ventures/huebrain: desktop thumbnail for the portfolio (rendered offline at 1280x800, the runner has no Chrome) 2026-10-18 19:16:39 +00:00
teahubxyzandClaude Opus 5.5 5472228c24 ventures: the ledger back in its ASCII layout
The last commit wrote ten — and one 🎉 escape as the characters themselves (the same data, but five other
ventures' lines changed). Back to json.dumps(indent=1) bytes, so the only change from before SLYNG is SLYNG's line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
2026-10-16 11:09:31 +00:00
teahubxyzandClaude Opus 5.5 80d204573a ventures: SLYNG in the ledger
Sling sats and notes on nostr, at https://slyng.yolopreneur.lol/ (landed by the refresh workflow from venture/slyng).
Added at the top in the ledger's own layout (indent 1, ASCII); every other line is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ww3hgdnVzTeB85eSsuPLuF
2026-10-16 11:06:11 +00:00
teahubxyz ddb3a61dee lineage: key tree page at lineage.yolopreneur.lol (#55) 2026-10-14 21:31:41 +00:00
teahubxyz e944a70cfb lineage: key tree app (#55) 2026-10-14 21:31:00 +00:00
teahubxyz 55df341749 lineage: @noble/curves 2.4.0 bundle (secp256k1, schnorr, ed25519, x25519) (#55) 2026-10-14 21:26:11 +00:00
teahubxyz 15fc5035aa lineage: @noble/hashes 2.4.0 bundle (#55) 2026-10-14 21:22:28 +00:00
teahubxyz 0402ffeb06 lineage: @scure/bip32 + @scure/bip39 2.4.0 bundle, sets window.LC (#55) 2026-10-14 21:18:38 +00:00
teahubxyz d5659a0f89 lineage: escape the DEL char in @scure/base so the bundle is plain ASCII (#55) 2026-10-14 21:16:57 +00:00
teahubxyz 3d7c4250bb lineage: @scure/base 2.4.0 bundle (#55) 2026-10-14 21:13:46 +00:00
teahubxyz 77a1714cfe lineage: stylesheet (#55) 2026-10-14 21:12:32 +00:00