# test599 — Dashboard SkillHub

Date: 2026-08-08
Candidate source: Hub `faecf3cf1cef68a61d9b597ad764a87cb29c442a`;
Dashboard `862fe6994d6c740042df3622668dd2e998688b87`.

## Result

PASS.

### Hub / registry (`anet-skillhub:dev`)

- Production entry bundled: 256 modules, 1.49 MB.
- Real private Hub process + real SQLite: 3 tests passed, 36 assertions.
- Verified node-token author attribution cannot be replaced by a submitted
  `source_alias` field.
- Verified new versions are pending, identical retry is idempotent, and
  changed content under the same version is rejected.
- Verified node tokens cannot inherit their minting owner's reviewer role.
- Verified owner publish makes the skill visible to nodes.
- Verified foreign-network list/review is denied.
- Verified published detail omits internal user UUIDs and content hash.
- Verified concurrent different-content submissions under one version resolve
  to one winner plus one clean `skill_version_conflict`, never a storage 500.
- Witnessed-red mutation `pending -> published`: rc=1.
- Witnessed-red mutation removing review lookup network predicate: rc=1.
- Restored source: 3 tests passed, 36 assertions; `RESULT: PASS`.
- Final image digest used for the run:
  `sha256:2c780f03ec24ac245807ae8ff2037e7a87dbadeb8cc1fdf4cdcb8ab7d36bca2c`.

### Dashboard (`anet-skillhub-dashboard:dev`)

- Contract test: PASS (desktop/mobile navigation, authenticated proxy,
  selected-network forwarding, submit/review wiring, no browser token field).
- Targeted ESLint: 0 errors (one pre-existing Sidebar navigation warning).
- `next build`: PASS, including TypeScript and all 52 static pages.
- Generated routes include `ƒ /api/anet/skills` and `○ /skillhub`.
- Runtime contract rerun from the built image: PASS.
- Final image digest:
  `sha256:2bab6eee16f354fb1738d5dfb7a6bec249a78de5d0dc6397512c2978504af3d6`.

Both exact test images were removed after evidence capture because the host had
7.7 GiB free. No bulk prune or pattern deletion was used; running containers
and other projects' images were untouched.

## Remaining rollout gate

No production deployment or public publish was performed. Required rollout:
Hub first, Dashboard second, then one real node `submit_skill` followed by one
owner publish and one ordinary-node readback.
