nisse-review: read long files in parts; a retry starts afresh
From its failed review of #156: read_file stopped at 20,000 characters with no way on, so the reviewer hunted each file's end a definition at a time and ran out of turns; its retry carried every read before it, and a model call timed out. Both drafts were lost. - read_file takes a start line and says where the next part starts. - Each run's view starts at its brief (Transcript.since); the log keeps the rest. - A run out of turns with points drafted posts them as a partial review. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
1 parent
082631eafe
commit
1a7836167d
7 files changed
+141
-12
No files matched your search
@@ -121,3 +121,17 @@ def test_newer_schema_is_refused(db: Path) -> None:
|
||||
pass
|
||||
with pytest.raises(StateSchemaError, match="newer"):
|
||||
StateStore(db, schema_version=1)
|
||||
|
||||
|
||||
def test_a_transcript_since_an_event_views_only_what_follows(tmp_path: Path) -> None:
|
||||
from nisse_core.log.canonical import Fact
|
||||
|
||||
with StateStore(tmp_path / "s.db") as store:
|
||||
store.open_work_item("w", title="t", scope="r", position="p", cause="t")
|
||||
whole = store.transcript("w", "orchestrator")
|
||||
first = whole.append(Fact(text="the failed attempt"))
|
||||
whole.append(Fact(text="the retry's brief"))
|
||||
fresh = whole.since(first)
|
||||
assert [e.event.text for e in fresh.view()] == ["the retry's brief"]
|
||||
assert len(fresh.read()) == 2 # the log keeps everything
|
||||
assert len(whole.view()) == 2
|
||||
Reference in new issue
Block a user