Skip to content

Milestone 6 images registries#2

Merged
barscn merged 8 commits into
mainfrom
milestone-6-images-registries
Jun 28, 2026
Merged

Milestone 6 images registries#2
barscn merged 8 commits into
mainfrom
milestone-6-images-registries

Conversation

@barscn

@barscn barscn commented Jun 28, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

barscn and others added 8 commits June 28, 2026 23:33
…ad/tag/prune, login/logout/test)

- ImageSummary carries digest + createdAt (digest-centric copy; sorting).
- CLIProcessRunner gains stdin support; registry login feeds the password via
  --password-stdin so the secret never reaches argv/logs/transcripts.
- ContainerBackend port + CLI adapter + MockBackend implement every new op with
  last-call tracking and failure injection; argv verified against container v1.0.0 --help.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
…entric copy

- Image domain model parses repository/tag, exposes full+short digest, flags dangling.
- ImageBrowserModel: load states (no-images vs daemon-failure), search, sort
  (name/size/created), dangling filter, selection, raw-retaining inspect.
- ImageListView (Table + search/sort/dangling toolbar + Copy Digest/Reference) and
  ImageInspectorView (Summary + Raw JSON, copy digest/reference); routed in
  ContentColumnView + AppShellView and wired through AppEnvironment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
…lict surfacing

- ImageActionsModel: tag (reload+log), delete (idempotent not-found, dependency-conflict
  notice with raw stderr, bulk), prune (dangling/all-unused preview + reclaimed result).
- ConfirmationKind gains .deleteImage/.pushImage; delete always confirms; push confirms
  its destination repo.
- TagImageSheet (keeps source digest visible), ImagePruneSheet (scope toggle + live
  preview), delete via the generic ConfirmationSheet; image notices surfaced in the shell.
  Wired through AppEnvironment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
…ipts + retry

- TaskCenter + OperationTask back the Activity pane's Tasks/Progress tabs: transcript
  accumulation, success/failure, onSuccess hook, and retry.
- ImageActionsModel.pull/push/save/load register tasks; pull/load refresh the list on
  success; retryTask re-runs.
- PullImageSheet, PushImageSheet (confirm destination), LoadImageSheet (file picker +
  drag/drop + archive validation), Save via NSSavePanel; transfer errors stay visible in a
  raw transcript. Activity pane Tasks/Progress now real, wired through AppEnvironment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
…rets never echoed)

- RegistriesModel: list (no-logins vs daemon-failure), login, logout, credential test;
  the password flows to the backend (via --password-stdin) and is never stored or logged.
- RegistryLoginSheet (SecureField, Test, raw auth-error display), RegistriesView (list +
  add + remove-with-confirmation), PreferencesView; exposed as a Settings scene (⌘,).
  Wired through AppEnvironment + CapsuleScene.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
…prune/bulk/tasks)

- Image carries the backend id; dangling images are inspected/deleted/tagged by it
  (their <none> reference can't address them) — fixes broken dangling inspect.
- Push destination parse no longer mistakes a short tagged ref (alpine:latest) for a host.
- Bulk image delete aggregates every dependency conflict into one notice.
- Prune sheet no longer blocks an all-unused prune on a heuristic empty preview; labels it
  best-effort.
- Activity Tasks tab gains Clear Finished (wires the previously-unused TaskCenter API).
- Removed dead push-confirmation kind/factory (push confirms via the sheet dialog).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
Pull/push progress is commonly emitted on stderr; coloring it red made a successful
transfer look alarming. stderr is now dimmed while running/succeeding and turns red only
once the task has failed. Verified live: an alpine pull now shows neutral progress + a
green success check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QRY8sjZCmM87FEsjo8A4he
@barscn barscn self-assigned this Jun 28, 2026
@barscn barscn merged commit 7ee0e23 into main Jun 28, 2026
2 checks passed
@barscn barscn deleted the milestone-6-images-registries branch June 29, 2026 06:15
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