Skip to content

feat(deploy): expand DeployTargetPort to canonical 7-op contract (S0, early-cut)#370

Merged
rickylabs merged 1 commit into
mainfrom
feat/deploy-s0-port-contract
Jul 3, 2026
Merged

feat(deploy): expand DeployTargetPort to canonical 7-op contract (S0, early-cut)#370
rickylabs merged 1 commit into
mainfrom
feat/deploy-s0-port-contract

Conversation

@rickylabs

Copy link
Copy Markdown
Owner

Summary

Standalone, additive expansion of DeployTargetPort to the canonical 7-op deployment-adapter contract (plan/emit · up · down · status · logs · rollback · secrets), retaining the legacy build/install/uninstall verb aliases so the shipped 3-op seed and its stub adapter keep compiling unchanged.

This is S0 of the bare-metal slice (#339/#340, PR #364), cut into its own PR so it can merge early and unblock the downstream slices that consume the expanded port — #342 (Deno Deploy marquee, PR #359) and #343 (Aspire, PR #363) — without waiting for the full bare-metal implementation (S5→S11).

Type-level only: no runtime behavior changes, no adapter rewiring, no CLI surface changes. PR #364 rebases onto this; git drops the now-identical patch cleanly.

Changes

  • deploy-target-port.ts — canonical 7-op DeployTargetPort contract + retained legacy verb aliases (additive union).
  • deploy-target-port_test.ts — asserts the 7-op names, the retained legacy aliases, canonical-subset adapters, and the reserved linux-service registry key.
  • deploy-target-registry-port.ts — reserves the linux-service key at the type level.
  • extension-points.ts — surfaces the expanded operation set.

Validation

  • deno check --unstable-kv on all 4 changed files — clean.
  • deno test deploy-target-port_test.ts — 4 passed / 0 failed.
  • deno lint (scoped wrapper) — 0 findings.
  • Formatting: packages/cli is outside the CI fmt:check scope; files are byte-identical to the CI-green source commit.

SKILL

  • netscript-doctrine — Archetype 7 (Deployment Target Adapter); the 7-op canonical contract this PR realizes.
  • netscript-cli — the CLI kernel/domain/ports layering that hosts DeployTargetPort.
  • netscript-harness — slice/gate workflow this S0 cut belongs to.
  • netscript-pr — branch/PR conventions (explicit refspec, Closes/Refs keyword, this SKILL chapter).

Refs #339, #340, #327, #342, #343 (partial S0 of #339/#340; PR #364 remains the closer for the full bare-metal slice)

🤖 Generated with Claude Code

https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN

…(S0)

Additively expand the deploy target port to the Archetype 7 canonical 7-op
lifecycle contract, the rebase point for the sibling cloud-adapter slices
(#342 Deno Deploy, #343 Aspire) which consume this port.

- Add DeployOperation (plan/emit/up/down/status/logs/rollback/secrets) and
  keep the legacy build/install/uninstall verbs as LegacyDeployOperation
  aliases; DeployTargetOperation is their union.
- Add optional 7-op method signatures on DeployTargetPort via a shared
  DeployTargetOperationHandler; retain the legacy build/install/uninstall
  methods so the shipped WindowsServiceDeployTarget stub and
  command-registry_test stay green untouched (stub evolves at S8).
- Reserve the linux-service registry key at the type level via
  KnownDeployTargetKey (no adapter registered yet; that is S8).
- Export the new contract types from extension-points for sibling slices.
- rollback/secrets are declared present-but-deferred (bodies land in #341).

Pure type-level + registry-shape; no bare-metal bodies, no OsServicePort,
no config. Independently mergeable.

Refs #339 #340 #327

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012wKHquACkXnWPDgJYhhFjN
@rickylabs
rickylabs marked this pull request as ready for review July 3, 2026 09:38
@rickylabs
rickylabs merged commit 95576c4 into main Jul 3, 2026
6 checks passed
@rickylabs
rickylabs deleted the feat/deploy-s0-port-contract branch July 3, 2026 09:38
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