Router: a new venture starts only when the router picks it (TIME_VENTURE=router; v2 of a venture with signal is a candidate too) #170

Open
opened 2026-10-19 00:59:34 +00:00 by teahubxyz · 4 comments
Owner

Part of #72. Follows #168: today "start a new venture" is ranked but marked "not wired", and the venture loop is paused (TIME_VENTURE=off).

Changes:

  • venture.py: TIME_VENTURE=router is a third mode beside on / off.
    • No daily card on the schedule.
    • A card starts only when asked: TIME_VENTURE_START (the dispatch input start=true). Under off that input does nothing today.
    • The 6-hour tick keeps advancing and measuring the open venture cards, as it does under off.
  • router.py: "start a new venture" is actionable when Astra is told the loop is in router mode (an env var Astra reads, e.g. TIME_VENTURE_MODE). Its size and cost come from the seat like any card. The why-not text says what's missing when it isn't actionable.
  • router.py: a "v2 of " candidate for every live venture in ventures/ventures.json (Pages branch) with signups > 0, kind venture. It is shown with its signups.
  • astra.py, live mode, when a venture candidate is picked:
    • It dispatches venture.yml with start=true through the Actions API (the same call the heartbeat uses to dispatch CI).
    • For a v2, it posts the venture's existing iterate path, or writes a v2 card (Base: gh-pages) if there is none.
    • Its log line says which.
  • Tests: router mode creates no daily card and starts one on TIME_VENTURE_START. A picked "new venture" dispatches once and is never queued as a card. A v2 candidate appears only with signups > 0.

Turning it on is a variable (TIME_VENTURE=router) and stays the owner's or CEO's call. venture.yml passes TIME_VENTURE already, so no workflow change is expected; if one is, say so and stop at the PR.

DONE: PR open with the code above, python3 .github/time/test_time.py green including the new checks, CI green

Part of #72. Follows #168: today "start a new venture" is ranked but marked "not wired", and the venture loop is paused (`TIME_VENTURE=off`). Changes: - `venture.py`: `TIME_VENTURE=router` is a third mode beside `on` / `off`. - No daily card on the schedule. - A card starts only when asked: `TIME_VENTURE_START` (the dispatch input `start=true`). Under `off` that input does nothing today. - The 6-hour tick keeps advancing and measuring the open venture cards, as it does under `off`. - `router.py`: "start a new venture" is actionable when Astra is told the loop is in router mode (an env var Astra reads, e.g. `TIME_VENTURE_MODE`). Its size and cost come from the seat like any card. The why-not text says what's missing when it isn't actionable. - `router.py`: a "v2 of <venture>" candidate for every live venture in `ventures/ventures.json` (Pages branch) with signups > 0, kind venture. It is shown with its signups. - `astra.py`, live mode, when a venture candidate is picked: - It dispatches `venture.yml` with `start=true` through the Actions API (the same call the heartbeat uses to dispatch CI). - For a v2, it posts the venture's existing iterate path, or writes a v2 card (Base: gh-pages) if there is none. - Its log line says which. - Tests: router mode creates no daily card and starts one on `TIME_VENTURE_START`. A picked "new venture" dispatches once and is never queued as a card. A v2 candidate appears only with signups > 0. Turning it on is a variable (`TIME_VENTURE=router`) and stays the owner's or CEO's call. `venture.yml` passes `TIME_VENTURE` already, so no workflow change is expected; if one is, say so and stop at the PR. DONE: PR open with the code above, `python3 .github/time/test_time.py` green including the new checks, CI green
time added the queued label 2026-10-19 13:50:27 +00:00
time added ready and removed queued labels 2026-10-19 15:12:24 +00:00

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch time/card-170.

⏱️ Time: Claude Sonnet (Anthropic) is working on this now, on branch `time/card-170`. <!-- time {"beat":"dispatched","launched":true,"worker":"anthropic"} -->

⏱️ Time: sonnet opened PR #194 (27 steps, claude-sonnet-5-5). Review and landing follow on the next beat.

⏱️ Time: `sonnet` opened PR #194 (27 steps, claude-sonnet-5-5). Review and landing follow on the next beat. <!-- time {"beat":"dispatched","worker":"anthropic","pr":194,"steps":27,"seat":"sonnet","model":"claude-sonnet-5-5"} -->

⏱️ Time: PR #194 is up for this card. haiku reviewed it on the PR.

⏱️ Time: PR #194 is up for this card. `haiku` reviewed it on the PR. <!-- time {"beat":"pr","pr":194,"launched":false,"seat":"haiku","as":"seat","review":"venice","seats":["haiku"]} -->

⏱️ Time: the reviewer objected on PR #194. Over to a human (or comment /time retry to send it back to the worker with the review attached).

⏱️ Time: the reviewer objected on PR #194. Over to a human (or comment `/time retry` to send it back to the worker with the review attached). <!-- time {"beat":"needs-human","pr":194} -->
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: teahubxyz/time#170