jobizzness / jobizzness/bench

Push notifications when a specialist is waiting on you

Open
#49 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
1h 21m
Merged PRs (30d)
41

Description

Follow-up from the design in `docs/superpowers/specs/2026-08-31-bench-over-firestore-design.md`, deliberately out of scope for #45, #46 and #47.

## Why

Working from a phone is two halves. #46 gives the first: you can open the cockpit anywhere and drive a specialist. This is the second: being told that a specialist is waiting on you, without having the app open.

Without it, remote bench is something you have to remember to check. A specialist that hits a decision at 11am and is answered at 4pm has been idle for five hours.

## What it needs

- FCM, and a per-device subscription written when a device turns notifications on.
- A push handler in the service worker (`src/client/sw.ts` exists) that opens the cockpit at the waiting decision.
- A trigger in the daemon: it already knows the moment a turn ends with a decision — that is what the roster socket reports (`src/daemon/server.ts:1073`).
- A rule about what is worth waking someone for. A decision, yes. A reply, probably not.

Worth confirming before building: whether FCM's send path is usable without Cloud Functions, given this project is on the Spark plan and has no billing.

## Related

- Depends on #45 (identity) and #46 (the wire).
- Design: `docs/superpowers/specs/2026-08-31-bench-over-firestore-design.md`

Contributor guide

Open the contributing guide

Research direction

Read docs/superpowers/specs/2026-08-31-bench-over-firestore-design.md, then inspect src/client/sw.ts and src/daemon/server.ts:1073. First confirm whether FCM sending works without Cloud Functions on the Spark plan, and resolve which events should wake a user. Done means device subscriptions, decision-triggered pushes, and cockpit links opening at the waiting decision work end to end.

Written by the indexing model from the issue text.

Assessment

Tech stack
firebase, typescript
Domain
backend, mobile, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.