Canonical file name
The lockfile name is fixed to.hyperlocalise.lock.json.
hyperlocalise does not currently read i18n.lock or other alias names.
Keep the file in your project root so run and sync commands share the same checkpoint state.
The CLI writes the lockfile as indented JSON so diffs are readable. It keeps file size down by grouping task entries by target path and storing short field names.
What the lockfile is for
Treat the lockfile as an advisory checkpoint, not your source of truth.- Source of truth for translatable content is your source files.
- Source of truth for generated output is your target files.
- Source of truth for synced remote state is your TMS plus local artifacts.
Schema
Current shape:adapter: active TMS adapter name.project_id: adapter-specific project identifier.last_pull_at: timestamp of the latest successful sync pull.locale_states: per-locale checkpoint map.revision: adapter revision or cursor for incremental pull logic.updated_at: last time that locale checkpoint was refreshed.
run_completed: per-task completion map used byrunfor skip decisions. Current writes group entries by target path.- nested key: entry key inside the target file.
s: fingerprint of the source segment.t: fingerprint of task dimensions, such as model, prompt, context fields, and related inputs.
active_run_id: identifier for an in-progress run. It is cleared after a successful run.run_checkpoint: temporary per-task output checkpoint for interrupted runs. It is grouped by target path and cleared after a successful run.r: run identifier.p: source path.l: target locale.v: staged output value.s,t, andu: source fingerprint, task fingerprint, and update timestamp.
target::entry keys and full field names such as source_hash and task_hash. They may also store full 128-character hex digests. The CLI accepts both shapes and both digest lengths.
Lifecycle by command
hyperlocalise run
- Reads
.hyperlocalise.lock.jsonwhen planning tasks. - Skips work already marked complete in
run_completed. - Persists successful tasks back to
run_completed.
hyperlocalise sync pull
- May read existing adapter and locale checkpoint metadata as a performance hint.
- Fetches a fresh remote snapshot for the requested scope.
- Updates
adapter,project_id,last_pull_at, andlocale_statesafter successful pull.
hyperlocalise sync push
- May read adapter/project context from the lockfile.
- Does not require lockfile or sidecar metadata to authorize writes.
- Computes push diffs from local files plus a fresh remote baseline for the same scope.
- Does not replace source/target content authority.
Safe reset guidance
Reset the lockfile when checkpoint state is stale or no longer trustworthy. Common reset cases:- you changed source text structure heavily
- you changed bucket mappings or file path templates
- you switched adapters or projects
- you suspect corrupted or manually edited checkpoint entries
- ensure your source and generated files are committed or backed up
- delete
.hyperlocalise.lock.json - run
hyperlocalise run --dry-runto inspect the larger plan - run
hyperlocalise runand/orhyperlocalise sync pullto rebuild checkpoint state
runmay re-execute tasks that were previously skipped- next sync pull may perform a broader refresh for locales
- CLI runtime can increase temporarily until checkpoints are rebuilt
Team conventions
- Do not hand-edit lockfile fields unless debugging a local incident.
- Keep lockfile handling explicit in CI scripts.
- Review lockfile changes in pull requests when run/sync behavior looks unexpected.