Skip to content

v0.25.2 - model-spec artifact hygiene

Choose a tag to compare

@projectious projectious released this 03 May 18:06
· 95 commits to main since this release

v0.25.2 - model-spec artifact hygiene

v0.25.2 is a patch release that settles the v0.25 model-spec projection
and release-deliverable hygiene work. The important architectural outcome
is that model descriptions are represented as normal processkit artifacts:
Artifact(kind=model-spec). They are no longer a separate primitive and
are no longer hidden only inside model-recommender JSON when a binding needs
to target them.

This release also tightens pk-doctor so derived projects get early signal
when their local context still contains stale model primitives, non-canonical
model artifact IDs, HTML artifact sidecars, suspicious _0000 artifact
timestamps, or model-assignment bindings that target the old artifact shape.

Highlights

  • Model descriptions now ship as timestamped model-spec artifacts in both
    context/artifacts/ and src/context/artifacts/.
  • Model-assignment bindings now target timestamped
    Artifact(kind=model-spec) IDs.
  • pk-doctor now flags model-spec artifact naming drift and legacy
    ART-model-* binding targets.
  • .gitignore.example is now part of the release deliverable under
    src/.gitignore.example.
  • Applied and rejected dogfood migrations were archived out of active
    migration state.
  • The resolver remains compatible with legacy MODEL-* and ART-model-*
    inputs while canonical bindings use timestamped artifact IDs.

Added

  • Timestamped model-spec artifacts:
    ART-YYYYMMDD_HHMM-ModelSpec-<provider>-<family>.md.
  • A pk-doctor context-hygiene check for non-timestamped model-spec
    artifact IDs and filenames.
  • A pk-doctor context-hygiene check for model-assignment bindings that
    still target old ART-model-* model artifacts.
  • src/.gitignore.example in the consumer deliverable, so the gitignore
    example artifact ships with processkit.

Changed

  • Model-assignment bindings now target processkit-addressable
    Artifact(kind=model-spec) entities instead of hidden JSON records or the
    short-lived non-timestamped ART-model-* projection.
  • migrate_models.py emits canonical timestamped model-spec artifact IDs.
  • The release boundary guard accepts only timestamped model-spec artifacts in
    src/context/artifacts/.
  • Applied and rejected migrations were archived into context/archives/,
    reducing active context noise while preserving migration history.
  • The shipped model-spec projection is mirrored into src/context/ so
    consumers receive model descriptions and bindings in the release tarball.

Fixed

  • pk-doctor now catches artifact hygiene issues that previously reached a
    zero-error report:
    • HTML artifacts in active context.
    • suspicious _0000 artifact timestamps.
    • non-timestamped model-spec artifact names.
    • model bindings that still target old model artifact IDs.
  • model-recommender resolver compatibility now accepts legacy MODEL-* and
    ART-model-* references during migration while resolving canonical
    timestamped model-spec artifacts.
  • context-archiving can serialize archive manifests that contain
    datetime-like metadata.

Compatibility Notes

  • Consumers should treat Artifact(kind=model-spec) as the binding target for
    model descriptions.
  • The legacy context/models/ primitive projection is removed from the
    processkit deliverable.
  • Existing derived projects may still contain old MODEL-* or ART-model-*
    references. The resolver accepts those forms for compatibility, but
    pk-doctor now reports them so projects can migrate to timestamped
    artifact IDs.
  • aibox should still own first-line migration generation for derived
    projects; pk-doctor is the fallback and local validation layer.

Release Asset

  • Tarball: processkit-v0.25.2.tar.gz
  • SHA-256:
    b942c888a2b15fe3cf680405bf0725ce8703d9638291bf8fdf22ce14f035d50a
  • Commit:
    2f9e391040244dc83415199e19242e60e06595c2

Verification

  • uv run context/skills/processkit/model-recommender/scripts/test_migrate_models.py
    passed: 20 passed.
  • uv run --with pytest --with pyyaml pytest context/skills/processkit/model-recommender/scripts/test_resolver.py
    passed: 29 passed.
  • uv run context/skills/processkit/pk-doctor/scripts/test_doctor.py passed.
  • uv run context/skills/processkit/pk-doctor/scripts/doctor.py --no-log
    passed with 0 ERROR / 0 WARN.
  • scripts/check-src-context-drift.sh --release-deliverable passed.
  • uv run --script context/skills/processkit/release-audit/scripts/release_audit.py --tree=src-context
    passed with 0 ERROR / 0 WARN.
  • uv run scripts/smoke-test-servers.py passed across the MCP smoke suite.
  • sha256sum -c processkit-v0.25.2.tar.gz.sha256 passed for the release
    tarball.