How Meringo Minutes works

Two separate things make the notes checkable. Tracing puts a timestamp on a summary sentence, with no AI model involved. Checking has a second model read the summary against the transcript and set aside what it can't support.

Traced

Tracing is plain code that matches a summary sentence back to the transcript. There's no model in it, and it runs on every setup. A sentence it can place gets the timestamp of the line it matched. A sentence it can't place gets no timestamp, and the overview at the top never gets one, by design.

Placement isn't as good as I want it to be. In the demo, 4 of the 11 timestamped sentences point at a line that doesn't state the claim, and the other 7 at a line that states only part of it. The 4 misses all land early, and the supporting line follows within about 30 seconds. So treat a timestamp as the place to start listening.

Checked

Checking needs Ollama, the default setup: the setup assistant downloads the check model along with the summary model. A second, different model reads the summary against the transcript it was written from. A model grading its own sentences would prove little, so it's a different one. A sentence it can't support moves into a folded card of unverified sentences, which carries this line: Read it as a lead, not a finding.

This build shows one mark for the whole summary, Checked or Not checked. It doesn't mark sentences one by one. A summary that wasn't checked says why, and offers Check Now.

The check misses things. In the demo it kept a sentence that merges two facts: 31 inquiries waiting, and the oldest from , became 31 inquiries sitting since . It also sets aside sentences that are close to true. One of the demo's four is very nearly right.

Ask

Ask answers only from the transcript. The rarest words in your question pick the lines the model sees. Each line it quotes is looked up word for word, and each sentence it writes goes to the check model against those lines.

When nothing holds, the answer is I found nothing in this meeting that says that. If no line shares a word with your question, it says that before any model is asked. Ask how somebody felt and you get their own lines on the subject, with no verdict on them.

In the demo it refused all 8 questions the meeting doesn't answer, or answers only in part. It also refused one the meeting did answer. And in another answer it added dollars when nobody named a currency, and the check let that through.

On a wider bench of 24 public meetings and 60 questions, it refused 12 of the 14 that asked for a fact the meeting never states, and all 14 when each question was put to the wrong meeting. The refusals come from the retrieval and the answer path: in that run the check set aside four right answers and caught none of the wrong ones.

What it won't do

The network, and the test that watches it

By default, the only places the app itself connects to are model downloads, the first time each model is needed, the Ollama server on your own Mac, and its update feed, once a day. Ollama fetches its own models from its own registry. The update check sends nothing about your meetings, and you can turn it off.

The app isn't sandboxed. Its own code keeps the processing of a meeting local, and one test watches that code at work.

That test runs a real meeting through the processing pipeline, watches the Mac's network sockets while it does, and fails on any connection there that isn't local. It covers that pipeline only: the update check and model downloads happen outside it. Its allow-list is one line: localhost:11434. It looks every 100 ms, so a connection that opens and closes between two looks would get past it. It runs on my Mac, not on a build server, and if something it needs is missing it reports SKIPPED rather than a pass. A separate script checks that the test still fails when something does connect out.

Deadlines

A comment in the date code says it better than I would:

An unsortable deadline is a nuisance. An 'Overdue' badge on work that isn't due for another week is a lie, and this app's whole claim is that it doesn't tell those.

In the demo, end of Q3 became and went on the Scheduled shelf. Next Friday stayed in words, under Outstanding.

Where it's weak