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 Status Required outcome
#2120 open Concurrent snapshot collection satisfies the facade's published isolation contract.
#2245 open Bundle, validation, and snapshot configuration no longer require Config.Unwrap() or pkg/config.
#2437 landed The facade derives recipe criteria from a snapshot without exposing pkg/fingerprint or pkg/recipe.
#2028 open A merge-blocking architecture test prevents CLI/server business-logic bypasses around the facade.
#2029 open 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:

#2225, #2227, and #2256 have since closed.

Native sub-issue inventory

The native graph contains 20 children: 15 closed and 5 open. Four open children are v1 blockers (#2120, #2245, #2028, #2029); one is post-v1 (#2025).

#2025 does not gate #2028 or #2029. Mirror inventory is outside the snapshot → criteria → recipe → validate → bundle → verify workflow this epic scopes, so until it closes the CLI's mirror/trust use is a reasoned allowlist exception naming #2025 rather than an unfinished workflow silently accepted.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions