How Meringo Minutes works

Meringo Minutes does two separate things to make its notes checkable, and they're worth keeping apart. 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 rather than a plausible one, 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.

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, and the Ollama server on your own Mac. Ollama fetches its own models from its own registry. The current build never contacts an update server.

The app isn't sandboxed. Its own code keeps it local, and one test watches that code at work.

That test runs a real meeting through the real pipeline, watches the Mac's network sockets while it does, and fails on any connection that isn't local. 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