spaxel/dashboard/node_modules/gensync/index.js.flow
jedarden c817e96802 feat: implement repeated-setting change detection with guided calibration
Detects when user changes same config setting 3+ times within 24 hours.
Shows non-intrusive prompt offering help with guided calibration flow.

Guided calibration features:
- Test for false positives (walk around room)
- Test for missed motion (sit still)
- Suggest optimal value based on diurnal baseline SNR and link health
- Apply suggested value button

Files:
- dashboard/js/proactive.js: Complete implementation with localStorage tracking

Acceptance:
- Help prompt fires after 3+ changes in 24h
- Calibration flow tests both directions
- Suggests value based on system data
- Apply button works
2026-04-11 00:18:19 -04:00

32 lines
846 B
Text

// @flow
opaque type Next = Function | void;
opaque type Yield = mixed;
export type Gensync<Args, Return> = {
(...args: Args): Handler<Return>,
sync(...args: Args): Return,
async(...args: Args): Promise<Return>,
// ...args: [...Args, Callback]
errback(...args: any[]): void,
};
export type Handler<Return> = Generator<Yield, Return, Next>;
export type Options<Args, Return> = {
sync(...args: Args): Return,
arity?: number,
name?: string,
} & (
| { async?: (...args: Args) => Promise<Return> }
// ...args: [...Args, Callback]
| { errback(...args: any[]): void }
);
declare module.exports: {
<Args, Return>(
Options<Args, Return> | ((...args: Args) => Handler<Return>)
): Gensync<Args, Return>,
all<Return>(Array<Handler<Return>>): Handler<Return[]>,
race<Return>(Array<Handler<Return>>): Handler<Return>,
};