Limits
What Dinoer does badly or not at all, measured: the discovery gap found on 14 August 2026, the escalation gap, the automatic report, and what no option changes.
Where it fits, and where it does not
| Task | Suitable |
|---|---|
| An open research question over public sources | yes |
| Extracting a fact or an event from a corpus already collected | yes |
| Reading one page, without authentication | yes |
| Driving an authenticated interface through a scenario | yes |
| Finding as many pages as a generalist, signed-in search assistant | no, see below |
| Getting past hardened anti-bot protection | no |
| Changing data on many independent sites in bulk | no, not what it is built for |
| Anything that needs an undo | no, nothing here can be undone |
Discovery: measured on 14 August 2026
A campaign on a real subject (a person and their sole-trader business, with
their consent) collected 28 pages through Dinoer’s SearXNG discovery. A single
question on the same subject to a generalist web search assistant surfaced
three pages absent from those 28: a profile on a professional network, a
project page, a stock-photo credit. Checked against collecte.jsonl, not
against the report.
The three queries sent to SearXNG brought back mostly business directories; they did not reach the kind of page the assistant found. The ranking and the truncation of the report played no part. A search engine backed by signed-in, cookie-bearing accounts reaches pages that an unauthenticated SearXNG instance does not. The project’s claim about itself was rewritten on this basis: the project.
A second gap in the same corpus
Two of those 28 pages, a profile on a code-hosting platform and a video channel, were fetched, but their text was only a cookie banner and a sign-in prompt. The light collection does not run JavaScript, and the escalation to the browser did not trigger: it fires when a page returns no text, not when the text it returns is useless. This gap is open. Where escalation happens →
The automatic report is a draft
Unless the manifest sets motifs_annee/motifs_mois or sujet_synthese, the
report step puts the pages end to end in the order they were written and cuts
at 60,000 characters. Both fields are absent by default. On the reference
campaign, even with the time-window filter alone, the official programme of
events, one of the most relevant sources, came 27th of the 29 pages the filter kept: past the cut,
left out without a warning. The semantic ranking (sujet_synthese) moved it
to 4th.
For a report you can rely on without re-reading it, question each page with
campagne.py --extraire-cible, then merge the results.
The method →
What no option changes
No vision, anywhere. A clickable image or a canvas without an accessible label is out of Dinoer’s reach. Why →
The model is kept off the web, except through bash. A model denied
websearch reached the web with curl during a test run.
Details →
Nothing can be undone. The browser core runs the scenario you wrote, at machine speed. A wrong scenario does real damage.
Inherited from the browser core
WAF detection works by keywords. It can flag a page that is not blocked.
It is reported as a count in respect.waf_bloquants, never as a stop, and
--ignorer-waf exists for when you have checked that it was wrong.
A closed shadow root stays closed. For a cross-origin iframe,
cliquer_iframe and remplir_iframe cross the frame boundary, but you supply
the inner CSS selector yourself. The iframe recipe →
What it does not claim
Dinoer is no more careful than the manifest or the scenario you give it. It does not check your intent and does not stop before something irreversible.