Upgrading
One version covers the whole product — backend, frontend, extension and plugin. They are only guaranteed to work together at the same commit, so they ship together.
Before 1.0, a breaking change bumps the minor version, and “breaking” means you have to do something: a renamed environment variable, a record migration, a removed route, a plugin reinstall. Release notes say so explicitly.
The general upgrade
Section titled “The general upgrade”git fetch --tagsgit checkout v0.2.0 # whatever the newest release isdocker compose build # rebuild the imagesdocker compose upThen, if the release notes mention the skill or the extension:
claude plugin install sumisura@sumisura-local # reinstall the skilland reload the unpacked extension in your browser.
Back up first if you are nervous. data/jobs/ and data/applications/ are not
in git — use Export in the app, or copy the data/ directory.
Migrating records
Section titled “Migrating records”Some releases add fields to Job Listing and Application records. Records written
earlier read as legacy and keep working, but a one-shot migration brings them
current. It is a dry run unless you pass -write:
cd backendgo run ./cmd/migrate-records -data-dir ../data # report onlycp -r ../data ../data-backup # these files are not in gitgo run ./cmd/migrate-records -data-dir ../data -write # applyExit codes: 0 nothing pending, 3 a dry run found work to do, 1 an error.
It only backfills what is provably already on disk, and names anything it cannot know rather than inventing it. Every record is read and validated before anything is written, so a corrupt or newer-than-expected record stops the run with nothing changed.
Version-specific notes
Section titled “Version-specific notes”0.1.0 — first public release
Section titled “0.1.0 — first public release”Nothing to migrate. If you were running the project before it was renamed from
CV Reporter, see the rename notes in the release: environment variables changed
from CV_REPORTER_MODEL_* to SUMISURA_MODEL_*, the LAN header became
X-Sumisura-Token, and the plugin is now installed as
sumisura@sumisura-local and invoked as /sumisura:tailor-cv.