v1.2.1
2026-05-11
Second release
- › Runtime version-range enforcement:
LicenseVerifier::check_version()consults theversion_rangefield that v1.2.0 carried but did not enforce. Glob form ("3.*","3.1.*") and comparator form (">=3.0,<4.0","!=3.5.0") both supported. - › Auto-detect signature algorithm:
SignatureAlgorithm::AutoDetectis now theLicenseVerifierdefault; inspects the loaded key and dispatches to Ed25519 or RSA without the caller tracking the algorithm. Same applies tolicense_create --algo auto. - › Per-machine seat cap for floating licenses: new
max_leases_per_machine_idYAML key bounds the concurrent leases any one workstation can hold. Denied checkouts surface asMachineSeatLimitReachedeven when the global pool still has seats. - › Floating-server log rotation:
log_max_bytes(default 100 MiB) andlog_keep_count(default 5, capped at 100). Replaces v1.2.0 unbounded growth; opt out by settinglog_max_bytes <= 0. - › License metadata pass-through:
license_create --metadata key=valueattaches arbitrary metadata that round-trips through sign / verify and surfaces asLicense::metadata. New--show-countflag for read-only inspection of the generation counter. - › Debug-CRT static library on Windows:
rockyguard_mdd.libships alongsiderockyguard.libso Debug-CRT consumers no longer hit LNK2038 / LNK1319 (closes GA-013). - › AI-agent integration guide:
AI_INTEGRATION_GUIDE.mdat the customer-zip root and a dedicated page at /docs/ai-integration so customers can hand the integration to Claude Code, Cursor, Copilot, etc. - › Phase 4.1 library defect closed:
check_node_locked()withthreshold == 0and an emptyhardware_fingerprintnow ACCEPTS the license (the documented "intentionally not hardware-locked" opt-out), matching what the docs already promised. - › ABI-compatible with v1.2.0: +5 customer-facing exported symbols (
check_version+ fourgen_counter::*helpers), 0 removals. DUMPBIN /EXPORTS and nm -D probes both verify. - › Test count: 59 / 56 (Win / Linux) at v1.2.0 grew to 69 / 66 at v1.2.1 (+10 each). Two new QA harnesses (
ghost_checkout_exhaustion,log_rotation) both pass on Windows + Linux.