From f74e4212839212d1b25e8c07928f5d60fa97e254 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Thu, 11 Jun 2026 22:24:11 +0000 Subject: [PATCH 1/2] tripit: overnight tour-audio fill CronJobs (02:20 + 04:30 retry, Europe/London) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Viktor's tour-guide redo (tripit#30/#31): narration audio is baked-audio-only now — the fill-tour-audio worker synthesizes the queued (story, telling, voice) audio while the tts stack's off-peak window (02:00-06:00) has Chatterbox scaled up. Two idempotent passes: 02:20 after scale-up + model load, 04:30 insurance against a skipped window or guard yield. Daytime runs record tts_unreachable and exit quietly by design. Co-Authored-By: Claude Fable 5 --- stacks/tripit/main.tf | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/stacks/tripit/main.tf b/stacks/tripit/main.tf index 8a6f649b..c2f1565e 100644 --- a/stacks/tripit/main.tf +++ b/stacks/tripit/main.tf @@ -577,6 +577,27 @@ locals { DAWARICH_BASE_URL = "https://dawarich.viktorbarzin.me" } } + # Tour-guide overnight audio fill (tripit#30, ADR-0011): synthesizes the + # narration audio queue against Chatterbox, which the tts stack scales up + # 02:00–06:00 Europe/London behind a free-VRAM preflight. 02:20 gives the + # scale-up + first model load headroom; the 04:30 pass re-runs the same + # idempotent worker as insurance (skipped window / mid-window guard yield / + # slow FP16 synthesis). Outside the window the worker records a + # `tts_unreachable` run and exits quietly — that is the normal daytime state. + fill-tour-audio = { + schedule = "20 2 * * *" + timezone = "Europe/London" + command = ["python", "-m", "tripit_api", "fill-tour-audio"] + suspend = false + extra_env = {} + } + fill-tour-audio-retry = { + schedule = "30 4 * * *" + timezone = "Europe/London" + command = ["python", "-m", "tripit_api", "fill-tour-audio"] + suspend = false + extra_env = {} + } } } From fba16596114caad775823e26d3e9aa130700e7b8 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Thu, 11 Jun 2026 22:30:24 +0000 Subject: [PATCH 2/2] tripit: enable LLM sight discovery + real place resolver (image 2a965ca0 is live) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Viktor's tour-redo (tripit#29): the new image is rolled out, so the two new provider knobs can flip — discovery becomes wikipedia+llm (GeoSearch merged with claude-agent-service proposals, Focus-steered) and the Wikipedia place resolver (manual sight search + LLM-proposal resolution) leaves its fake default. Env-after-image hold order, same as FARE_PROVIDER. Co-Authored-By: Claude Fable 5 --- stacks/tripit/main.tf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stacks/tripit/main.tf b/stacks/tripit/main.tf index c2f1565e..2385521a 100644 --- a/stacks/tripit/main.tf +++ b/stacks/tripit/main.tf @@ -101,9 +101,14 @@ locals { # ever showed the placeholder "Sight 1". Real providers: Wikipedia GeoSearch # discovery, the five web story sources, and the claude-agent-service script # writer (CLAUDE_AGENT_TOKEN already in tripit-secrets). - SIGHT_DISCOVERY_PROVIDER = "wikipedia" + # wikipedia+llm = GeoSearch merged with claude-agent-service "what's worth + # seeing here" proposals (tripit#29); the place resolver backs manual sight + # search AND LLM-proposal resolution — its fake default is the same class of + # gap that shipped the feature dark, so set it explicitly. + SIGHT_DISCOVERY_PROVIDER = "wikipedia+llm" STORY_SOURCE_MODE = "web" SCRIPT_WRITER_MODE = "chat" + PLACE_RESOLVER_MODE = "wikipedia" } }