An index on execution_run_outputs would make the library unopenable by
older builds, whose schema check refuses any extra index there. The
migration and the schema-check allowance are reverted, so the history
schema is exactly main's. stored_run_prompts instead looks up a batch of
files with one parameterized filename IN (...) query per chunk of at
most 500 names and matches in memory; the scan computes it once per scan
batch.
- Images without an embedded API graph: the scan now asks recorded
history before skipping a file with no prompt metadata, and the monitor
gives a keyless unlinked image one history-only re-check when its run's
outputs are recorded (a seal notification from the outputs write; at
most 1000 waiting images, each for an hour).
- Run keys: an image is unkeyable when any positive node has no key, so a
two-pass graph is never linked through the other pass; links follow
ComfyUI's is_link exactly.
- A failed save marks the node's run key like an empty editor, so an
older entry of that key can't stand in for this run.
- A placeholder is the latest entry: the image stays unlinked without
falling through to history, the same rule as a popped placeholder.
- An index on execution_run_outputs(filename, subfolder, root_key,
path_style) for the history lookup, added by migration and accepted by
the output schema check (any other index is still refused).
- Repair tool: unlink removes only the link record and only while the
image is still linked to the prompt it was judged on; every run prints
what --apply does.
- Real-host case proves the re-run's PromptManager node was cached.
* feat(history): add bounded chronological read projections (#209)
* fix(history): validate internal continuation positions (#209)
* feat(history): expose fenced history windows and run details (#209)
* fix(history): release retired projection connections (#209)
* feat(history): resolve reported outputs through current authorization (#209)
* fix(history): reject invalid inspection targets (#209)
* feat(history): add scoped history state and current-file adapter (#209)
* fix(history): preserve slideshow and clear stale reentry actions (#209)
* feat(history): render recorded executions and frozen run details (#209)
* fix(history): recover receipts and refresh capture evidence (#209)
* test(history): verify chronological history across restore and host modes (#209)
* fix(history): enforce chronological marker visual parity (#209)
* fix(history): resolve final chronological review findings
Address #209 recovery, bounded visit restoration, exact receipt availability, and portable regression coverage.
* test(history): repair Windows fixtures and review feedback
Address #209 and PR #227 native path, cleanup, media and review-comment expectations. Document Windows portability preflight without changing production behavior.
* ci: raise the viewerjs job budget for the larger browser suite
The cross-browser workflows suite grew from 396 to 496 tests on this
branch, which pushed the whole viewerjs job to about 25.5 minutes
against the 25 minute cap set in #181. Two exact-head runs on this
branch timed out without any test failing: run 39173019283 was killed
on test 474 of 496, and run 39175125474 printed "496 passed (12.8m)"
and was then cancelled during Playwright shutdown.
Raise only the job budget. Browser projects, workers and per-test
timeouts are unchanged. Splitting the browsers into parallel jobs is
tracked separately.