Repository navigation
Releases: igamenovoer/lairen
Release list
lairen 1.4.0
Adds overwrite protection to lairen deploy.
Added
lairen deploynow refuses to overwrite a target whose live credential is
newer than the stored copy for that account. The refusal names the account,
explains that overwriting would discard a newer token, and prints the
lairen synccommand that captures it first.lairen deploy --forceoverrides the refusal. The normal pre-deploy snapshot
still preserves the overwritten file. A target holding an unregistered
credential produces a warning rather than a refusal.
lairen 1.3.0
Adds a sync path that pulls refreshed credentials back into the store.
Added
lairen sync [REF ...] [--home PATH ...] [--dry-run] [--strict]reads known
deployed homes and the source home, keeps the freshest same-identity
credential, and writes it back to the store. It never writes a provider home.
Identity changes are reported and requirelairen update.lairen deploy --refreshsyncs known homes and the existing target before
writing, so a target that already refreshed its tokens is captured instead
of overwritten.syncappendssyncentries tostate/deployments.jsonl;statuscontinues
to usedeployentries for lease reporting.
Changed
- Deployment-log writing is shared through
record_event(). - The agent-oriented manual and docs now recommend
lairen syncbefore
redeploying an account that another home has used.
lairen 1.2.0
lairen 1.2.0
Adds a project-aware status view and an append-only deployment ledger. This is
the lairen status workflow for answering "what accounts is this project
using, and where else are they leased?"
Changes
Added
lairen status [DIRECTORY] [--provider codex|kimi] [--json] [--strict]
inspects a project's live.codexand.kimi-codehomes, or a provider home
passed directly.- Per-account states:
current,drifted,unregistered,invalid,
missing-store-blob, andno-login, with project and registry expiry. OTHER PROJECTSlease reporting from the deployment log, with live target
checks that mark overwritten deployments.- Append-only
state/deployments.jsonlrecording deploy, update, and remove
events without credential material. --jsonfor scripts and--strictfor CI, which exits1for unregistered,
invalid, drifted, or missing-blob credentials.- Alias highlighting on a TTY, honoring
NO_COLOR.
Changed
deployresolves the target home to an absolute path and appends a
deployment-log entry.updateandremoveappend history entries;updatealso records the
previous ref when an identity changes.- No breaking changes. Existing registries, refs, and deployed homes remain
compatible.
Upgrade notes
- No migration is required.
- Lease history starts with this release. Accounts deployed earlier fall back
to the singlelast_deployed_homevalue and are labeled(last deploy). lairen statusis read-only and does not create lairen state directories.
Validation
- 57 core tests and 1 auxiliary test pass.
- Ruff, mypy, and the strict MkDocs build pass.
- Source and wheel distributions build as
lairen 1.2.0.
Full changelog: https://github.com/igamenovoer/lairen/blob/main/CHANGELOG.md
Compare: v1.1.0...v1.2.0
PyPI: https://pypi.org/project/lairen/1.2.0/
lairen 1.1.0
lairen 1.1.0
Adds one-line credential updates. An existing account or alias can now be
rebound to a new provider home without re-registering.
Changes
Added
lairen update REF --home PATH [--label TEXT]reads a new credential and
replaces the stored one for an account selected by alias, id, or label.- Same-identity updates refresh the blob, source home, and provider metadata in
place. - Changed identities rebind the account: the ref follows the new id, the alias
stays attached, and the old credential blob is removed. - Custom labels are preserved; provider-derived labels follow the new identity.
- The command refuses to merge when the new credential already belongs to
another account. - CLI reference, concepts, usage guide, README, and the agent manual document
the new workflow.
Changed
- No breaking changes. Existing registries and refs remain compatible.
Upgrade notes
- No migration or re-registration is required.
updateis additive. - Existing deployed homes are not rewritten. Deploy the updated account again
when target homes need the new credential.
Validation
- 40 core tests and 1 auxiliary test pass.
- Ruff, mypy, and the strict MkDocs build pass.
- Source and wheel distributions build as
lairen 1.1.0.
Full changelog: https://github.com/igamenovoer/lairen/blob/main/CHANGELOG.md
Compare: v1.0.0...v1.1.0
PyPI: https://pypi.org/project/lairen/1.1.0/
lairen 1.0.0
lairen 1.0.0
First stable release. lairen now supports first-class account aliases and
commits to a stable CLI surface and backward-compatible registry format.
Changes
Added
- First-class account aliases with
lairen alias [REF] [NAME],
lairen alias REF --clear, andlairen alias --json. lairen register --alias NAMEto set an alias while saving a login.- Alias resolution before bare ids and labels;
provider/idremains exact. - Alias validation for uniqueness, id and label conflicts, allowed characters,
and length. - Alias preservation across
lairen registerandlairen scan --register. ALIAScolumn inlairen list, plus analiasfield inlist,usage,
andshowJSON records.- Documentation and agent manual topics for alias workflows.
Changed
- Registry records gained an optional
aliasfield. Existing registries load
unchanged. lairen listtext output has a new column; scripts should use
lairen list --json.- Version 1.0.0 marks the first stable release. No upgrade steps are required.
Validation
- 34 core tests and 1 auxiliary test pass.
- Ruff, mypy, and the strict MkDocs build pass.
- Source and wheel distributions build as
lairen 1.0.0.
Full changelog: https://github.com/igamenovoer/lairen/blob/main/CHANGELOG.md
Compare: v0.2.0...v1.0.0
PyPI: https://pypi.org/project/lairen/1.0.0/
lairen 0.2.0
v0.1.1
Adds depth-limited credential scanning.
- New
lairen scan DIRcommand with--depth,--provider,--register, and--json - Detects Codex homes (
CODEX_HOME/~/.codex,auth.json) - Detects Kimi Code homes (
KIMI_CODE_HOME/~/.kimi-code,credentials/*.json, includingkimi-code-env-*) - Validates credential shape, skips symlink and noise directories, keeps the newest duplicate on registration
- Verified against upstream Codex and Kimi Code source layouts
v0.1.0
Initial 0.1.0 release.
- Pixi-managed Python project on the 3.11 line
- Click CLI: register, list, show, deploy, usage/stats, remove, providers, doctor
- Tested Codex and Kimi adapters
- Experimental Claude, Command Code, Cursor, and OpenCode adapters
- Local expiry/usage statistics with JSON output