Skip to content

INT-PKG-META: package the owned dashboard payload manifest#153

Merged
skylarbpayne merged 3 commits into
mainfrom
remediation/int-pkg-meta
Jul 15, 2026
Merged

INT-PKG-META: package the owned dashboard payload manifest#153
skylarbpayne merged 3 commits into
mainfrom
remediation/int-pkg-meta

Conversation

@skylarbpayne

Copy link
Copy Markdown
Owner

Contract

INT-PKG-META packages the HW-16-owned dashboard payload and its non-empty ownership manifest from exact base 33176cb2788740df4615b15238acae5a8f83c283 to head cb7c2f9073715811ef1811c6a5d1152d07e4575e.

This uses the controller-approved exact-path accounting amendment at /Users/skylarpayne/chiefs/palmer-workspace/.hermes/remediation-plan-agent/int-pkg-meta-allowlist-amendment-2026-07-15.md: tests/test_package_resource_contract.py is the eighth permitted path because its old empty-manifest assertions contradicted the required six-file manifest and zero-failure full-suite gate.

Changed paths

Seven of the eight allowed paths changed:

  • pyproject.toml
  • src/hermes_workflows/package_resources.py
  • src/hermes_workflows/plugin_payload_manifest.v1.json
  • src/hermes_workflows/plugin_install.py
  • tests/test_package_resources.py
  • tests/test_package_resource_contract.py
  • tests/test_plugin_install.py

tests/test_python_compatibility.py remained unchanged. Canonical payload bytes, CLI, top-level plugins/**, registry/runtime, docs, workflows, and showcase artifacts are unchanged.

Behavior

  • Clean sdist-to-wheel builds retain exactly the six canonical plugin payload files, including both ignored dashboard/dist assets.
  • The canonical package manifest lists those same six normalized paths with exact SHA-256 and size.
  • Package-resource reads and copies validate the manifest and bytes before writing, reject manifest drift and existing/user-owned or symlink-ancestor destinations, and never overwrite an existing destination.
  • Default plugin inspection/install validates installed-wheel payload bytes against the package manifest while ignoring only installer-generated __pycache__/*.pyc files in the wheel's site-packages source tree.
  • HW-16 install/upgrade/rollback/uninstall ownership and atomicity behavior remains intact.

TDD and verification

RED at the exact base/amended contract:

  • 8 failed: the manifest had zero files, clean wheel omitted the two nested dist assets, copy returned no files, and default install had no package-manifest validation.
  • A subsequent clean sdist-to-wheel regression failed because the ignored dist assets were absent from the sdist; exact sdist artifacts fixed that real boundary.
  • A symlinked-destination-ancestor regression failed before destination validation was added.

GREEN:

  • Python 3.12 focused: 147 passed, 1 skipped
  • Python 3.9 focused: 148 passed
  • Python 3.12 full suite: 773 passed, 2 skipped
  • Python 3.9 full suite: 774 passed, 1 skipped
  • uv build: succeeded for sdist and wheel

Wheel audit (hermes_workflows-0.0.1rc1-py3-none-any.whl):

  • SHA-256: 2a90f680d043c9d93b7528d1caa981476b753e172dd711f3add91b7f4c30ec9c
  • size: 239049 bytes
  • exactly six canonical payload members plus plugin_payload_manifest.v1.json
  • manifest path/hash/size matches every wheel member
  • all seven resources have correct RECORD hashes and sizes
  • METADATA name/version: hermes-workflows / 0.0.1rc1
  • duplicate members: 0; top-level payload members: 0; private-path hits: 0; environment-secret hits: 0

Clean installed-wheel probe from a temporary venv and working directory outside the source checkout:

  • package origin was temporary site-packages
  • six manifest resources read and copied with matching hashes
  • default payload inspection succeeded
  • temporary-profile install and uninstall succeeded
  • a user-owned profile file remained byte-for-byte intact
  • live profile mutation: false

Safety / rollback

Rollback removes only the package-inclusion metadata/resource behavior in this PR; ownership receipts remain authoritative. Existing destinations and user-owned files are refused rather than overwritten or deleted. No profile/plugin/registry/database mutation, service restart, deploy, cutover, release replacement/publication, credential action, external send, or live mutation was performed.

Do not merge before the controller's fresh INT-PKG-META specification review and separate quality/security review.

@skylarbpayne
skylarbpayne merged commit 4bcc290 into main Jul 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant