Reading the telemetry
What the service records about every call, every search and every verdict, how it gets there, what it can tell you and the three ways it will mislead you if rea
What exists
Four tables, live and collecting. Everything below is what the deployed service is doing right now, not a plan.

They sit alongside dweep_audit_log, which is deliberately separate and unchanged in character: audit answers who did what to whom and is read when somebody has to account for something. Burying a million latency rows in it would make that read useless.
The workflow
From an assistant calling a tool to a row you can query. Nothing here is opt-in per tool.
A tool is calledThe identity middleware resolves who is calling, starts a clock, and captures the shape of the arguments.
The gate runsIf the caller is refused, that is recorded as
refusedwith the gate's own reason not as an error, and not as silence.The tool runsOn return, the payload is classified:
action_requiredmeans refused,errormeans error, anything else isok. Result counts are pulled from the payload where present.One row is writtenInto
dweep_tool_call, in its own transaction, swallowing any failure. Measuring must never break what it measures.A search returns companiesA
dweep_discovery_runrow captures the brief, how it was interpreted, how many companies and contacts came back, and whether the run completed.The person is askedOnce, after results and again after a draft. Server instructions tell the assistant to ask plainly and to accept silence.
A verdict is recorded
submit_feedbackwrites todweep_feedback, pointing at the run.NightlyDays are rolled into
dweep_org_day, then raw call rows past retention are dropped rollup first, always.
Tool calls
dweep_tool_call — the spine. Everything else is a smaller table that points into the same conversation.

arg_shape, as actually written
live row · scout_partners
The brief was 74 characters. What it said is not here, that lives on the run row, where it has a reason to exist and a retention story. This is the highest-volume table and the least access-controlled read path, so it holds shapes.
Discovery runs
dweep_discovery_run — the unit a person actually forms an opinion about.
live row
brief and resolved_filters are the pair that matter. The brief is what was asked; the filters are what the service decided that meant. The most common cause of a bad result is a wrong reading of the brief, and with only one of the two there is no telling a bad search from a bad interpretation.
clarification_rounds rising across a period means briefs are being understood less well. completed is false when a run returned nothing, a dissatisfaction signal nobody had to type.
Feedback
dweep_feedback one row per stated verdict, kept whichever way it went.

Connect attempts
Not a table of its own, the connect funnel lives in dweep_audit_log, because each of these is something somebody might later have to account for.
Connecting a LinkedIn account is the single biggest point of friction in onboarding: it needs a human, a browser and a sign-in, and it is where people stall. The stages below are recorded per person, per organisation, and can be counted.

What a link_issued row carries
Last updated