Meeting Intelligence — shared lens engine
One transport-agnostic engine behind Saul, Noted and the everyday lens. Two entry points (a pasted transcript, and a live ASR stream already on the bus) converge on the same skins; Tier 1 keyword prefilter is free and always on, Tier 2 routes only FLAGGED lines to a Sterling ensemble pack. Utterances, flags and verdicts publish to kv/meeting/{id}/...; a session is filed to the vault under an explicit subject, or explicitly not. Three temporal layers over one engine: realtime flags a line as it is said, the overnight job runs the panel over stored sessions, and the ongoing groom carries what is still standing with a human's dismissals applied on every rebuild. The lens is a LAYER over content, not a meeting feature: `lens_router.py` reads an email, an invite or a note through the same skins and files them into the same store, so one commitment seen on two surfaces converges to one groomed item. RULE FOR STORE NODES: label a store with the TRACKED MODULE that owns it — `storage.py`, `review_state.py`, `groom.py` — and describe the data it writes in the subs as prose, never as a bare filename. Nothing this system persists is in the repo: session records, `.review.md` artifacts, review state and groom decisions all live in the operator's vault, so a node label naming any of those files fails the CI audit, whatever it is called. Where a path really must appear, write it home-relative (`~/Documents/Kevin-Vault/meetings/...`), which is accurate and outside this oracle's standing. Build output (graphify-out/, KAN-1137) is gitignored for the same reason.
Provenance
This drawing is generated, not drawn. It is rebuilt from the source files below, so when they change the picture changes — a diagram here cannot quietly describe a system that no longer works this way.
- tools/meeting_intelligence
- daemon/src/meeting_intelligence_router.py
- daemon/src/meeting_intelligence_live.py
- daemon/src/meeting_intelligence_vault.py
- daemon/src/meeting_translate.py
- daemon/src/lens_router.py
- daemon/mona/src/services/liveAsrCapture.ts