Skip to content

Registry connection panel with recent pushes and in-place reconnect - #1

Open
vantanminh wants to merge 3 commits into
mainfrom
claude/project-thread-1ey0ry
Open

vantanminh wants to merge 3 commits into
mainfrom
claude/project-thread-1ey0ry

Conversation

@vantanminh

Copy link
Copy Markdown
Owner

Before: a Knotree Registry service's Settings showed a plain "Connected / Disconnected" row next to the auto-deploy checkbox, with no record of which pushes arrived or what happened to them. After a disconnect, the only way to resume Registry pulls was to delete the service and create it again.

After: Settings shows a dedicated Registry connection panel. It has a status pill (Live, Paused, Unavailable when Cloud has no webhook secret, or Disconnected) and the push → signed event → deploy flow. It also shows the watched repository and tag, the deployed digest and last event, and the last 10 pushes with their outcome (Queued, Deploying, Deployed, Skipped, or Failed with its error). A disconnected service can be reconnected in place, keeping its URL, variables and database. The panel offers three ways to do it: pick a saved project connection for the same repository, authorize on Registry, or paste a new pull-only token.

This ports the parts of the Registry auto-deploy work that were mistakenly built in knotree-cloud and that this repo did not already have. The webhook receiver, digest deploys, per-service pull secrets and CI secret wiring already exist here, so they are not duplicated.

How:

  • API: PATCH .../app-services/{id}/registry-connection attaches an active project connection whose repository matches the service image. It refreshes the per-service Kubernetes pull secret, clears the disconnect error, and leaves auto deploy off.
  • API: GET .../app-services/{id}/registry-deploys returns autoDeployReady and the 10 most recent knotree_registry_deploy_jobs. A succeeded job without a deployment is shown as Skipped: the digest was already running, or a newer push replaced it.
  • Web: new RegistryConnectionPanel (registry services only). AutoDeployEditor is now GitHub-only. The Registry consent URL check moved to lib/registry-consent.ts and is shared with the create dialog.
  • Docs: docs/product/knotree-registry-integration.md routes and UI section updated.
  • Not done here: Harness stories/intake, because the harness CLI is not installed in this environment.

Verified locally:

  • cargo test against Postgres 16: 108 passed, including a new DB test for reconnect, repository mismatch and history.
  • pnpm test:web: 41 passed, including 4 new panel tests.
  • tsc -b, vite build, ESLint and Prettier pass on the changed files.
  • The panel was screenshot-checked in light, dark and 390px layouts.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AhK68Uu56HjXCHCbYBxWCV


Generated by Claude Code

…nect

App services built from Knotree Registry now get a dedicated connection
panel in Settings: Live/Paused/Unavailable/Disconnected status, the push to
signed event to deploy flow, watched repository/tag, and the last 10 pushes
with their outcome. A disconnected service can be reconnected in place from
a saved project connection, Registry consent, or a new pull-only PAT instead
of being recreated.

API: PATCH .../app-services/{id}/registry-connection attaches a project
connection for the same repository and refreshes the Kubernetes pull secret;
GET .../app-services/{id}/registry-deploys lists recent deploy jobs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhK68Uu56HjXCHCbYBxWCV
claude added 2 commits October 2, 2026 16:03
…-1ey0ry

# Conflicts:
#	apps/web/src/lib/resources.ts
… a Worker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AhK68Uu56HjXCHCbYBxWCV
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.

2 participants