Skip to content

feat(cli): remove per-60-second Haiku headline ticker#93

Merged
SamPlvs merged 1 commit into
mainfrom
claude/remove-haiku-ticker
May 28, 2026
Merged

feat(cli): remove per-60-second Haiku headline ticker#93
SamPlvs merged 1 commit into
mainfrom
claude/remove-haiku-ticker

Conversation

@SamPlvs
Copy link
Copy Markdown
Owner

@SamPlvs SamPlvs commented May 28, 2026

Summary

Removes the periodic Haiku headline ticker from zo build / zo continue runs. The ticker spawned claude -p --model haiku every 60 seconds throughout a session to summarise recent agent events into a one-line headline printed in the lead pane. User feedback: nobody uses it. The lead pane already shows the live task list and agent events in real time, so the Haiku summary added decoration, not signal.

Cost saved

  • ~60 subprocess spawns per hour at ~$0.0001-$0.0003 each
  • ~$0.06-$0.18 per 10-hour overnight run in Haiku spend
  • Plus the latency / CPU churn of repeatedly spawning a Claude Code subprocess every minute

What's kept

  • _generate_session_summary — single Haiku call at session end (~$0.0002 per run) that prints a 2-3 bullet wrap-up of what the team accomplished. Useful, cheap, one-shot. User explicitly confirmed keeping this.
  • _headline_buffer and all the .append(...) event-capture calls in _print_status — still feed the end-of-session summary.
  • --no-headlines CLI flag — preserved for backwards compatibility. Its meaning narrows to "skip the end-of-session bullet summary too" (it can no longer disable the ticker, because the ticker doesn't exist).

⚠️ Behavior change

Anyone running zo build today sees a console headline every 60s (e.g., ▸ data-engineer profiling features...). After this PR they don't. The end-of-session bullet summary is unchanged.

What was removed

Code (src/zo/cli.py):

  • _maybe_print_headline() function (~30 lines)
  • _last_headline_time + _headline_interval timer variables
  • The _maybe_print_headline() call inside _print_status

Doc language about the ticker (rewritten or removed):

  • docs/cli/build.mdx — Step 5 monitoring sentence, "Headlines" Live-monitoring Card (deleted), options table --no-headlines row, --low-token accordion text
  • docs/cli/overview.mdx — shared options table --no-headlines row
  • docs/quickstart.mdx — "What you'll see" bullet list + --low-token Note
  • docs/COMMANDS.md--low-token and --no-headlines lines
  • docs/concepts/low-token-mode.mdx — two preset tables + Batch API forward-looking note
  • docs/reference/low-token-preset.mdx — preset table + override flag entry

Pre-push verification (PR-039 protocol)

$ uv run ruff check src/
All checks passed!

$ uv run --python 3.11 pytest -q
743 passed, 7 skipped in 6.45s

$ uv run --python 3.12 pytest -q
743 passed, 7 skipped in 6.31s

$ bash scripts/validate-docs.sh
9 passed  0 failed  2 warnings  (11 checks)
Documentation is consistent with codebase.

Note: PR #92 (bypass-permissions, +17 tests) is still open and unmerged, so the test count baseline is 743 here rather than 760. This PR is independent of #92 — different files, no merge conflict either way.

Memory protocol

Per CLAUDE.md auto-protocol:

  • memory/zo-platform/STATE.md — session 032 hand-off entry prepended.
  • memory/zo-platform/DECISION_LOG.md — FEATURE-REMOVAL + BEHAVIOR-CHANGE entry at 2026-05-28T20:00:00Z with rationale and four alternatives considered (remove end-of-session too / remove flag entirely / non-LLM summariser / make ticker opt-in).
  • No new PRIOR — this is a clean feature-removal driven by user feedback, not a failure-trace self-evolution.

Manual verification suggestion

After merge + deploy, on next zo build or zo continue run:

  • ✅ Lead pane should NOT show any ▸ <one-line headline> output
  • ✅ Lead pane SHOULD still show the live task list + recent agent events as before
  • ✅ At session end, the 2-3 bullet Haiku summary SHOULD still print (unless --no-headlines or --low-token was passed)

🤖 Generated with Claude Code

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 28, 2026

Deploying zero-operators with  Cloudflare Pages  Cloudflare Pages

Latest commit: 21fbeb7
Status: ✅  Deploy successful!
Preview URL: https://f94d85be.zero-operators.pages.dev
Branch Preview URL: https://claude-remove-haiku-ticker.zero-operators.pages.dev

View logs

The ticker spawned `claude -p --model haiku` every 60 seconds during a
zo build / zo continue session to summarise recent agent events into a
one-line headline. User feedback: nobody uses it. Cost: ~60 subprocess
spawns per hour at ~$0.0001-$0.0003 each, totalling ~$0.06-$0.18 per
overnight run, plus the latency/CPU cost of the spawn churn. Pure waste
if the output goes unread, and the lead pane already shows the live
task list and agent events in real time.

Kept:
- _generate_session_summary() — single Haiku call at session end for a
  2-3 bullet wrap-up. ~$0.0002 per run, genuinely useful at close.
- _headline_buffer + the .append() event-capture calls in _print_status
  (still feed the end-of-session summary).
- --no-headlines flag — preserved for backwards compatibility. Its
  meaning narrows to "skip the end-of-session summary too" (it can no
  longer disable the ticker because the ticker doesn't exist).

Removed:
- _maybe_print_headline() function (~30 lines)
- _last_headline_time + _headline_interval timer vars
- The _maybe_print_headline() call inside _print_status
- All doc language about "Haiku-summarised headlines every 60 seconds"
  in build.mdx Step 5 + Live monitoring Card + options table + low-token
  accordion, overview.mdx shared options table, quickstart.mdx
  "What you'll see" list + low-token Note, COMMANDS.md, low-token-mode.mdx
  preset tables + Batch API note, low-token-preset.mdx tables + flags.

Behaviour change: anyone running zo build today sees a console headline
every 60s; after this PR they don't. End-of-session summary unchanged.

Pre-push verification (per PR-039 protocol):
  ruff check src/                           All checks passed!
  uv run --python 3.11 pytest -q            743 passed, 7 skipped
  uv run --python 3.12 pytest -q            743 passed, 7 skipped
  bash scripts/validate-docs.sh             9 passed, 0 failed

Note: PR #92 (bypass-permissions, +17 tests) is still open, so test
count baseline is 743 here rather than 760. This branch is independent
of #92.

Memory protocol updated per CLAUDE.md auto-protocol: STATE.md session
032 entry, DECISION_LOG.md FEATURE-REMOVAL entry with rationale and
alternatives.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@SamPlvs SamPlvs force-pushed the claude/remove-haiku-ticker branch from 4be0c09 to 21fbeb7 Compare May 28, 2026 20:43
@SamPlvs SamPlvs merged commit bd408ab into main May 28, 2026
5 checks passed
@SamPlvs SamPlvs deleted the claude/remove-haiku-ticker branch May 28, 2026 20:45
@mintlify
Copy link
Copy Markdown

mintlify Bot commented May 28, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
personal-6078e1c9 🔴 Failed May 28, 2026, 8:57 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant