Luminair keeps a ledger of every request you track, checks finished work with fresh eyes, picks the model for each message and watches your spend, so a run that stops halfway cannot pass as done.
The model said it was finished. The ledger says six rows are still open.
“It prematurely stops after completing only a portion, then provides a summary as if the entire task is complete.”
GitHub · anthropics/claude-code, TodoWrite premature-stop, v1.0.85. One filed case finished phases 1 to 3b and left 4a, 4b, 5 and 6 marked [NOT STARTED].
View the source ›
The model deciding it is finished is the model's bug. Whether you find out is ours. Luminair keeps an independent ledger of every request, so a half-done run shows as half-done instead of reading like a success. You re-queue the tail in one click, from any device.
Every request is tracked as its own row, with its state. A summary that claims completion does not clear the row.
When a tracked item is done, a fresh AI with no prior context traces it through the code and passes or fails it. Tested needs evidence, and only you can mark it confirmed.
A quiet check runs every fifteen minutes while it is on. An item with no progress for twenty minutes is flagged as possibly stalled.
Nine phases planned, three finished, a confident summary. The ledger still shows six open rows. You re-queue them without rereading the transcript to work out where it stopped.
Things you are still owed, in one place, on every device.
Every part of Luminair is switchable. Run the full ledger on a production repo and turn most of it off for a scratch session.
Click the name to see everything it does and turn parts off.