{"slug":"dead-agentabrams","total":70,"limit":100,"offset":0,"since":null,"commits":[{"hash":"cc56eba","date":"2026-09-03 13:05:10 -0700","author":"Steve Abrams","subject":"Music room: apply graphic-designer critique fixes (Steve)","body":"- BUG: mobile panel collision — Music Room was invisible/unclickable (shared box with\n  Videos). Now distinct mobile slots (Videos bottom, Music Room above), Music Room z:11\n  so its header is always tappable, and the two panels are mutually exclusive (opening\n  one closes the other). Verified: mrToggle now receives the tap and opens.\n- BUG: 'Chapter · Departure' caption was hidden behind the Music Room panel on desktop —\n  moved the panel down (top:182) to clear it.\n- Movie screen: cropped the YouTube iframe (scale 1.34) so its title bar/byline/logo/\n  'More videos' chrome is pushed outside the gold frame — only the footage shows; added a\n  stage riser/base under the frame so it reads as mounted on the stage; nudged it down\n  (top:36%) off the title.\n- Orb: flattened to a matte material (metalness 0 / roughness 1 — no photoreal specular)\n  to match the paper-cutout world, and raised its default to high sky (y 3.1) off the riser.\n- Polish: mobile title floor bumped (clamp 20/6.5vw/30), kicker 9→10px.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"6b22391","date":"2026-09-03 12:53:52 -0700","author":"Steve Abrams","subject":"Fast onload: cache archive.org's down state, cut timeouts","body":"Steve: \"Music must start onload fast !!\" Measured 9.4s from page\nload to first playback — bootMusic tries archive.org twice in\nsequence (pool-build, then the default-show fetch), each paying a\n6-9s timeout before falling back to YouTube, and archive.org has\nbeen down for hours this session.\n\nAdded a localStorage health cache (dead.archiveDownUntil, 10min\ncooldown): fetchT marks it on every success/failure, and both\n_poolFromShows and loadShowRef check it up front and skip straight\nto the YouTube fallback when archive is known-down — no wasted\nround-trip. Also tightened the raw timeouts 7000/6000ms -> 3000ms as\na floor for the first-ever cold load, before the cache has data.\n\nMeasured: cold first visit 9.4s -> 3.1s; any visit after that within\nthe cooldown 9.4s -> 0.8s. Recovery is automatic — the very next\nsuccessful archive.org call (from anywhere: search, a real show\nload) clears the flag immediately."},{"hash":"20eefcf","date":"2026-09-03 12:48:01 -0700","author":"Steve Abrams","subject":"Videos panel: add Prev/Next concert + 30s back/fwd seek buttons","body":"Steve: \"allow user to go fwd bwd on video\" / \"and 30 seconds back and\nfwd buttons.\" Added a transport bar (⏮ / ⏪30 / 30⏩ / ⏭) above the\nshow list. Prev/Next step through MR_VIDEOS relative to whatever's\nselected (wraps at both ends); the 30s buttons seek the currently\nplaying YouTube player via getCurrentTime()/seekTo(), clamped to\n[0, duration]. Verified: stepping through 3 shows forward and back\nlands on the right titles each time, seek buttons don't throw."},{"hash":"8769b6f","date":"2026-09-03 12:43:21 -0700","author":"Steve Abrams","subject":"Music room: mobile-friendly pass — shrink + fluid-scale text, keep panels in the viewport (Steve)","body":"- Phone media blocks (<=640px, <=400px): title h1 drops to clamp(17px,6vw,28px) then\n  clamp(15px,6.4vw,24px); eyebrow/subtitle/panel/dock/museum text all shrunk; Controls\n  button moved to right:12 so it isn't clipped; Videos + Music Room panels pinned\n  left/right:10 width:auto so they stay inside the viewport; movie screen 92vw on phones.\n\nNote: the room has NO background PNG to convert to SVG — its backdrop is the live generative\ncanvas. canyon-backdrop.png is unused; cover.png is only the ROOT landing's card thumbnail.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"a7cda26","date":"2026-09-03 12:37:38 -0700","author":"Steve Abrams","subject":"Music room: adjustable movie screen (drag+scale) + optional draggable orb (Steve)","body":"- Movie screen is now draggable to reposition and corner-resizable to scale up/down\n  (--movie-dx/-dy/-scale, persisted to localStorage); gold corner handle + move overlay.\n- Orb is OFF on load ('onload no orb') but a new 🔮 Orb toggle turns it on, and once on it\n  can be DRAGGED around the room (click = AI VJ, drag = move; position persisted). The WebGL\n  loop skips all work while the orb is off.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"650582d","date":"2026-09-03 12:24:48 -0700","author":"Steve Abrams","subject":"Music room: concert plays on a movie SCREEN on the stage, orb removed (Steve)","body":"Steve: 'it's a movie screen!' + 'remove the orb, onload no orb' + 'music from youtube\ncan start right away and play' + 'wait to hear music then dance'.\n- Disabled the WebGL AI-VJ orb entirely (ORB_ENABLED=false) — no orb on load or ever.\n- A picked concert now plays on a framed MOVIE SCREEN mounted center-stage (.movie-on:\n  golden proscenium frame + glow, z-index below the dancer canvas so the bears dance in\n  FRONT of it), WITH SOUND (the vr-row click is a gesture → unmuted autoplay allowed).\n- onStateChange PLAYING kicks the dancers into motion ('wait to hear music then dance').\n- Removed the now-dead Backdrop LEFT/TOP/WIDTH/HEIGHT sliders from the Videos panel\n  (they controlled the retired small backdrop box) — panel is header + hint + year list.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"559b69a","date":"2026-09-03 12:08:54 -0700","author":"Steve Abrams","subject":"Fix stray sound leak on manual video picks + reduce backdrop opacity","body":"Steve: \"no sound when selected and make not opaque.\"\n\n1. Sound leak: archive.org has been down all session, so bootMusic's\n   auto-failover pre-arms a global tap/key \"unlock\" listener that\n   unmutes the YouTube player on the NEXT gesture anywhere on the\n   page. That listener didn't know about muted manual picks from the\n   Videos panel, so the very click that selected a video (a gesture)\n   could immediately unmute it right after playConcertManual() set it\n   muted — a race. Added VB.forceMuted, set true in playConcertManual\n   (manual picks are meant to be silent decoration) and explicitly\n   false in enterYouTubeFallback (the real outage fallback IS the\n   show, still allowed to unmute on a gesture); the unlock listener\n   now checks it before ever calling unMute().\n2. Opacity: #venueVideo was opaque (1) once shown — dropped to .55 so\n   the backdrop reads as translucent, not a solid opaque panel."},{"hash":"ff54235","date":"2026-09-03 12:04:54 -0700","author":"Steve Abrams","subject":"Lock in Steve's dialed-in backdrop position as the default","body":"Left 48% / Top 43% / Width 18vw / Height 32vh — the framing Steve\ntuned live with the position sliders and confirmed looked right."},{"hash":"f5a3143","date":"2026-09-03 11:57:02 -0700","author":"Steve Abrams","subject":"Backdrop: confine to the stage-riser area with live X/Y/W/H controls","body":"Steve: \"put behind my graphics!! on the bg on stage only\" / \"the area\nin back of where singers would sing\" / \"allow me to expand to show\nhow it's done.\"\n\nTwo fixes:\n1. playConcertManual() was unconditionally entering yt-hero (the\n   full-screen \"video IS the show\" mode reserved for the real\n   archive.org-down fallback) for every Videos-panel pick too, which\n   is why \"behind the art\" never actually looked behind anything —\n   archive.org is still down right now, so every pick went full-hero.\n   Manual picks now stay muted + confined to the small backdrop box;\n   yt-hero stays exclusive to enterYouTubeFallback's real outage path.\n2. Replaced the single \"Backdrop size\" scale slider with 4 controls\n   (Left/Top/Width/Height, --vr-bd-x/-y/-w/-h) plus a reset button, so\n   Steve can position the box himself instead of me guessing canvas\n   coordinates. Default widened (46vw x32vh) so the video peeks out\n   around the opaque stage-riser graphic rather than being fully\n   hidden behind it edge-to-edge."},{"hash":"8f1b9bf","date":"2026-09-03 11:52:03 -0700","author":"Steve (via Claude)","subject":"Music room: CONSOLIDATE the two video-backdrop systems into ONE controller (DTD verdict B, TK-11178)","body":"- Deleted the duplicate #vrBackdrop layer + vrEmbed in-panel player + showBackdrop/hideBackdrop/bdToggle + .vr-bg CSS + dead .vr-embed/.vr-bd-toggle CSS\n- The Videos panel now browses MR_VIDEOS and each pick is a MANUAL trigger into the one VideoBackdrop controller (VB) via new playConcertManual(): plays the chosen concert as the #venueVideo backdrop + audio, kills archive audio (single audio owner), yt-hero + react-disabled like the auto path\n- Kept the 'Backdrop size' control, retargeted onto #venueVideo via --vr-bd-scale\n- Two triggers (auto era-match failover + manual pick) -> one engine, one backdrop, one audio owner: double-audio is now structurally impossible\n- Verified via Playwright: #vrBackdrop gone, 18-row browser intact, pick drives #venueVideo, archive audio killed, no .vr-bg\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"8e80e02","date":"2026-09-03 11:42:07 -0700","author":"Steve Abrams","subject":"Backdrop: full drapery behind the stage, never a cropped close-up","body":"Steve: \"use as the draperies on a stage basically.. this is bad\" —\nthe previous cover/crop sizing meant a high zoom setting showed an\nillegible close-up mush of the poster texture. Switched to\ncontain-fit (min(100vw,177.78vh) x min(100vh,56.25vw)): the WHOLE\nframe is always visible, letterboxed, like a curtain hung behind the\nstage riser — zoom now just makes the curtain bigger, never crops\nit. Lowered default to 82% and slider range to 40-150%; clamp any\nstale localStorage value from the old cover-based slider so a\nreturning visitor's saved setting doesn't reintroduce the bad look."},{"hash":"afdb60f","date":"2026-09-03 11:09:44 -0700","author":"Steve Abrams","subject":"Videos backdrop: dim it behind the graphics + let Steve control its size","body":"Steve: \"put behind my graphics!! ... allow me to expand to the size i\nneed.\" The backdrop was rendering at full opacity/dominant scale,\nwashing out the generative scene on top. Now: opacity 1->0.5 + a dark\nscrim, scene dimming eased (0.42->0.85) so the animated art reads\nclearly in front, and a Backdrop Size slider (50-200%, localStorage-\npersisted) so the video's scale is Steve's call, not a fixed guess."},{"hash":"ecd6824","date":"2026-09-03 11:05:08 -0700","author":"Steve (via Claude)","subject":"Music room UI: tuck chapters, camera views + Museum Label into the controls drawer too — maximally clean default stage (TK-11178)","body":"Default stage is now just: title + collapsed Music Room bar (top-left), collapsed Videos bar + hamburger (top-right), and the scene/video. Everything else lives in the right drawer: chapters -> cameras -> playback/mode toggles -> sliders -> Museum Label. Verified via Playwright (drawer children order + slide-in).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012XLgczMhQr91Ad5jL38JM4"},{"hash":"e9d46a6","date":"2026-09-03 10:58:51 -0700","author":"Steve (via Claude)","subject":"Music room UI: collapse the sprawling controls into a hamburger-opened RIGHT drawer; Music Room + Videos collapsed by default (TK-11178)","body":"- #dock is now a right slide-in drawer (vertical: Pause/Restart + mode toggles + sliders), hidden by default, opened by the top-right hamburger (repurposed the existing '☰ Controls' button + 'c' key from hide-all-chrome to toggle the drawer)\n- Music Room defaults collapsed (data-open=false) on all widths\n- Removed the blanket hide-chrome default so the collapsed panels + hamburger are the resting state; clean stage, video/scene unobstructed\n- Verified layout via Playwright at 1280x800: dock off-screen by default, slides fully in on hamburger, panels collapsed, center stage clear\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012XLgczMhQr91Ad5jL38JM4"},{"hash":"93937cc","date":"2026-09-03 10:46:15 -0700","author":"Steve (via Claude)","subject":"Music room: make the concert video visible — pull scene canvases down under a video backdrop + a yt-hero state where the fallback video dominates (TK-11178)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012XLgczMhQr91Ad5jL38JM4"},{"hash":"6b68f71","date":"2026-09-03 10:16:39 -0700","author":"Steve Abrams","subject":"Add a standalone Videos section, independent of archive.org/Music Room","body":"Steve, after seeing archive.org's outage take out audio AND the\nvideo backdrop with it: \"offer videos only sections.\" New 🎬 Videos\npanel lists all 18 MR_VIDEOS shows; clicking one embeds a plain\nYouTube iframe directly, bypassing the archive-audio pipeline and\nthe VB failover machinery entirely, so it works even when\narchive.org is down. Verified over local HTTP (file:// gives a\nfalse Error 153 — origin restriction on the YouTube embed, not a\nreal bug): 18 rows list correctly, click-to-play works, video plays."},{"hash":"9ae8b46","date":"2026-09-03 10:14:44 -0700","author":"Steve (via Claude)","subject":"Music room: fix contrarian findings — showIdx assignment (resume + mid-show failover were dead), expired-gesture read, muted-announce collision, bounded error-hop (TK-11178)","body":"- showIdx now set in loadShowRef (+curShow) so resume + mid-show archive->YouTube\n  failover actually fire (were unreachable: showIdx stayed -1 forever)\n- capture userActivation BEFORE the metadata await (transient activation expires)\n- guard _tryAutoplay with VB.mode!=='youtube' so the fallback isn't stomped by\n  the old 3-song wishlist announce + a duplicate unlock listener\n- _onPlayerError bounded (only genuine-unavailability codes 100/101/150, <=3 hops,\n  each video once) + refreshes on-screen title/link; harden the gesture-unlock race\n- persist resume in fallback mode too\n- era-match unit-tested in node (1973->1973, 1991->1991, etc.)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012XLgczMhQr91Ad5jL38JM4"},{"hash":"339f860","date":"2026-09-03 10:00:33 -0700","author":"Steve Abrams","subject":"Put all dock pills (Pause/Restart + the 5 mode toggles) on one line","body":"Was two vertical stacks side by side. Now a single horizontal row on\ndesktop widths (>=1180px) where it fits without crowding the camera\nand museum-label panels; falls back to the original stacked layout\nbelow that, same as the file's existing 820px breakpoint pattern."},{"hash":"b7cdfc8","date":"2026-09-03 09:56:28 -0700","author":"Steve (via Claude)","subject":"Music room: YouTube era-matched video-library backdrop + archive.org failover + resume (TK-11178)","body":"- 18-video embed-verified library (1969-1995), nearest-year era matching\n- Every show: muted era-matched official GD concert video as #stage backdrop\n- archive.org down -> unmuted YouTube concert becomes the audio (replaces the\n  old dead 'open archive.org player' fallback that also failed during an outage)\n- localStorage resume; venue button toggles the video backdrop; React-to-Music\n  disabled on the YouTube stream (Web Audio can't read a cross-origin iframe)\n- Timed the two hot-path archive.org fetches so an outage fails fast to fallback\n- Mutual audio exclusion enforced (no double audio); verified end-to-end via\n  Playwright against the live archive.org outage\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_012XLgczMhQr91Ad5jL38JM4"},{"hash":"f3c92ee","date":"2026-09-03 09:15:28 -0700","author":"Steve Abrams","subject":"docs(TK-11100): Option A patch artifact for the scarlet-riverboat-masquerade merge handoff","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Ddgxmase3XCnLRxVyaE1LD"},{"hash":"f5e5893","date":"2026-09-03 09:14:15 -0700","author":"Steve Abrams","subject":"room(TK-11100 F1): default Music Room COLLAPSED on narrow mobile (<=480px) — Steve-approved Option A","body":"On <=480px the position:fixed Music Room panel overlaid the dock controls\n(measured 0/7 dock buttons tap-reachable while expanded on a 390px screen;\nreproduced identically on Chromium/WebKit/Firefox/Chrome — pure layout/z-order).\nOn-load matchMedia(<=480px) now starts the room data-open=false so the dock is\nfree; one tap on #mrToggle re-expands it. Desktop/tablet keep it EXPANDED so\nrevealing the chrome shows a working player in one tap (CTA/screenrecord\nCRITICAL #1). CSS/attr-only, reversible via git revert.\n\nVerified local (harness ROOM_URL=127.0.0.1): dockTappableExpandedPct 0->100 on\nall 3 dock buttons, dockOccludedByMusicRoom true->false; 0 new console/page\nerrors; mobile re-expand + desktop-stays-expanded proven via DOM.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Ddgxmase3XCnLRxVyaE1LD"},{"hash":"7bf0e6c","date":"2026-09-02 11:51:10 -0700","author":"Steve Abrams","subject":"TK-11100: commit localhead QA audit trail (text/JSON only; binaries stay ignored)","body":"Cross-browser room verification of commit 8917dd6 (blob 6aaa35e, 17-show\ncatalog): PASS 4/4 (Chromium+WebKit x desktop+mobile), served loopback-only,\nproven ahead of stale live (room path 404). Evidence relocated out of the\ngitignored verification/ tree per DTD verdict B (relocate method) so the\nlightweight audit trail is durable in history while the heavy PNGs +\nthree.js fixture stay ignored (honors fcb5365 100MB-limit protection).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01B7oGXaBnX1Hx23zroNbkqb"},{"hash":"dbeda45","date":"2026-09-02 10:58:09 -0700","author":"Steve Abrams","subject":"room(TK-11101): fix remaining ARIA delta — listbox/tablist/tab/option->group+aria-pressed (surgical, post dead-orb ALL-CLEAR)","body":""},{"hash":"29702f8","date":"2026-09-02 10:50:33 -0700","author":"Steve Abrams","subject":"docs(TK-11100): 390px mobile dock/Music-Room overlap — reproduction + proposal patch","body":"Read-only vs room/index.html (dead-orb owns it). Confirms the order-independent\n390px overlap (8/8 dock buttons intercepted by the expanded MR), tested 8 fix\ncandidates, recommends candidate K (stack bottom groups + compact dock):\nverified 7/7 dock + 3/3 MR transport + labelBtn tap-reachable, 0 pageerrors.\nTwo documented residuals (cams 3rd-button corner overlap; MR-top overflow →\nsticky-transport) left for the file owner to finalize.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014nfErRV5Sc4ULyQY5rsjL6"},{"hash":"3971712","date":"2026-09-02 10:48:50 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-02T10:48:45 (1 data files) — docs/TK-11100-390px-dock-overlap.patch","body":""},{"hash":"33ede49","date":"2026-09-02 10:22:56 -0700","author":"Steve Abrams","subject":"room recovery: remove completed RECOVERY-MISSION.md (TK-11097 done)","body":"Reconstruction landed in 2c062a1: all 6 dead-orb blocks + parallel base,\nverified (3 scripts/0 errors, all markers, headless 0 pageerrors, #mrNow='Cueing the set…').\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014nfErRV5Sc4ULyQY5rsjL6"},{"hash":"fcb5365","date":"2026-09-02 10:20:29 -0700","author":"Steve Abrams","subject":"untrack regenerable QA video artifacts (screenrecord/cta/verification) — keep repo pushable under GitHub 100MB limit","body":""},{"hash":"2c062a1","date":"2026-09-02 10:18:31 -0700","author":"Steve Abrams","subject":"room: RECOVER clobbered features (orb UFO/celestial/AI-VJ + analyser + animals-roam + dock + music autostart + a11y) merged onto 5d8543f parallel base","body":""},{"hash":"7a653cc","date":"2026-09-02 10:09:39 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-02T10:09:29 (43 data files) — .playwright-mcp/page-2026-09-02T16-36-44-015Z.yml RECOVERY-MISSION.md verification/tk11100-crossbrowser/.gitignore verification/tk11100-crossbrowser/EVIDENCE.md verification/tk11100-crossbrowser/REPORT.md","body":""},{"hash":"ac0f021","date":"2026-09-02 09:36:17 -0700","author":"Steve Abrams","subject":"room: cancel stale archive fetches on source-switch (contrarian hardening)","body":""},{"hash":"70fd187","date":"2026-09-02 09:35:41 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-02T09:35:20 (56 data files) — .playwright-mcp/page-2026-09-02T16-13-09-342Z.yml verification/tk11100-crossbrowser/REPORT.md verification/tk11100-crossbrowser/results.json verification/tk11100-crossbrowser/screenshots/chrome-desktop-after.png verification/tk11100-crossbrowser/screenshots/chrome-desktop-load.png","body":""},{"hash":"5d8543f","date":"2026-09-02 09:33:56 -0700","author":"steve@designerwallcoverings.com","subject":"room: wire idle-backflip branch call (fn was defined but never invoked in ab66c92)","body":""},{"hash":"ab66c92","date":"2026-09-02 09:32:47 -0700","author":"steve@designerwallcoverings.com","subject":"room: re-apply bears+slowdown+18-show catalog (atomic, race-hardened) [TK bears]","body":""},{"hash":"ebd5538","date":"2026-09-02 09:19:05 -0700","author":"Steve Abrams","subject":"room(TK-11101): apply perf+a11y fixes (Steve-approved deploy)","body":""},{"hash":"062e20e","date":"2026-09-02 09:06:02 -0700","author":"Steve Abrams","subject":"docs(TK-11101): perf+a11y audit of room/index.html — findings + reviewed patch (not applied; for dead-orb)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01PbuCGne4EgqBfU2KzJGhXL"},{"hash":"306d63a","date":"2026-09-02 09:04:17 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-02T09:04:08 (28 data files) — .playwright-mcp/page-2026-09-02T16-00-16-757Z.yml .playwright-mcp/page-2026-09-02T16-04-10-719Z.yml docs/TK-11101-perf-a11y.patch verification/tk11100-crossbrowser/REPORT.md verification/tk11100-crossbrowser/results.json","body":""},{"hash":"570c039","date":"2026-09-02 08:59:47 -0700","author":"Steve Abrams","subject":"room: archive.org fetch timeout + graceful failure (5x hardening)","body":""},{"hash":"207cf83","date":"2026-09-02 08:59:28 -0700","author":"steve@designerwallcoverings.com","subject":"Add 1995 Soldier Field finale (gd95-07-09, verified LMA sbd, 361 reviews) — timeline now 1969–1995 / 18 shows on landing + room","body":""},{"hash":"8917dd6","date":"2026-09-02 08:50:27 -0700","author":"steve@designerwallcoverings.com","subject":"room: re-apply 17-show catalog + slowed motion + idle one-bear backflips (clobbered by parallel year-grid/D&Co commits); merged onto current base","body":""},{"hash":"c1728cc","date":"2026-09-02 08:47:22 -0700","author":"Steve Abrams","subject":"dock UI: lit-lantern active state (soft gold wash, not solid fill), equal-height pills, subtle sheen","body":""},{"hash":"0300e1c","date":"2026-09-02 08:40:01 -0700","author":"Steve Abrams","subject":"room: tappable year-tile grid + Grateful Dead/Dead & Company source selector (UX-review fixes)","body":""},{"hash":"f1c7dbc","date":"2026-09-02 08:29:47 -0700","author":"steve@designerwallcoverings.com","subject":"Expand curated shows to 17 (1969–1994, verified LMA soundboards); slow room motion + idle one-bear backflips across the page","body":""},{"hash":"4ea4914","date":"2026-09-02 08:14:25 -0700","author":"Steve Abrams","subject":"orb: song-change UFO split (5 saucers + light beams), celestial patterns, click-to-AI-VJ takeover; animals roam + move to tempo","body":""},{"hash":"0feb28b","date":"2026-09-02 08:05:59 -0700","author":"Steve Abrams","subject":"snapshot before orb UFO/celestial + roaming-animal build","body":""},{"hash":"0c6d91e","date":"2026-09-02 07:50:37 -0700","author":"Steve Abrams","subject":"room: interactive touring-history year map for archive browse","body":""},{"hash":"cb10224","date":"2026-09-02 07:44:29 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: full Grateful Dead archive browse (popular + by year + search)","body":""},{"hash":"7a05617","date":"2026-09-02 07:17:08 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: link back to The Main Stage","body":""},{"hash":"5b06f4e","date":"2026-09-02 06:44:38 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: 3D beat-reactive orb over the riverboat","body":""},{"hash":"9461cad","date":"2026-09-01 22:53:53 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: searchable full Grateful Dead archive","body":""},{"hash":"5b3f52d","date":"2026-09-01 22:30:12 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: drawn animated song-motif items","body":""},{"hash":"8a0b439","date":"2026-09-01 22:24:06 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: venue backdrops + song-motif items","body":""},{"hash":"c6068c0","date":"2026-09-01 22:15:59 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: livelier beat-synced bear dance","body":""},{"hash":"71c704d","date":"2026-09-01 22:12:19 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: panels collapsed on load + Controls toggle","body":""},{"hash":"8f3ddb3","date":"2026-09-01 22:08:45 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: dancing bears on the boat decks","body":""},{"hash":"292a3a6","date":"2026-09-01 22:06:59 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: Dancing Bears count slider (1-10)","body":""},{"hash":"c315f1a","date":"2026-09-01 22:02:42 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: colorful dancing-bear troupe synced to music","body":""},{"hash":"5f6518a","date":"2026-09-01 19:32:53 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: articulated dancing bears","body":""},{"hash":"5aaf321","date":"2026-09-01 19:28:05 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: museum label documents all controls + full cast","body":""},{"hash":"19a1a6b","date":"2026-09-01 18:58:27 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: singing songbirds with note-bubbles","body":""},{"hash":"f52b545","date":"2026-09-01 18:46:28 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: full cutout dancers + boat","body":""},{"hash":"12d58b3","date":"2026-09-01 18:40:51 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: cutout animals + paper grain","body":""},{"hash":"9a930f0","date":"2026-09-01 18:35:33 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: grounded animals + pterodactyl fly-over","body":""},{"hash":"e859310","date":"2026-09-01 18:32:29 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: dancing bear cubs + include Photoshop canyon-backdrop asset","body":""},{"hash":"ba4b4cb","date":"2026-09-01 18:27:44 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: pulsating lamps + beat/click fireworks","body":""},{"hash":"d42c695","date":"2026-09-01 18:15:11 -0700","author":"Steve Abrams","subject":"Sync ROOM 01: add optional audio-reactive mode (live archive.org stream drives the visuals on the beat)","body":""},{"hash":"f9a40c3","date":"2026-09-01 17:45:58 -0700","author":"Steve Abrams","subject":"Sync ROOM 01 with codex-hardened riverboat room (race guard, audio-error skip, keyboard/a11y fixes)","body":""},{"hash":"4056d9c","date":"2026-09-01 17:14:49 -0700","author":"Steve Abrams","subject":"Add ROOM 01: Scarlet Riverboat Masquerade animated listening room at /room/ (streams the same Live Music Archive catalog); wire homepage card + nav link + cover, support internal room links, add favicon","body":""},{"hash":"3a0a387","date":"2026-09-01 13:34:37 -0700","author":"Steve Abrams","subject":"ship and verify dead.agentabrams.com","body":""},{"hash":"8d68829","date":"2026-09-01 13:30:34 -0700","author":"Steve Abrams","subject":"add source-hosted Dead listening experience","body":""},{"hash":"80a57f8","date":"2026-09-01 13:28:57 -0700","author":"Steve Abrams","subject":"initial Dead listening exhibition","body":""}]}