Skip to content

feat(cli): contract & service lifecycle extensions — v2 versioning, remove, add-route/add-handler, inspect --json, --with-client#743

Merged
rickylabs merged 1 commit into
mainfrom
feat/706-contract-service-lifecycle
Jul 12, 2026
Merged

feat(cli): contract & service lifecycle extensions — v2 versioning, remove, add-route/add-handler, inspect --json, --with-client#743
rickylabs merged 1 commit into
mainfrom
feat/706-contract-service-lifecycle

Conversation

@rickylabs

Copy link
Copy Markdown
Owner

Closes #706. Closes #702 (completes its remaining version-evolution acceptance on top of the merged #716 add-seam).

  • contract version add <name> --from v1 --to v2: creates versions/v2/, copies/renames symbols, generates the v2 aggregate + root re-export; ContractVersion union relaxed — proven live in a generated workspace with contract list showing both versions and typecheck green
  • contract remove / service remove [--keep-contract]: real billing add→remove smoke leaves aggregates, appsettings, workspace membership, generated client, and Aspire helpers consistent (generated deno task check green after removal)
  • contract add-route <contract> <procedure> --method --path + service add-handler: live ping procedure compiled and consumed through the generated typed client
  • contract inspect <name> --json: per-procedure name/method/path/input/output
  • service add --with-client (p3): generated client/query lib; fixed a real legacy-path bug (app/lib → workspace discovery) found by the smoke
  • add-a-service Steps 2–4 rewritten around the new verbs

Evidence (worklog .llm/runs/feat-706-contract-service-lifecycle--codex/worklog.md): 11 semantic tests + 5 BDD steps green; scoped check/lint over packages/cli (638 files) 0 findings; live generated-workspace lifecycle smoke end-to-end green; docs:links 96/0; lock unchanged. Built on post-#716/#717 main (6f5484d2).

Slice authored by WSL Codex thread 019f54b6-4e03 (sol/high) under the beta-9 orchestrator; Tier-A reviewed.

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