Evidence export of closed runs and rtut seal (RBT-WP-0009-T04)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 295952@bnt-lap001 Assistant-Session: e93f64ad-516c-46eb-9666-aad8d300c477
This commit is contained in:
parent
e021fd979f
commit
6d70f4d97d
12 changed files with 149 additions and 19 deletions
17
rtut/run.py
17
rtut/run.py
|
|
@ -374,16 +374,21 @@ def _read_json(path) -> dict | None:
|
|||
return None
|
||||
|
||||
|
||||
def record_seal_state(data: dict) -> str:
|
||||
"""'open' | 'sealed' | 'broken' | 'unsealed' for a run or project-run record, judged from its content alone,
|
||||
so an exported record can be checked by anyone (`rtut seal <file>`)."""
|
||||
if not data.get("outcome"):
|
||||
return "open"
|
||||
if not data.get("seal"):
|
||||
return "unsealed"
|
||||
return "sealed" if data["seal"] == _seal_of(data) else "broken"
|
||||
|
||||
|
||||
def seal_state(run: Run) -> str:
|
||||
"""'open' | 'sealed' | 'broken' (changed after closing, outside the app) | 'unsealed' (closed before sealing existed).
|
||||
|
||||
Judged on what is on disk, not on the in-memory copy."""
|
||||
disk = _read_json(run.path) or run.data
|
||||
if not disk.get("outcome"):
|
||||
return "open"
|
||||
if not disk.get("seal"):
|
||||
return "unsealed"
|
||||
return "sealed" if disk["seal"] == _seal_of(disk) else "broken"
|
||||
return record_seal_state(_read_json(run.path) or run.data)
|
||||
|
||||
|
||||
def finalize(run: Run, outcome: str, note: str = "", rating: str | None = None, comment: str = "") -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue