Skip to content

feat: select and prepare artifacts by exact compatibility profile - #71

Draft
gspark-etri wants to merge 9 commits into
mainfrom
feat/onggi-compatible-prepare
Draft

gspark-etri wants to merge 9 commits into
mainfrom
feat/onggi-compatible-prepare

Conversation

@gspark-etri

@gspark-etri gspark-etri commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Add the first P3 integration step: select an artifact whose declared compatibility profile exactly matches a request, then prepare verified files before engine startup.

push --profile FILE binds model-source/options digests, exact device/runtime/SDK/compiler/firmware/format/layout/topology, TP and B/S to the content-addressed manifest. Legacy unprofiled push/pull remains supported. prepare --request FILE --dir DEST <ref|digest>... resolves candidates once under a GC lease, reports rejection reasons, selects deterministically and publishes a completed verified tree through existing cache/peer transfer. --plan-only selects without preparing destination/cache.

Validation at db82b4c:

  • Clean Linux baseline; missing-feature tests observed RED, focused tests GREEN.
  • Final go test -race -json ./...: 151 passing test/subtest events, 10 environment-dependent skips, no failed tests/packages; go vet ./... and Linux CLI build passed (Go1.27.3, GOMAXPROCS4, isolated CPU-only workspace).
  • Independently compared canonical published Git bytes for all72 Go/dependency files to the executed source hashes.
  • Real CLI byte equality, warm cache zero store-read bytes, no-match/plan behavior, invalid profiles before backend open, legacy pull, exact field mismatches, corruption cleanup, existing/busy/symlink targets and ref movement.
  • One independent whole-branch review found3 Important issues: reverse-order partial-suffix files clobbered each other; preparation exposed temporary restricted files; invalid locator counts still reached allocations. All3 reproduced RED, fixed at the shared boundaries and verified GREEN in the full suite. No maximal allocation executed, no additional reviewer loop.
  • Bilingual README/docs, init-container template, YAML/link/fence/whitespace checks. Owned CPU runner exited; no NPU allocated or SDK/driver changed.
  • Final publication-head CI passed all three jobs: Go (format/vet/race/Linux build), SeaweedFS S3 and VersityGW S3 including profile publication, byte-identical preparation and warm-cache zero store-read checks. Publication/CI plan gate complete. Intermediate red-test/formatting heads are superseded.

Usage and limits, CPU evidence/source hashes.

ready:true means verified files on disk. Metadata is a publisher declaration, not vendor ABI attestation. Candidate discovery, controller/CRDs/compile farm, placement/autoscaling integration, padding and NPU prewarming remain later work. Cooperating writers use a destination lock; hostile parent replacement is not certified. Process crashes may leave lock/temp files; existing destinations are refused. Existing GC TTL/snapshot lease limitations remain and are documented. Kubernetes example is syntax-checked, not deployed. No NPU performance claim, merge or deployment. Independent of pending #69/#70.

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