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

Answer 'Needs you' from your phone, so the office doesn't wait while you're away from the desk

Open
#38 1 comment 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@agentvivekkumar is already working on this.

Since Oct 8, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement Require Customer
Problem / motivation

The office is built so the owner sees only the decisions that need them. Today they can see them only at the desk. Every Ask me question, approval and notification from Michael lives in the desktop app. While the owner is away, the cards stay Blocked, the work behind them stops, and the team waits.

  • The office moves only as fast as the owner answers. By design, Blocked always means waiting on you (FEATURES.md §1), and only Michael reaches the owner. A team that finishes in minutes and then waits four hours for a yes works at the speed of the four hours.
  • The owners this is for are rarely at a desk. Restaurant, retail and home services are the first office packs. The design doc names this as Open Question 2 (docs/designs/business-mode-office-packs.md:277): "A restaurant owner is on the floor 10 hours a day, so how long do approvals wait? Measure approval latency in the pilot before deciding whether phone approvals are needed."
  • A desktop notification on a closed laptop reaches nobody. Only Michael notifies, which was the right call (docs/designs/michael-only-notifications.md). But that one channel misses the owner whenever they're away from the computer.
  • Every owner decision depends on this. Inbox zero, schedule requests, mailbox sign-in problems, and anything that spends money, deletes things or goes public all end with "the owner decides". All of them get faster if the owner can decide from anywhere.
Proposed solution

Three phases. Phase 0 is the measurement the design doc asks for, so Phases 1 and 2 are decided on real data.

Phase 0: measure the wait (small, local only)

  • Work out the time to answer for each Ask me entry. HumanQA already records askedAt and answeredAt (src/main/hive.ts:129), so no new data is needed. Count time outside office hours separately, and leave out withdrawn questions.
  • Show it to the owner in Settings, for example "Questions waited 2 h 40 m for you on average this week". The text is plain, has no dashes, uses {{godName}}, and goes through i18n. Nothing leaves the computer, consistent with TELEMETRY.md.

Phase 1: a phone channel, Telegram first

  • Why Telegram: the app makes outgoing HTTPS calls only (long polling getUpdates), so unlike Slack and webhooks there is no tunnel and no public endpoint. It's free and works on iPhone and Android. The owner creates their own bot, so nothing is added to the project's infrastructure.
  • Pairing: Settings has a guided setup: create a bot with @BotFather and paste the token. The app then shows a one-time code, and the first chat that sends it becomes the only chat the app will accept. The token goes into the existing safeStorage secret store (src/main/integrations.ts) and never into the hive or any agent's folder.
  • What goes to the phone:
    • Each new Ask me question in Michael's existing short markdown format, with each option as a button and a free-text reply as a fallback.
    • Michael's notifications.
    • Optionally, a short evening summary.
  • Answering: a reply goes through the same door as an answer typed in the app: mergeHumanQA, then recordOwnerAnswerKeys (src/main/index.ts:4489). It's still recorded as the owner's answer, goes only to Michael, and lands in the memory of whoever asked. An answer to a question that was already answered or withdrawn is refused, and the phone says so.
  • A plain message that isn't a reply goes to Michael, like Talk to Michael.
  • Shape: a small OwnerChannel interface (send, onReply). The module has no electron import, so it's testable as plain Node, like slack.ts, and it doesn't depend on any one engine.

Phase 2: safety for high-stakes decisions

  • Spending money, deleting and anything public show the full action on the phone (who, what, where, the content) and need Approve plus a second confirmation tap. A free-text reply never approves them.
  • An owner setting keeps those decisions desk-only.

Privacy: off by default. Turning it on says plainly that the question text passes through Telegram. A "Titles only" mode sends only the card title and asks the owner to open the app, which keeps customer details on the computer.

Plan of PRs, one change each per CONTRIBUTING.md:

  1. The Phase 0 helper in src/shared/ plus the Settings line, with node:test cases (office hours, withdrawn questions, unanswered questions).
  2. OwnerChannel plus the Telegram transport and pairing, with tests for a wrong chat, a stale answer and a withdrawn question.
  3. High-stakes confirmation, with a test that free text never approves.

Not in scope: a native mobile app, a hosted relay, and any change to who escalates (Michael stays the only one who reaches the owner).

I'd like to open the Phase 0 PR from my fork once you're happy with the direction. It's small and answers Open Question 2 whatever is decided about the rest.

Screenshot, mockup or recording

Everything in this panel waits until the owner is back at this screen. 'Billing email sign in' has waited 5 hours.

Image
Alternatives considered
  • Email the owner. Every owner has email and the app already has SMTP, but a reply's sender is easy to fake, and parsing a quoted reply is fragile. That isn't good enough for approvals.
  • Slack DM. Inbound Slack already exists (src/main/slack.ts), but it needs a tunnel and a public endpoint, and most small business owners don't use Slack. It's a good second transport behind the same interface.
  • WhatsApp or SMS. These need a Meta business account or a paid SMS provider. Later transports.
  • A web companion through a tunnel. It opens a public surface and adds a second UI to keep up. SPEC.md also lists a web or mobile companion as out of scope for v1.
  • Do nothing until the pilot. Phase 0 is exactly that measurement, built in so every office has the number.
Area

The hive (memory, routing, GOD agent)

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
1d 22h
Merged PRs (30d)
316

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.