CLI
New
- Added
canyonos targetto set once whether a project deploys to Docker or Kubernetes, sodeploy,status,test,logs,serve,doctorandstopwork the same way on both without repeating--targetorkubectlcommands. - Added
canyonos doctor --target kubernetes, checking kubectl and cluster reachability, the operator version, project readiness, each agent's replicas and launch errors, the endpoint, and the dashboard. - Quickstart now starts with a Hello World example that needs no API key, using bundled examples with no git clone required; the optional TradingAgents example still needs an OpenAI key.
- The dashboard now shows a project, traces and costs right after the quickstart, instead of starting empty.
Improved
canyonos serveon Kubernetes now runs the dashboard in the background, so it no longer holds the terminal.- Deploying on Kubernetes now keeps the endpoint reachable at
127.0.0.1:8080through a background port-forward that reconnects automatically when the pod is replaced, or prints the Ingress/Route URL when configured;canyonos stopcloses it. canyonos convertsupports more coding agents.
Fixed
- A deploy with no
otel:block in the config no longer silently loses telemetry: the dashboard previously showed 0 replicas and empty costs/traces with no warning fromvalidate,doctorordeploy.
Core
New
- Added
canyonos doctor --target kubernetes, checking thatkubectlis installed and the cluster is reachable, the operator is installed and its version matches the CLI, the CanyonProject exists and isReady, each agent's replicas and any launch errors, the endpoint answers, and whether the dashboard is running. - Added
canyonos target, which shows where a project deploys and whether that is reachable;canyonos target kubernetesandcanyonos target dockerswitch between them and write the choice to the project's config, so plaindeploy,status,test,logs,serve,doctorandstopwork on both without--target. - A replica now drains on SIGTERM, the standard stop signal: it refuses new work, reports
draining, finishes in-flight calls, and exits once idle, instead of being killed at the end of the grace period.
Improved
- On Kubernetes,
servenow runs the dashboard port-forward in the background instead of holding the terminal, matching Docker. - On Kubernetes,
deploykeeps the endpoint reachable through a background port-forward that reconnects when a pod is replaced, or prints the Ingress/Route URL when configured;stopcloses it. - The default shutdown grace period for agents and endpoints is now 180 seconds; Docker containers and Kubernetes pods use matching timeouts so a stop drains a replica instead of cutting it off. The endpoint stops accepting new connections before draining in-flight requests.
Fixed
canyonos validate,canyonos deployandcanyonos doctornow warn when a local deploy has nootel:destination configured, instead of silently showing 0 replicas, no agents, and empty costs and traces on the dashboard.
API
Improved
- The dashboard now shows a project with traces and costs right after the quickstart, instead of appearing empty on a fresh install.