Repository navigation
lantern 0.1.1
lantern 0.1.1
Fixes from the first live run. The pipeline was pointed at a public
documentation host, timed and priced end to end, and it produced one finding,
two warnings and a report whose numbers were invented. Each defect was
reproduced at the root before it was fixed.
Same target, before and after
| first run | after the fixes | |
|---|---|---|
| wall time | 211.4 s | 152.4 s |
| model steps | 11 | 16 |
| findings | 1 | 3 |
| warnings | 2 | 0 |
| plan | fell back to the default | written by the model |
| researcher | failed on call 9 | 6 steps, 1 finding |
| report counters | 4 invocations / 5 steps | 38 invocations / 16 steps |
| cost | $0.01 | ≤ $0.01 |
The four defects
1. The planner answered with nothing. Asked for 500 completion tokens, the
model returned finish_reason: length with 500 reasoning tokens and an empty
string — a reasoning model spends the budget thinking before it answers, and
the empty plan fell back to the default. complete() now asks with headroom
(4×, floor 2 048), retries a blank reply once at double the budget, and
reports an error instead of handing an empty string to the caller.
2. The researcher died on its ninth call. Token-based context trimming
could cut an assistant message and keep its tool reply, which the API rejects
outright ("Messages with role 'tool' must be a response to a preceding message
with 'tool_calls'"). Trimming and summarization now drop replies whose request
was cut away, so every window slice keeps call and reply paired.
3. nikto never scanned. host_nikto passed -Format txt with no output
file, and nikto 2.1.5 aborts before scanning in that case
(Unable to open '' for write, exit 2, 0.4 s). The format flag is gone —
screen output is what the executor captures — and -maxtime now caps the
scan below the adapter's timeout so it reports what it found instead of being
killed mid-run.
4. The report counted rows, not work. "5 model step(s)" was the number of
database rows and "4 tool invocation(s)" counted child processes only, so
in-process tool calls were invisible. The runtime now records real counters on
the flow and the report quotes them, falling back to row counts for flows
recorded before this release.
Verified
- 166 tests pass, 1 ignored (the live NVD query), 0 warnings — up from 158.
- The two context-window tests are mutation-checked: both fail with the fix
removed and pass with it. - The corrected nikto argv was run against a real host: flags parse, the scan
caps itself, findings still print, exit 0. - Binary 8,481,128 bytes (8.09 MB);
lantern doctorexits 0 in 53 ms with
2 MB peak RSS and 12 native tools.
Upgrade
git pull
cargo build --release # ~/.cargo/bin/cargo if it is not on PATH
./target/release/lantern doctorNothing in the CLI, the configuration or the database schema changed: flows
recorded on 0.1.0 still render, using the row-count fallback for their
summary line. For what this project is and how it is installed, see the
0.1.0 notes.