Skip to content

[Epic]: Go SDK — make pkg/client/v1 the complete integration surface #2016

Description

@mchmarny

Goal

Make pkg/client/v1 the complete and defensibly stable integration surface for the core AICR workflow.

An integrator must be able to complete:

snapshot → criteria → recipe → validate → bundle → verify

without importing another AICR pkg/* package.

v1 closure scope

Issue Required outcome
#2120 Concurrent snapshot collection satisfies the facade's published isolation contract.
#2245 Bundle, validation, and snapshot configuration no longer require Config.Unwrap() or pkg/config.
#2437 The facade derives recipe criteria from a snapshot without exposing pkg/fingerprint or pkg/recipe.
#2028 A merge-blocking architecture test prevents CLI/server business-logic bypasses around the facade.
#2029 The integrator guide and compile-only example demonstrate the complete workflow using only pkg/client/v1.

Acceptance criteria

  • The complete workflow compiles using only pkg/client/v1, standard-library packages, and explicitly stable third-party types.
  • Snapshot collection is safe for concurrent SDK consumers.
  • All configuration needed by the workflow is available through the facade.
  • The exported-surface stability test and released-baseline API-diff gate remain green.
  • The CLI/server architecture gate rejects new unstable-package bypasses.
  • Documentation contains no unstable-package escape hatch for the core workflow.

Post-v1 follow-up

These open native children remain valuable but are not required by the v1 exit gate:

Native sub-issue inventory

The native graph contains 20 children: 11 closed and 9 open. Five open children are v1 blockers; four are explicitly post-v1.

Out of scope

  • Making every CLI capability available through the SDK.
  • Publishing trust-cache maintenance before its underlying operation supports reliable cancellation.
  • General component upgrade-lifecycle safety.
  • Tagging v1.0.0; this epic is a prerequisite, not the release action.

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions