• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

astronomer / astro-cli / 38491391523
61%
main: 45%

Build:
Build:
LAST BUILD BRANCH: v2-build-on-locked-runtime
DEFAULT BRANCH: main
Ran 14 Oct 2026 12:43AM UTC
Jobs 1
Files 333
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Oct 2026 12:39AM UTC coverage: 57.836% (+0.02%) from 57.819%
38491391523

push

github

web-flow
Share the local proxy daemon between Astro tools (#2286)

* Move the proxy daemon's lifecycle into pkg/proxy

Starting, adopting, stopping and reaping the proxy daemon lived in the
root module's airflow/proxy, which only this CLI can import. Any other
tool serving the same routes, Astro Desktop first, has to agree with it
on all of that: which files name a running daemon, when one is reused,
how one is stopped. So it moves to pkg/proxy as a Daemon, configured by
the host with the executable that serves, its serve arguments, its
version, and a BeforeStart hook.

airflow/proxy keeps what is this CLI's: its own binary re-executed into
__proxy-serve, and the astro 1.x takeover, which now runs as the
daemon's BeforeStart. The takeover carries its own wait and probe rather
than borrowing the daemon's.

No behavior changes. The reuse rule still compares CLI versions; the
next commit replaces it.

Co-Authored-By: Claude <noreply@anthropic.com>

* Reuse the proxy daemon by protocol, not by CLI version

A running daemon was replaced whenever the version that started it
differed from the caller's, unless it was a newer semver release. Two
tools built at different times sharing one daemon (Astro Desktop's
bundled astro, a SNAPSHOT build, and a user's installed CLI) would
replace each other's on every start, dropping whatever it was serving.

The daemon now records DaemonProtocol as a fourth field of its record,
and a running daemon is reused when it speaks the caller's protocol or
a newer one, and replaced when it speaks an older one. A record from
before the field, or one whose field is unreadable, is protocol 0 and
replaced. The version stays in the record for diagnostics.

The protocol covers the routes.json schema, the record format and the
daemon behavior a client relies on; a restyle of the pages it renders
does not bump it.

Co-Authored-By: Claude <noreply@anthropic.com>

* Confirm a daemon is ours before replacing it

Replacing a daemon that speaks an old... (continued)

29 of 43 new or added lines in 2 files covered. (67.44%)

7 existing lines in 2 files now uncovered.

40242 of 69579 relevant lines covered (57.84%)

234.59 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
51.85
-1.58% airflow/proxy/daemon.go
6
90.48
-9.52% airflow/proxy/takeover.go

Coverage Regressions

Lines Coverage ∆ File
5
51.85
-1.58% airflow/proxy/daemon.go
2
90.48
-9.52% airflow/proxy/takeover.go
Jobs
ID Job ID Ran Files Coverage
1 38491391523.1 14 Oct 2026 12:43AM UTC 333
57.84
GitHub Action Run
Source Files on build 38491391523
  • Tree
  • List 333
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38491391523
  • 0183306d on github
  • Prev Build on v2 (#38491077415)
  • Next Build on v2 (#38492337129)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc