Skip to content

docs: warn that resume across Spirit binary versions is not supported#841

Merged
morgo merged 1 commit into
block:mainfrom
Kiran01bm:kiran01bm-cross-version-resume-caveat
May 13, 2026
Merged

docs: warn that resume across Spirit binary versions is not supported#841
morgo merged 1 commit into
block:mainfrom
Kiran01bm:kiran01bm-cross-version-resume-caveat

Conversation

@Kiran01bm
Copy link
Copy Markdown
Collaborator

@Kiran01bm Kiran01bm commented May 13, 2026

What and Why ?

Spirit's resume-from-checkpoint logic only catches a checkpoint-table schema mismatch (via SELECT *); semantic drift across binary versions with an unchanged schema is silently accepted.

This change documents this caveat in the README and under checkpoint-max-age, and update the strict section to list the schema-mismatch case.

Next Step

Also, as a next step - I am thinking of adding a spirit_version column to the checkpoint table; refuse resume if it doesn't match buildinfo.Version().

Behaviour wise - default: warn + restart fresh; under --strict: hard‑fail with a new sentinel error like ErrSpiritVersionMismatch added to the strict whitelist at runner.go:799).

Spirit's resume-from-checkpoint logic only catches a checkpoint-table
schema mismatch (via SELECT *); semantic drift across binary versions
with an unchanged schema is silently accepted. Document this caveat in
the README and under checkpoint-max-age, and update the strict section
to list the schema-mismatch case as another scenario where strict mode
hard-fails instead of restarting.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-019e18d9-2678-7179-9961-b7efb8c0b807
@morgo
Copy link
Copy Markdown
Collaborator

morgo commented May 13, 2026

Also, as a next step - I am thinking of adding a spirit_version column to the checkpoint table; refuse resume if it doesn't match buildinfo.Version().

I don't think we need to go that far, since the data within the table (provided columns line up) is safe to restore between versions. It is reasonable to expect that we will change the checkpoint format again though, for example if we implement #270 it will be a format change.

@morgo morgo self-requested a review May 13, 2026 13:26
@morgo morgo merged commit b581e77 into block:main May 13, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants