wardethan2000-eng makes legal research runs harder to lose

This fork is turning long AI research sessions into a more dependable route to usable legal sources.

searchworkflow

When a research run reaches its limit, it now returns a grounded partial answer instead of stopping silently. Users can then continue the same thread with a Keep going prompt across the major AI providers supported by the product.

The legal-research side is becoming more concrete:

  • Numbered statute sources that can be opened in a panel for closer reading.
  • A dedicated statute service, aimed at making legislation a sustained source for research rather than a one-off chat reference.
  • Document-editing improvements bundled into the same broad integration.

This is a substantial, cross-provider change rather than a small plug-in. Anyone bringing it into another installation should inspect how limits, continuation state, source-service access, and provider testing fit their own setup.

So what Legal teams using AI for multi-step research should care because a useful partial answer and traceable statute sources are far more practical than a session that simply stops.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

2 commits from wardethan2000-eng/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
0d4423f5 feat: research that finishes, statutes as sources, and freer document editing Ethan Ward 2026-08-19 ↗ GitHub
commit body
Three pieces of work that were running live but had never been committed.
They share several files, so they could not be separated into commits that
each still build.

Research that finishes. A chat that searched, found law and then stopped
with no answer was hitting a hidden limit of ten rounds of tool use; short
lookups fit inside it and real research did not. There is now one shared
budget across every model, and running out of it never ends a turn in
silence - the assistant is made to answer from what it has and say what it
could not check. Where it stops, a Keep going button carries on from that
point instead of starting again.

Statutes as sources. A statute the assistant looks up now appears as a
numbered source that opens in the reading panel, the same way cases do,
rather than as loose text in the reply.

Freer document editing. Edits to a document can now add and remove whole
paragraphs instead of only changing words already there, which is what
writing a letter on the firm letterhead needs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PoCRDAPyEq4wwBVFFbDzck
46b73752 test: make the suites pass wherever they are run, and track the statute service Ethan Ward 2026-08-19 ↗ GitHub
commit body
All three failing backend tests and the whole frontend suite were failing on
the surroundings rather than the code. Run inside the deployed container, the
frontend tests picked up the live server address and React was in its release
build, which leaves out the helper needed to render a component in a test.
The backend tests read a signing key that the deployment happens to set. Each
suite now supplies what it needs instead of trusting whatever is already
there, so a plain test run passes on a laptop and on the server alike.

One backend test also insisted the default model was Gemini. That choice has
already moved once and will move again; it now checks what its own name says,
that each default resolves to a provider at all.

The statute and web lookup service, which runs beside the app rather than
inside it, was in no repository and no backup. A copy now lives here so it can
be restored and its history followed. Its settings, including the token, stay
out of the repository.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PoCRDAPyEq4wwBVFFbDzck

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-1257.md from inside the repo you want the changes in.

⬇ Download capture-thread-1257.md