From 88f9d509ed87876d6d1ee31c016b123354ecf793 Mon Sep 17 00:00:00 2001 From: teahubxyz Date: Tue, 13 Oct 2026 05:13:57 -0700 Subject: [PATCH] venture: escalate the second fix round to kimi code, not grok 4.7 (#34) grok 4.7 fix rounds (28-54 steps, three at once) were most of a quick $20 of Venice spend in the first live batch. Kimi's code model is a different model from round one's Qwen Coder, so escalation still gets a fresh attempt, at a fraction of the cost. TIME_VENTURE_ESCALATE still overrides. Claude-Session: https://claude.ai/code/session_01VDkN7ukK1kXkqov8FaZxva Co-authored-by: Claude --- .github/time/test_time.py | 4 ++-- .github/time/venture.py | 2 +- CHANGELOG.md | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/time/test_time.py b/.github/time/test_time.py index de6632f..b0b1cf2 100644 --- a/.github/time/test_time.py +++ b/.github/time/test_time.py @@ -707,10 +707,10 @@ W.say(c28, f"x\n\n{tm.MARK}" + json.dumps({"venture": True, "beat": "built", "wi W.files["ventures/mdecks/index.html"] = "thin" specs, roots = [], [] def spy(card, done, spec, root=""): - specs.append(spec); roots.append(root); return {"pr": -1, "steps": 3, "seat": "grok", "model": "grok-4-7"} + specs.append(spec); roots.append(root); return {"pr": -1, "steps": 3, "seat": "kimi", "model": "kimi-k2-7-code"} vt._build_on_pages = spy vtick() -assert specs == ["venice:grok 4.7"] and "(grok-4-7)" in W.text(c28), (specs, W.text(c28)[-200:]) +assert specs == ["venice:kimi code"] and "(kimi-k2-7-code)" in W.text(c28), (specs, W.text(c28)[-200:]) assert roots == ["ventures/mdecks/"], roots print("ALL OK 20") diff --git a/.github/time/venture.py b/.github/time/venture.py index c3df39b..83dd46c 100644 --- a/.github/time/venture.py +++ b/.github/time/venture.py @@ -1348,7 +1348,7 @@ def advance(card: dict, comments: list[dict], beats: list[dict], heavy_ok: bool) say(f"🔧 The checks found {len(problems)} problem(s); fix round {fixes + 1}:\n\n{bullets}", {"beat": "built", **keep, "fixes": fixes, "problems": problems}) # cost cascade: the cheap worker gets the first round; a failed round escalates to a stronger model - spec = worker_spec() if fixes == 0 else env("TIME_VENTURE_ESCALATE", "venice:grok 4.7") + spec = worker_spec() if fixes == 0 else env("TIME_VENTURE_ESCALATE", "venice:kimi code") r = _build_on_pages({"number": n, "title": f"Fix the {w['name']} launch page", "body": FIX_BODY.format(name=w["name"], slug=w["slug"], problems=bullets, page=w.get("page", ""), join=w["join"], signal=signal_url(w))}, diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f182dd..95a8f4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ - A venture build writes only inside its own `ventures//` folder on the Pages branch, which also carries the studio's site and every other venture: a fix round once wrote its page over the site's front page. - The Venice worker's shell no longer sees secrets: its environment drops tokens and keys, its checkout keeps no token in `.git/config`, and the workflows check out without persisted credentials. +### Changed +- The second fix round escalates to Kimi's code model (`venice:kimi code`) instead of grok 4.7: still a different model from the first round, at a fraction of the cost. `TIME_VENTURE_ESCALATE` overrides it. + ### Added - A batch's children start in the tick that spawned them (GitHub lists a card made a moment ago only later, so they used to wait a tick). - Build briefs keep claims to what the code does: no promised features or schedules, and the trending repos are the wave a venture rides, never something it "builds on". Fix rounds take a failing claim off the page rather than building a feature in a hurry. In the first live batch, every fix round was a claim the code didn't back.