Repository navigation
Conversation
…adapters The kernel's adapter factory registers opentrons and hamilton, but spec shipped no default emitter manifest for either, so auto-onboarding wrote free-text tier-0 evidence for liquid handlers and the provenance planner saw them supply nothing (the lab vertical capped at tier 0). Both get the kernel receipt core and nothing more, because that is what the code emits: - the kernel's EvidenceEmitter signs every job-step bundle and marks mock/simulated events fabricated (kernel/src/evidence-emitter.ts), which is the basis of receipt.kernel_signed, ident.registered_key and confirm.execution_mode for any kernel adapter; - the real Opentrons path emits protocol_uploaded and run_action; Hamilton emits execution_started/completed/failed; - neither feeds LogCaptureService (only printer-log-adapter does), so no machine.execution_log is claimed, and neither emits telemetry. PyLabRobot is not a kernel AdapterType, so it gets no entry. A kernel test now fails if any registered machine adapter lacks a default manifest (it fails on master with [hamilton, opentrons]). The spec tests' adapter lists gain both, including tier-1 eligibility by default. Tests: spec 797/797, tsc clean; kernel coverage + adapter-factory 50/50. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkeiQMnVePeBGU9svhREFy
…p to the vocabulary (evidence review) Evidence's review of #418 (#3251): hamilton approved; opentrons changes requested. The kernel Opentrons adapter's real path emits only non-vocabulary types (protocol_uploaded, run_action, run_*) and no real completion event, so the receipt core over-claims. Its default manifest is now decl.self_attested only (tier 0), keeping the kernel coverage test honest, until evidence maps its events (offered in #3251). A spec test pins opentrons at tier 0; hamilton keeps the receipt core. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PkeiQMnVePeBGU9svhREFy
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Evidence asked for this (#3174): propose the lab manifests, with emit sites cited and no mock.
The kernel's adapter factory registers
opentronsandhamilton(adapter-factory.ts:494-495), but@pcc/specshipped no default emitter manifest for either. So:buildAdapterEvidence) wrote free-text tier-0 evidence for a liquid handler;The lab vertical therefore capped at tier 0.
The entries
Both get the kernel receipt core and nothing more, because that is all the code emits today.
receipt.kernel_signed,ident.registered_keyEvidenceEmitterfinalizes and signs every job-step bundle (kernel/src/evidence-emitter.ts,finalize→signFn→kernelSignature). This holds for any kernel adapter, exactly as for octoprint and ipp.confirm.execution_mode(expected: real)isFabricatedhandling). The Opentrons adapter reportssimulated: truein mock mode (opentrons/adapter.ts:53), and its mock events carrymock: true.artifact.hash,decl.self_attestedNot claimed:
machine.execution_log. Neither adapter feedsLogCaptureService; onlyprinter-log-adapter.tsdoes. The real Opentrons path emitsprotocol_uploadedandrun_action. Hamilton emitsexecution_started,execution_completedandexecution_failed. Neither is a hash-chained, kernel-captured controller log.AdapterType(kernel-config.ts), so it gets no entry here.Tests
adapter-manifest-coverage.test.ts, fails if any machine adapter the factory registers lacks a default manifest. On master it fails with[hamilton, opentrons].emitter-manifest.test.tsadapter lists gain both, including "eligible by default at tier 1".tscclean. Kernel coverage plus adapter-factory: 50 passed.Review
Evidence reviews. Data only; no code shape changes.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PkeiQMnVePeBGU9svhREFy