Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Enhancement: The office stops without a word when the Claude plan reaches its limit

Open
#124 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
backend, frontend

Research direction

Start with src/main/hive.ts and src/main/hooks.ts to check whether Claude's StopFailure hook provides a reliable plan limit signal. Then trace schedule dispatch and wake handling in src/main/index.ts, and the Needs you feed in src/renderer/src/shell/useNeedsYou.ts. Done means a persisted break is shown to the owner, work is held and resumed as described, and the limit condition is confirmed; the issue does not name tests.

Written by the indexing model from the issue text.

Description

enhancement
Problem / motivation

What I'm trying to do

Run the office through the day on a Claude plan below Max. Setup says this is possible with a catch: smaller plans "reach their usage limit during the day, and the office pauses until the limit resets."

What gets in the way

When the limit is reached, the app does not say so. There is no card on Needs you, no notification and no office state for it. The owner is not told that the limit was reached, or when work will start again.

The app also does not pause. Schedules keep sending each job to its team member as it comes due, and the wake beat keeps nudging team members when new mail lands in their inbox.

TODOS.md describes the same gap under "Plan-limit handling" (P1): "On smaller Claude plans the office stops mid-day with no explanation; setup now tells owners a Max plan is needed, but nothing handles hitting the limit."

Where this shows in the code

  • Nothing in src/ looks for a usage limit. The only mentions are the setup warning text and a StopFailure entry in the Grok shim's event name map (src/main/hive.ts).
  • Claude's hook settings (hookSettings in src/main/hive.ts) register Stop, SubagentStop, PreToolUse, PostToolUse, UserPromptSubmit, Notification, SessionStart, PreCompact and PostCompact. StopFailure is not among them, and HookServer.handle (src/main/hooks.ts) has no branch for it.
  • The Needs you feed (src/renderer/src/shell/useNeedsYou.ts) carries tasks, schedule requests, work style offers, emails to approve and the engine setup status, and nothing about the plan.
  • fire in syncMissions (src/main/index.ts) sends a job whenever it comes due and the hive is on.
  • runWorkerWakeBeat (src/main/index.ts) skips a team member that is paused, halted, booting, mid turn or waiting on a person, and has no check for a reached limit.
Proposed solution

When the Claude plan reaches its limit, the office takes a break, says so, and starts again by itself.

What the owner sees

  • A card at the top of Needs you, for example: "The office is on a break. Your Claude plan reached its limit. Work starts again around 3:00 pm." It is not counted in the Needs you number, because there is nothing to decide, the same as Report cards.
  • A quiet chip in the top bar, like the "team upgrade ready" chip: "On a break until 3:00 pm".
  • One desktop notification when the break starts and one when it ends, in Michael's name.

What the app does during a break

  • Schedules hold their jobs instead of sending them, at most one held run per job, so an hourly job does not pile up.
  • The wake beat and the queue drain stop nudging terminals.
  • When the reset time passes, each held job is sent once and Michael is nudged first, then the team members that were cut off. If the limit is still on, the break starts again.
  • A team member finishing a turn during a break ends it early, which covers a limit that lifted sooner or an owner who upgraded.
  • The break is saved, so quitting and reopening during one still shows it.
Screenshot, mockup or recording

No response

Alternatives considered
  • Rely on the setup warning. Setup already tells owners that a smaller plan will reach its limit. That is said once, before the office opens. It does not tell the owner that the limit was just reached, or when work starts again.
  • Show a message and change nothing else. This would answer "why did it stop", but schedules would keep sending each job as it comes due, so the backlog is still waiting when the limit resets.
  • Watch the terminal output for the limit message. This needs no new hook, but it depends on the exact words Claude Code prints, so a reworded message would break it without anyone noticing. A hook event would be a steadier signal, if StopFailure carries what is needed. That still has to be confirmed.
  • Let Michael tell the owner. Michael runs on the same plan, so when the limit is reached he cannot speak either. The notice has to come from the app.
Area

User Experience

Pre-flight
  • I attached a screenshot, mockup or recording above.
  • I searched existing issues and discussions, and this isn't a duplicate.
Dominant language
TypeScript
Stars
273
Forks
211
Avg merge
14h 24m
Merged PRs (30d)
203

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from agentvivekkumar/dontbemichael

All issues in agentvivekkumar/dontbemichael

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.