read_log
def read_log(path: String) -> Tuple[String, Bool] The log's text, its last MiB if it's longer, and whether it was cut; empty if it can't be read.
orca.ui.attempt/runs/<id>/attempts/<attempt>, an attempt's page: its log, with its error, and its facts, which refresh from /facts while it runs.
read_logdef read_log(path: String) -> Tuple[String, Bool] The log's text, its last MiB if it's longer, and whether it was cut; empty if it can't be read.
attempt_factsdef attempt_facts(mut db: State, run: Int, id: Int) -> Page An attempt's error and facts, as a fragment; 286 once it's ended.
attemptdef attempt(mut db: State, run: Int, id: Int) -> Page attempt_logdef attempt_log(mut db: State, run: Int, id: Int) -> Page An attempt's log, as a fragment; 286 once the attempt has ended.